implement
Installation
SKILL.md
Do the plan in thin slices, one slice at a time. A slice is the smallest change to observable behavior. When a spec exists at docs/specs/<slug>.md, its acceptance criteria are the plan. Work through them one criterion at a time. The diff must not change anything that a non-goal of the spec excludes. A spec that still has an ## Open decisions section is a draft. Send it back to drill. A request with no spec and no settled plan goes to drill first. Its fast path gives the one-sentence plan.
- Before the first test, create a task list. Add one item for each acceptance criterion when a spec exists. When no spec exists, add one item for each slice. Then add
verify, and addrubricwhen the work is a UI, a public interface, a name, or a doc. Do not create a list of fewer than three items. Mark each item done when its work is committed. When you skip an item, mark it done and addskip: <reason>to its text. Never skip a criterion. Leave it open. - Pick the smallest unfinished slice, and do steps 3 to 7 on it in this session. When the user asked to give slices to workers, launch a subagent that runs the
implementskill. It does steps 3 to 5 on one slice. Read its diff, then do steps 6 and 7 here. - Write the test that fails for the slice. Test through the interface, never against implementation details. If you cannot write a failing test, the interface under test is wrong. Fix the plan, not the test.
- Write the minimum code that makes the test pass.
- Refactor only while the tests pass. Use the style of the code around it.
- Do the check in blast-radius.md before the gate when the diff deletes or renames a symbol that other code uses. Do it also when the diff changes a contract that another module, stored data, or an outside caller depends on.
- Read the
verifyskill, and run its gate on the slice. Commit on its evidence record. - Go back to step 2 until no slice is left.
Rules: