{"id":"07e0a7d3-d086-45a1-97d8-9ae581d2abe7","shortId":"EL7KT8","kind":"skill","title":"implement-improvements","tagline":"Validate improvements from .turbo/improvements.md and run one lane based on the user's choice: trivial fixes, investigation, or standard planning. One lane per session. Use when the user asks to \"implement improvements\", \"work on improvements\", \"address improvements\", \"process im","description":"# Implement Improvements\n\nValidate improvements from `.turbo/improvements.md` and run one lane per session: trivial, investigate, or standard. Mixing lanes in a single run tangles commits, so the skill processes exactly one lane each time. Entries outside the chosen lane or category filter stay in the backlog for future runs.\n\n## Task Tracking\n\nAt the start, use `TaskCreate` to create a task for each step:\n\n1. Read the backlog\n2. Validate and classify\n3. Report, confirm, and prune stale\n4. Run the chosen lane\n5. Prune working-set entries from the backlog\n\n## Step 1: Read the Backlog\n\nRead `.turbo/improvements.md`. If the file does not exist, tell the user there are no improvements to implement and stop.\n\nParse all entries, extracting for each:\n\n- **Summary** (the `###` heading)\n- **Type** (`trivial`, `investigate`, or `standard`; may be missing in older entries)\n- **Category**\n- **Where** (file paths or areas)\n- **Why** (rationale)\n- **Noted** (date)\n\n## Step 2: Validate and Classify\n\nImprovements can go stale: files get renamed, code gets refactored, issues get fixed as side effects of other work. Before routing, validate each improvement and classify any entry missing a Type.\n\n### Validate\n\nFor each entry, verify whether the specific problem or opportunity described still exists. Do not rely on git log alone. Recent commits touching the same files do not mean the specific issue was addressed. Read the actual code and confirm:\n\n1. **Files exist** — Do the referenced files/paths still exist? If not, the entry is stale.\n2. **Problem persists** — Read the relevant code sections. Is the exact issue or opportunity described in the entry still present? Check the specific claims: if the entry says a function is uncalled, verify it has no callers; if it says error handling is missing, check whether it was added.\n\nClassify each entry as:\n\n- **Active** — The described problem or opportunity is confirmed present in the current code\n- **Stale** — The referenced files no longer exist, or the specific issue has been resolved (cite evidence: what changed and where)\n- **Unclear** — Cannot determine from code alone, needs user input\n\nWhen in doubt, classify as Active. The cost of re-examining a resolved issue is low; dismissing a valid improvement is high.\n\n### Classify type if missing\n\nFor any Active entry without a Type field, infer one on the fly. Base the classification on the code you just read during validation, not just the entry's one-line summary.\n\n- **trivial** — A direct fix: typo, rename, obvious one-liner, small localized cleanup with clear scope. No investigation or plan needed.\n- **investigate** — A symptom, not a fix: unclear root cause, performance question, intermittent bug, \"something feels off\". Needs dedicated root-cause analysis before any change.\n- **standard** — Everything else: clear-scope work that warrants planning (multi-file refactor, test additions, feature work).\n\nDo not ask the user to pick. If genuinely ambiguous, default to `standard`.\n\n## Step 3: Report, Confirm, and Prune Stale\n\nPresent a summary grouped by type and status. Include each entry's category inline and a category tally across active entries so the user can narrow the working set by theme:\n\n```\n## Improvement Backlog Status\n\n### Active (N)\nCategories: refactor (N), performance (N), testing (N), docs (N)\n\n**Trivial (N)**\n- [summary] (category) — [one-line reason it's still relevant]\n\n**Investigate (N)**\n- [summary] (category) — [one-line reason it's still relevant]\n\n**Standard (N)**\n- [summary] (category) — [one-line reason it's still relevant]\n\n### Stale (N)\n- [summary] — [one-line reason it's stale]\n\n### Unclear (N)\n- [summary] — [what's ambiguous]\n```\n\nUse `AskUserQuestion` to confirm:\n1. Which lane to run: trivial, investigate, or standard (if only one lane has active entries, default to it)\n2. Category filter (default: all)\n3. Whether to remove stale entries from the backlog\n4. Resolution for any unclear items\n\nIf the user confirmed stale removal, edit `.turbo/improvements.md` to delete the stale entries.\n\nCompute the **working set**: active entries matching the confirmed lane and category filter, after unclear resolution. If the working set is empty, stop.\n\n## Step 4: Run the Chosen Lane\n\nRead the reference file for the confirmed lane and follow its phases:\n\n- **Trivial lane** — [references/trivial-lane.md](references/trivial-lane.md)\n- **Investigate lane** — [references/investigate-lane.md](references/investigate-lane.md)\n- **Standard lane** — [references/standard-lane.md](references/standard-lane.md)\n\nState the chosen lane before continuing with the reference file.\n\n## Step 5: Prune Working-Set Entries from the Backlog\n\nEdit `.turbo/improvements.md` to delete the working-set entries that the lane processed. \"Processed\" means:\n\n- **Trivial lane** — entries whose fixes were applied\n- **Investigate lane** — entries whose concluded fixes were applied\n- **Standard lane** — entries now captured in the plan file produced by `/turboplan`\n\nKeep any entries the lane re-classified mid-flight (trivial → investigate/standard, or investigate → standard). These stay in the backlog for a future run. Delete the file if no entries remain.\n\n## Rules\n\n- `.turbo/` is gitignored. Edits to `.turbo/improvements.md` are local-only and do not need to be staged or committed.\n- If the user selected a lane, do not secondarily run another lane in the same session. Other active entries stay in the backlog for a future run.","tags":["implement","improvements","turbo","tobihagemann","agent-skills","claude-code","claude-skills","developer-tools","skills"],"capabilities":["skill","source-tobihagemann","skill-implement-improvements","topic-agent-skills","topic-claude-code","topic-claude-skills","topic-developer-tools","topic-skills"],"categories":["turbo"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/tobihagemann/turbo/implement-improvements","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add tobihagemann/turbo","source_repo":"https://github.com/tobihagemann/turbo","install_from":"skills.sh"}},"qualityScore":"0.590","qualityRationale":"deterministic score 0.59 from registry signals: · indexed on github topic:agent-skills · 280 github stars · SKILL.md body (5,482 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:09.958Z","embedding":null,"createdAt":"2026-04-18T22:03:48.176Z","updatedAt":"2026-04-22T00:54:09.958Z","lastSeenAt":"2026-04-22T00:54:09.958Z","tsv":"'/turboplan':785 '1':105,134,264,619 '2':109,188,279,638 '3':113,512,643 '4':119,652,695 '5':124,735 'across':536 'activ':332,379,403,537,552,633,675,855 'actual':260 'ad':327 'addit':495 'address':39,257 'alon':243,370 'ambigu':507,614 'analysi':476 'anoth':848 'appli':765,773 'area':182 'ask':32,500 'askuserquest':616 'backlog':87,108,132,137,550,651,743,806,860 'base':12,414 'bug':467 'caller':315 'cannot':366 'captur':778 'categori':82,177,530,534,554,566,578,590,639,682 'caus':463,475 'chang':362,479 'check':299,323 'choic':17 'chosen':79,122,698,726 'cite':359 'claim':302 'classif':416 'classifi':112,191,217,328,377,397,793 'cleanup':446 'clear':448,484 'clear-scop':483 'code':199,261,285,344,369,419 'commit':66,245,837 'comput':671 'conclud':770 'confirm':115,263,339,514,618,661,679,706 'continu':729 'cost':381 'creat':99 'current':343 'date':186 'dedic':472 'default':508,635,641 'delet':667,747,811 'describ':234,293,334 'determin':367 'direct':436 'dismiss':391 'doc':561 'doubt':376 'edit':664,744,822 'effect':207 'els':482 'empti':692 'entri':76,129,159,176,219,226,276,296,305,330,404,428,528,538,634,648,670,676,740,752,761,768,776,788,816,856 'error':319 'everyth':481 'evid':360 'exact':71,289 'examin':385 'exist':145,236,266,272,351 'extract':160 'featur':496 'feel':469 'field':408 'file':142,179,196,249,265,348,492,703,733,782,813 'files/paths':270 'filter':83,640,683 'fix':19,204,437,460,763,771 'fli':413 'flight':796 'follow':709 'function':308 'futur':89,809,863 'genuin':506 'get':197,200,203 'git':241 'gitignor':821 'go':194 'group':521 'handl':320 'head':165 'high':396 'im':42 'implement':2,34,43,154 'implement-improv':1 'improv':3,5,35,38,40,44,46,152,192,215,394,549 'includ':526 'infer':409 'inlin':531 'input':373 'intermitt':466 'investig':20,56,168,451,455,575,625,716,766,800 'investigate/standard':798 'issu':202,255,290,355,388 'item':657 'keep':786 'lane':11,25,52,60,73,80,123,621,631,680,699,707,713,717,721,727,755,760,767,775,790,843,849 'line':432,569,581,593,604 'liner':443 'local':445,827 'local-on':826 'log':242 'longer':350 'low':390 'match':677 'may':171 'mean':252,758 'mid':795 'mid-flight':794 'miss':173,220,322,400 'mix':59 'multi':491 'multi-fil':490 'n':553,556,558,560,562,564,576,588,600,610 'narrow':543 'need':371,454,471,832 'note':185 'obvious':440 'older':175 'one':10,24,51,72,410,431,442,568,580,592,603,630 'one-lin':430,441,567,579,591,602 'opportun':233,292,337 'outsid':77 'pars':157 'path':180 'per':26,53 'perform':464,557 'persist':281 'phase':711 'pick':504 'plan':23,453,489,781 'present':298,340,518 'problem':231,280,335 'process':41,70,756,757 'produc':783 'prune':117,125,516,736 'question':465 'rational':184 're':384,792 're-classifi':791 're-examin':383 'read':106,135,138,258,282,422,700 'reason':570,582,594,605 'recent':244 'refactor':201,493,555 'refer':702,732 'referenc':269,347 'references/investigate-lane.md':718,719 'references/standard-lane.md':722,723 'references/trivial-lane.md':714,715 'relev':284,574,586,598 'reli':239 'remain':817 'remov':646,663 'renam':198,439 'report':114,513 'resolut':653,686 'resolv':358,387 'root':462,474 'root-caus':473 'rout':212 'rule':818 'run':9,50,64,90,120,623,696,810,847,864 'say':306,318 'scope':449,485 'secondarili':846 'section':286 'select':841 'session':27,54,853 'set':128,546,674,690,739,751 'side':206 'singl':63 'skill':69 'skill-implement-improvements' 'small':444 'someth':468 'source-tobihagemann' 'specif':230,254,301,354 'stage':835 'stale':118,195,278,345,517,599,608,647,662,669 'standard':22,58,170,480,510,587,627,720,774,801 'start':95 'state':724 'status':525,551 'stay':84,803,857 'step':104,133,187,511,694,734 'still':235,271,297,573,585,597 'stop':156,693 'summari':163,433,520,565,577,589,601,611 'symptom':457 'talli':535 'tangl':65 'task':91,101 'taskcreat':97 'tell':146 'test':494,559 'theme':548 'time':75 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skills' 'topic-developer-tools' 'topic-skills' 'touch':246 'track':92 'trivial':18,55,167,434,563,624,712,759,797 'turbo':819 'turbo/improvements.md':7,48,139,665,745,824 'type':166,222,398,407,523 'typo':438 'uncal':310 'unclear':365,461,609,656,685 'use':28,96,615 'user':15,31,148,372,502,541,660,840 'valid':4,45,110,189,213,223,393,424 'verifi':227,311 'warrant':488 'whether':228,324,644 'whose':762,769 'without':405 'work':36,127,210,486,497,545,673,689,738,750 'working-set':126,737,749","prices":[{"id":"569952fa-244a-4fd3-8f21-753f8031a1e6","listingId":"07e0a7d3-d086-45a1-97d8-9ae581d2abe7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"tobihagemann","category":"turbo","install_from":"skills.sh"},"createdAt":"2026-04-18T22:03:48.176Z"}],"sources":[{"listingId":"07e0a7d3-d086-45a1-97d8-9ae581d2abe7","source":"github","sourceId":"tobihagemann/turbo/implement-improvements","sourceUrl":"https://github.com/tobihagemann/turbo/tree/main/skills/implement-improvements","isPrimary":false,"firstSeenAt":"2026-04-18T22:03:48.176Z","lastSeenAt":"2026-04-22T00:54:09.958Z"}],"details":{"listingId":"07e0a7d3-d086-45a1-97d8-9ae581d2abe7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"tobihagemann","slug":"implement-improvements","github":{"repo":"tobihagemann/turbo","stars":280,"topics":["agent-skills","claude-code","claude-skills","developer-tools","skills"],"license":"mit","html_url":"https://github.com/tobihagemann/turbo","pushed_at":"2026-04-21T12:22:12Z","description":"A composable dev process for Claude Code, packaged as modular skills.","skill_md_sha":"dfc54fcfa5ef73adc3402d2f20ae91c9bcf2b998","skill_md_path":"skills/implement-improvements/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/tobihagemann/turbo/tree/main/skills/implement-improvements"},"layout":"multi","source":"github","category":"turbo","frontmatter":{"name":"implement-improvements","description":"Validate improvements from .turbo/improvements.md and run one lane based on the user's choice: trivial fixes, investigation, or standard planning. One lane per session. Use when the user asks to \"implement improvements\", \"work on improvements\", \"address improvements\", \"process improvement backlog\", \"tackle improvements\", or \"implement noted improvements\"."},"skills_sh_url":"https://skills.sh/tobihagemann/turbo/implement-improvements"},"updatedAt":"2026-04-22T00:54:09.958Z"}}