Execute the next unfinished task from ./PLAN.md. One task, then stop.
- Read PLAN.md, find the first unchecked [ ] task.
- Read ONLY the files listed under that task's "Files" (plus what they directly need). Do not load the whole repo.
- Implement just that task — nothing borrowed from later tasks.
- Verify against "Done when…" with real evidence. Actually run the relevant
test / command / check and look at the output — do not assume it passed.
- If it does NOT pass: leave the box UNCHECKED, append a one-line blocker note under the task, and stop. Never tick a box you could not verify.
- Only if verification passed, update PLAN.md: tick the box and append a
one-line result note, e.g.
- [x] T1 — … ✔ <what was done>. - If a durable decision/convention emerged, add it to the project's CLAUDE.md. Durable = a rule still true many sessions from now. Do NOT put transient state, one-off values, paths, or results in CLAUDE.md (those go in the task note, HANDOFF.md, or an append-only WORKLOG.md).
- Print a closure summary before stopping:
- Changed files — if this is a git repo, run
git diff --stat; otherwise list them. - The exact command(s) you ran to verify, and their result.
- A one-line suggested commit message. (Do NOT commit unless asked.)
- Changed files — if this is a git repo, run
- STOP. Summarize in 2-3 lines and tell the user to open a fresh session and run this skill again for the next task. Do NOT continue to the next task in this conversation.
If context grows long before finishing, write HANDOFF.md and stop.