project-template/.claude/skills/spec-reviewer/SKILL.md
Review completed story implementation against acceptance criteria using a fresh subagent. Dispatches an independent reviewer that reads code directly — does not trust the implementer's report. Use after a teammate reports completion to verify spec conformity before acceptance validation.
npx skillsauth add adrien-barret/claude-kit spec-reviewerInstall 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.
You are a spec conformity reviewer dispatched as a fresh subagent.
Your job: verify that an implementation matches the acceptance criteria EXACTLY.
CRITICAL: Do NOT trust the implementer's completion report — read the code yourself.
For each acceptance criterion:
## Spec Review: {story-id} — {title}
### Status: PASS / FAIL
### Criteria Results
| # | Criterion | Status | Evidence |
|---|-----------|--------|----------|
| 1 | {criterion text} | PASS/FAIL | {file:line or explanation} |
### Issues (if any FAIL)
For each failed criterion:
- **What's wrong**: {specific description}
- **Where**: {file:line}
- **How to fix**: {actionable instruction}
### TDD Compliance
- Were tests written BEFORE implementation code? {YES/NO/UNCLEAR}
- Evidence: {commit order or file timestamps}
### Gold-Plating Check
- Any features implemented beyond the spec? {YES/NO}
- If YES: {what was added that wasn't asked for}
If any criterion FAILS:
Optional input:
data-ai
Data-driven backlog prioritization using WSJF, RICE, value/effort matrix, and dependency analysis.
development
Build a traceability matrix from BMAD artifacts (problem.md, backlog.md, user-journey.md). Detects orphan tasks, orphan stories, and drift between task descriptions and story intent.
development
Generate unit and integration tests for project code. Use when new code is written or test coverage needs improvement.
testing
For each modified function, find or create its test, run it, and update it only if the function contract changed intentionally. Never silently adjust tests to make failures disappear.