skills/spec-implement/SKILL.md
Execute implementation tasks from an approved plan.json. Use when spec-plan has produced approved tasks and the human is ready to start coding. Tracks progress via beads (preferred) or harness-native todos, enforces TDD, reports between batches. Trigger when the user says "implement", "go", "start", "do it", or after spec-plan completes task creation. Do NOT use without an approved plan — invoke spec-plan first.
npx skillsauth add martinffx/claude-code-atelier spec-implementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pick up tasks. Execute them. Track progress. Report. Stop when blocked.
Announce at start: "I'm using the spec-implement skill to execute this plan."
This skill does not make design decisions or modify the plan. If the plan is wrong, go back to spec-plan. If the design is wrong, go back to spec-brainstorm.
Before starting, verify these exist:
docs/specs/YYYY-MM-DD-<feature>/design.mddocs/specs/YYYY-MM-DD-<feature>/plan.jsonIf anything is missing, do not proceed. Tell the human what's needed.
Read plan.json critically before writing code. Look for:
If you find concerns, raise them with the human before starting. Don't guess. Don't assume. Don't force through blockers.
If no concerns, create task tracking and proceed.
If the human hasn't specified a mode, ask.
"Implement it all. Don't stop until you're done."
bd update <id> --status in_progress → bd close <id>, or harness todo list"Do a few tasks at a time."
"Use subagents."
Default to batched if the human hasn't expressed a preference.
For each task, follow the plan exactly. Find the next ready task:
With beads (preferred):
bd ready --label <feature> --json
With harness todos:
Check the todo list for the next unblocked task (respecting depends_on from plan.json).
Mark it in progress:
With beads:
bd update <task-id> --status in_progress
With harness todos: Update the todo status to in_progress.
Read the task's inputs first — understand what context you need. Then read the description — know what to build and the constraints.
Invoke oracle-testing for test design. Write tests that cover the validation criteria before writing implementation.
1. Read task inputs and description
2. Write failing tests (cover validation criteria)
3. Run them — verify they fail for the RIGHT reason
4. Implement minimal code to make tests pass
5. Refactor if needed (tests stay green)
6. Commit (use code-commit for commit message)
Do NOT write implementation before tests. Do NOT skip "verify it fails." Do NOT write more code than needed to pass the test.
Verify the task against its validation — run the tests listed in the task and check all acceptance criteria are met.
Invoke code-review to review the implementation before moving to the next task. This catches issues early rather than accumulating debt across multiple tasks.
Mark the task done:
With beads:
bd close <task-id> --reason "Implemented with tests"
With harness todos: Mark the task as completed.
When the plan or human references existing implementations ("make it look like the users table"), read the referenced code before making changes. A reference communicates all implicit requirements without spelling them out.
After each batch:
Completed: Tasks T1-T3
- T1: UserEntity with validation ✓
- T2: UserEntity tests (6 passing) ✓
- T3: UserRepository ✓
Test output: 6 passed, 0 failed
Type check: clean
Ready for feedback.
Wait. Don't continue until the human responds.
Expect short, terse corrections:
deduplicateByTitle."Don't ask for elaboration unless genuinely needed.
| Pattern | Example | What to do | |---------|---------|------------| | Cherry-pick | "Use X for the first one. Ignore the fourth." | Item-level as directed | | Trim scope | "Skip task T7." | Mark skipped, move on | | Protect interfaces | "These signatures must not change." | Adapt callers | | Override | "Use the library's built-in method." | Direct override | | Revert | "I reverted. Now just do X." | Respect narrowed scope |
If the human reverts git changes and re-scopes, respect the narrowed scope completely. Don't salvage the previous approach. Don't ask "are you sure?"
STOP immediately when:
When you stop:
Do not guess. Do not work around it. Stop and ask. Ask for clarification rather than guessing.
If the plan needs to change:
"This needs a plan revision. Want me to go back to spec-plan?"
If the design was wrong:
"This changes design assumptions. Want me to go back to spec-brainstorm?"
Return to spec-plan when:
Return to spec-brainstorm when:
When all tasks are done, verify and present the work.
bd list --label <feature> --json (beads) or check harness todo list — all tasks must be donePresent to the human:
## Feature Complete: {feature name}
**Tasks:** {completed} / {total}
**Tests:** {new tests added}, {total passing}
**Files:** {created}, {modified}
### What was built
- [concise list of what was implemented]
### Verification
- Test suite: ✓ all passing
- Type check: ✓ clean
- Lint: ✓ clean
- Code review: ✓ complete
### Ready for review
After all tasks complete and verified, the next step is spec-finish.
"Implementation complete. Ready to validate, review, and prepare for PR?"
Offer the human their options:
Finish — invoke spec-finish to validate, review, stack commits Keep — leave the branch for now, come back later Discard — delete the branch, start over
Don't choose for them. Present options and wait.
If validation finds bugs, loop back to implement. See spec-orchestrator for iteration patterns.
development
Security architecture and threat modeling knowledge. Auto-invokes when designing features that handle untrusted data, authentication, authorization, external integrations, file uploads, or sensitive data. Provides risk assessment frameworks, trust boundary analysis, and security design principles — not implementation code.
testing
Adversarial review of non-trivial decisions using fresh-context scrutiny. Use when correctness matters more than speed, when stakes are high (production, security-sensitive logic, irreversible operations), or before committing significant architectural or implementation choices.
development
Compact the current conversation into a handoff document for another agent to pick up.
testing
Socratic interrogation of plans against the project's domain model and documented decisions. Use when the user wants to stress-test a plan, clarify terminology, or validate assumptions against existing domain language. Updates CONTEXT.md and ADRs inline as decisions crystallise.