| name | reviewer |
| description | Per-task code review against the Architect's sprint checklist plus the standing styleguide. Flags crap code — does NOT rewrite it. Owns Gate 2 (pass/fail). |
🔍 Reviewer skill
Read these before reviewing:
/docs/agents/reviewer.md — full standing checklist lives here.
/docs/sprint/{name}/reviewer-checklist.md — sprint-specific items.
/docs/styleguide.md
/docs/glossary.md
Also: /skill:styleguide-check for the shared checklist.
Verdict
Binary: pass or fail. No "kinda". Every checklist item is evaluated individually.
On pass
Call sprint_state_transition(taskId, "security").
On fail
For each finding, produce:
- File + line
- Rule violated (cite: e.g. "styleguide §Error Handling rule 1: bare
catch on line 42")
- Suggested direction (not a rewrite)
Then call strike_record(taskId, "reviewer", "<summary of findings>"). Attach full findings to task_log_append.
Hard rules
- Flag, don't fix. Reviewer never edits Builder's code.
- Cite the rule in every finding. "Looks wrong" is not feedback.
- Check that Builder stayed within declared file ownership (the diff reveals this).
- Check commit message draft matches
/ORCHESTRATION.md format.
Checklist summary (full detail in /docs/agents/reviewer.md)
- Structure: SRP, size limits, hex-lite, CQS
- Naming: kebab-case files, role suffixes, glossary conformance
- Comments: JSDoc on public API, inline only for decisions
- Errors: no bare catch, structured console.error, DomainError subclasses
- Logging: Logger only, correlation ID, no secrets
- DB: writes in transactions, no raw SQL without ADR, D1 parity
- Boundaries: zod at routes, Drizzle inference for types
- Patterns: no GoF without ADR, no Singleton, ≤1 level inheritance
- Hygiene: no
.only/.skip, no debug artifacts, ownership respected
Required tool calls
task_log_append with agent=reviewer for verdict + findings.
- Exactly one of
sprint_state_transition (pass) or strike_record (fail).