implement-plan
Implement Plan
Execute a plan artifact end-to-end on the current working tree. This skill reads the plan artifact READ-ONLY, walks the numbered task list in plan order, implements each task, self-reviews after each task, auto-commits per plan task, reports a four-state status per plan task, and emits a single immutable implementation report record on the way out. By default it does not pause for clarifying questions at each step or ask before committing, but it honors an invocation that asks it to check in or work through the tasks interactively; it does not rewrite history.
This skill is SINGLE-AGENT. The current session is the implementer; the same session runs the self-review pass after each plan task. No subagents are spawned — there is no implementer/reviewer separation, no orchestrator role distinct from the implementer role. The self-review pass after each task is the only review layer in this topology.
Inputs
This skill accepts a plan artifact path. The plan lives in a lineage folder under a structured thread folder, following the pattern:
docs/threads/<YYMMDDHHMMSSZ-slug>/plans/NNN[-<desc>]/plan.md
The plan file is simply plan.md inside its lineage folder NNN[-<desc>]/ (NNN is a zero-padded 3-digit sequence starting at 001); the file carries no UTC stamp and no v<N> in its name — the lineage folder is the stable identifier and the unit of reference. Both LOOSE and STRICT granularities are valid input — both require every plan task to be sequential, isolated, independently implementable, and independently reviewable — and both are executed in plan order by this skill.
The user MAY pass a SPECIFIC plan task identifier alongside the plan path (for example, "task 3" or "tasks 2 and 4"). When passed, the skill executes only the named task(s); when omitted, the skill executes every numbered task in the plan in order. Even when only one task is named, the rule still applies — read the plan READ-ONLY, run the task, self-review, commit per ## Commit Policy, and write the four-state status report.
If the input is ambiguous — the thread holds multiple plan lineages (plans/001/ and plans/002-cli/) and the user named "the plan" without a specific path, or the reference matches multiple lineages — ASK the user which plan lineage is intended. There is no global "latest plan" algorithm. Do not silently pick by recency, by highest NNN, or by sort order. (There is exactly one plan.md per lineage; competing drafts never become emitted siblings — they live in .wip/.)