Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute an implementation plan file produced by /draft-plan, /turboplan, or /expand-shell. Runs pre-implementation prep, then runs /implement to execute the steps and finalize once they are all done. Use when the user asks to "implement plan", "implement the plan", "execute the plan", "run the plan", "implement plans/<slug>.md", "start implementing the plan", or starts a fresh session to implement a previously drafted plan.
.claude/skills/tobihagemann-implement-plan/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-21 | ✗→✓ | ▲ Improved | -20% | 0% |
Execute an implementation plan file.
At the start, use update_plan to track each step, restating any remaining steps of a parent workflow alongside them:
$implement skillDetermine which plan file to implement using these rules in order:
add-image-cache), resolve to .turbo/plans/<slug>.md if that file exists.turbo/plans/*.md. If exactly one plan exists, use it.turbo/plans/ does not exist but .turbo/plan.md exists, use it$turboplan and stop. When a slug or path was passed but no file matched it, say which one was triedIf multiple plans exist and the most-recent choice is non-obvious (e.g., several plans were modified within the same minute), use request_user_input to let the user pick from the candidates.
State the resolved plan path before continuing, then read the file.
Unless an explicit path or slug was passed, confirm the resolved plan still describes work that remains to be done:
status: is doneWhen the signal fires, output it as text. Then use request_user_input to offer:
.turbo/plans/, then confirm that plan against this same signalOn Leave it unimplemented, tell the user to bring the plan current with $refine-plan and run this skill again. Call update_plan to drop the remaining implement steps, restating any remaining steps of a parent workflow, then continue with the next step of the active workflow.
Workflow state lives at .turbo/workflows/<slug>.md — slug from the resolved plan's basename. It pairs one-to-one with the thread's goal. When this run's create_goal attempt succeeds, write the file fresh: Status: active plus this invocation's update_plan list as a checkbox list. When an unfinished goal already exists, mirror into the workflow file its objective names; when it names none, continue without workflow state. Mirror every update_plan call into the file; it holds the pipeline's remaining steps and their statuses. When this run created the goal, run the terminal step in order: mark the final entry completed and mirror it, set Status: closed, mark the goal complete with update_goal, then emit any halt message.
Attempt create_goal with the objective: "Execute the implementation plan at <plan path> through $implement, then set the plan's frontmatter status to done when it has frontmatter. Workflow state: .turbo/workflows/<slug>.md; mirror every update_plan call into it. Loop state lives under .turbo/loops/. After any context compaction, re-read the plan file, the workflow file, and any active ledger, and continue from the first unfinished entry. Mark this goal complete only after that status update, or after $implement completes for a plan without frontmatter." If an unfinished goal already exists, an outer workflow owns it; continue without creating one.
Read in full:
$implement SkillRun the $implement skill. The plan file, its file references, and its Verification section are already in conversation context from Step 1.
After $implement completes, set the plan's frontmatter status: to done. If the plan is the legacy .turbo/plan.md without frontmatter, skip the status update.
If this run created a goal in Step 1, mark it complete with update_goal.
Then call update_plan to mark this step completed and continue with the next step of the active workflow.
$refine-plan or $draft-plan separately.$implement. Restating steps as a turn-level narration counts as inline execution and bypasses the delegation.git commit, git push, or PR creation, halt before Step 3 and ask the user to remove them via $refine-plan.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 2,803 | 13,660 | +387% | 1 | 1 | 0% | 216 | 1,494 | +592% | 0 | 0 | — |
case-12 | fail→fail | 9,478 | 11,948 | +26% | 1 | 1 | 0% | 1,558 | 3,745 | +140% | 0 | 0 | — |
case-02 | fail→fail | 4,610 | 6,953 | +51% | 1 | 1 | 0% | 329 | 1,640 | +398% | 0 | 0 | — |
case-03 | fail→fail | 3,257 | 23,537 | +623% | 1 | 1 | 0% | 179 | 1,409 | +687% | 0 | 0 | — |
case-04 | pass→fail | 18,081 | 6,266 | -65% | 1 | 1 | 0% | 3,298 | 1,743 | -47% | 0 | 0 | — |
case-05 | fail→fail | 5,801 | 8,402 | +45% | 1 | 1 | 0% | 251 | 1,779 | +609% | 0 | 0 | — |
case-06 | fail→fail | 9,960 | 6,344 | -36% | 1 | 1 | 0% | 2,109 | 1,638 | -22% | 0 | 0 | — |
case-07 | fail→fail | 1,822 | 6,075 | +233% | 1 | 1 | 0% | 243 | 1,501 | +518% | 0 | 0 | — |
case-08 | pass→pass | 4,958 | 2,781 | -44% | 1 | 1 | 0% | 971 | 1,711 | +76% | 0 | 0 | — |
case-09 | fail→fail | 6,184 | 6,394 | +3% | 1 | 1 | 0% | 1,115 | 1,480 | +33% | 0 | 0 | — |
case-10 | pass→pass | 7,507 | 3,146 | -58% | 1 | 1 | 0% | 1,480 | 1,808 | +22% | 0 | 0 | — |
case-11 | fail→fail | 4,368 | 8,892 | +104% | 1 | 1 | 0% | 267 | 2,279 | +754% | 0 | 0 | — |
case-13 | fail→pass | 28,400 | 5,974 | -79% | 1 | 1 | 0% | 1,736 | 2,463 | +42% | 0 | 0 | — |
case-14 | fail→fail | 4,518 | 15,828 | +250% | 1 | 1 | 0% | 241 | 1,638 | +580% | 0 | 0 | — |
case-15 | fail→pass | 7,958 | 2,297 | -71% | 1 | 1 | 0% | 1,441 | 1,629 | +13% | 0 | 0 | — |
case-16 | fail→fail | 4,050 | 7,373 | +82% | 1 | 1 | 0% | 222 | 1,755 | +691% | 0 | 0 | — |
case-17 | fail→pass | 6,275 | 8,714 | +39% | 1 | 1 | 0% | 1,088 | 2,873 | +164% | 0 | 0 | — |
case-18 | fail→fail | 5,255 | 7,008 | +33% | 1 | 1 | 0% | 913 | 1,802 | +97% | 0 | 0 | — |
case-19 | fail→pass | 13,485 | 2,464 | -82% | 1 | 1 | 0% | 1,279 | 1,612 | +26% | 0 | 0 | — |
case-20 | pass→pass | 4,842 | 2,288 | -53% | 1 | 1 | 0% | 949 | 1,656 | +74% | 0 | 0 | — |
case-21 | fail→pass | 10,759 | 1,900 | -82% | 1 | 1 | 0% | 1,949 | 1,559 | -20% | 0 | 0 | — |
case-22 | fail→fail | 7,390 | 1,833 | -75% | 1 | 1 | 0% | 1,355 | 1,531 | +13% | 0 | 0 | — |
case-23 | fail→pass | 12,044 | 3,339 | -72% | 1 | 1 | 0% | 2,101 | 1,849 | -12% | 0 | 0 | — |
case-24 | fail→pass | 9,926 | 5,250 | -47% | 1 | 1 | 0% | 1,651 | 2,136 | +29% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 12 counted toward the lift figure. The other 12 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +25 percentage points is the difference between those two pass rates over the 12 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/21/2026 | +22% |
Other measured skills in the registry, with their headline benchmark lift.