From sdd
Runs an independent, clean-context code review of a feature against its spec and acceptance criteria before shipping. Useful as a gate before merging.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd:reviewopusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The independent review gate. After `implement` has written + tested + committed the code, `review` looks at the **whole change at once, with fresh eyes** — does it actually satisfy every acceptance criterion, and is it good code? This is distinct from the per-task gate inside `implement` (which proves each task green): `review` is the cross-cutting, clean-context pass a human reviewer would do ...
The independent review gate. After implement has written + tested + committed the code, review looks at the whole change at once, with fresh eyes — does it actually satisfy every acceptance criterion, and is it good code? This is distinct from the per-task gate inside implement (which proves each task green): review is the cross-cutting, clean-context pass a human reviewer would do on the PR.
It reuses the shared clean-context discipline (../_shared/critic.md) and the reviewer subagent (read-only). Question phrasing per ../_shared/ask-style.md.
Tech Lead / a reviewer who did not write the code (independence is the point).
<slug> — feature slug.implement <slug> first».docs/features/<slug>/spec.md §5 (the full AC set — the source of truth, not the diff's trailers), sad.md §6 (the sequence flows/branches each AC should appear in), data-model.md / contracts/openapi.yaml / Accepted adr/ (the contracts the code must honour), test-plan.md (the AC→test map, if a separate file), and tasks.json (which AC each task claimed).git diff <base>..HEAD on the feature branch (base = the branch point), or the named changed files. Note the SDD-AC trailers — the ACs the implementation claims to satisfy.reviewer agent — subagent_type: "sdd:reviewer" (read-only, clean context — it re-reads spec/contracts itself, no paraphrase) — over the diff along the dimensions in ./references/review-dimensions.md: stage 1 — every claimed AC genuinely satisfied and the whole §4 user-story set + §5 AC set traced end-to-end (spec → sequences §6 → data-model → api → tasks → implement): every §4 user story has ≥1 AC and a §6 flow, and every §5 AC reaches code+test — spanning every surface declared in sad.md target_surfaces (a UI AC traces to a component / e2e-through-UI test, not only a backend one) — flagging any user story or AC that dropped out anywhere in the chain, not only the ACs the diff claims via its SDD-AC trailers; stage 2 — conventions, error/edge handling, security, boundary violations, test adequacy. For a large diff, fan out one reviewer per dimension and merge.file:line + the AC/contract it touches. Drop uncited findings (per the critic discipline). A clean review returns REVIEW_CLEAN.AskUserQuestion: Fix now (hand the actionable finding back to implement/the author as a follow-up task — re-enter the TDD loop for it) / Defer (record in spec §8 Open questions with owner + due) / Not an issue (the reviewer misread; record why). Never ship an unresolved stage-1 (AC) finding.docs/features/<slug>/_review/review-<date>.md: scope (diff stat), findings with verdicts, and the gate result (PASS / CHANGES REQUESTED).../_shared/handoff.md — What I did + Review (_review/review-<date>.md) + Run next: PASS → (/clear, then /sdd:ship <slug>); CHANGES REQUESTED → /sdd:implement <slug> for the fixes (no /clear — stay in context to iterate), then re-review the changed surface.PASS / CHANGES REQUESTED verdict.file:line + the AC/contract or drop it.added-by-fix ACs. An AC that entered §5 through a bug is proof the spec already missed that case once — trace it at least as strictly as the rest; the fix's pinning test is its floor, not proof of full coverage.SDD-AC trailers as the complete AC set. The trailers only list what the diff claims. Review traces the whole §5 set end-to-end — an AC that never reached the diff (no task wrote it, no test asserts it) is the most dangerous gap precisely because the trailers can't reveal it../references/review-dimensions.md — the review dimensions + the reviewer dispatch shape.../_shared/critic.md — the clean-context dispatch discipline this reuses.npx claudepluginhub genkovich/sdd --plugin sddPerforms a single adversarial review pass over an integrated branch diff, judging spec-compliance, code quality, and test adequacy together. Triggered via /review or 'review the changes'.
Self-review skill that critiques completed work against the spec and plan, surfaces issues by severity, and requires user sign-off before outward-facing actions.
Read-only review of a diff (PR or working changes) for code quality against project rules and feature behavior against plan acceptance criteria. Surfaces findings with a verdict; never patches.