skills/review/SKILL.md
Unified review dispatcher. Auto-detects review type from argument or presents selection menu. Routes to code review, PR review, or scope review.
npx skillsauth add srnnkls/tropos reviewInstall 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.
Git status:
!git status --short 2>/dev/null
Recent commits:
!git log --oneline -5 2>/dev/null
Current branch:
!git branch --show-current 2>/dev/null
Active scopes:
!find scopes -maxdepth 3 -name scope.md 2>/dev/null
Open PRs:
!gh pr list --limit 5 --json number,title,headRefName --jq '.[] | "#\(.number) \(.title) (\(.headRefName))"' 2>/dev/null
Routes to the appropriate review skill based on argument type.
Pre-parse: Extract --reviewers <aliases> from $ARGUMENTS before pattern matching. Value is a comma-separated list from {opus, sonnet, gpt, gemini}. Resolve to models per the Reviewer Selection section. Unknown alias → ask user to pick from the table. Flag is inherited by all downstream routes (Skill/code, Skill/scope, Skill/gestalt).
Apply these rules to remaining $ARGUMENTS in order:
| Pattern | Route | Action |
|---|---|---|
| Numeric, #N, or GitHub PR URL | PR review | Read and follow operations/pr.md |
| 7+ hex chars (commit SHA) | Commit review | Skill(code, review --rev $ARGUMENTS) |
| --final <name> | Final scope review | Skill(code, review --final $NAME) |
| Matches scopes/*/*/scope.md or scope name | Scope review | Skill(scope, review $SCOPE_NAME) |
| gestalt or --structural | Structural review | Skill(gestalt, review $REST) |
| --test-audit [path] or path whose first component is test or tests | Test quality audit | Read and follow operations/test-audit.md with $TARGET = path or tests |
| File path that exists | Path review | Skill(code, review --path $ARGUMENTS) |
| No argument | Menu fallback | See below |
When no argument or ambiguous, use AskUserQuestion:
Header: Review
Question: What would you like to review?
multiSelect: false
Options:
- PR: Review a GitHub pull request — inline comments and structured summary
- Commit: Review changes in a specific commit
- Branch diff: Review all changes since diverging from base branch
- Uncommitted: Review staged and unstaged modifications
- Structural: Gestalt-driven structural review — topology, blast radius, targeted questions
- Test quality: Audit tests for oracle mirroring, mock tautologies, framework tests, trivial assertions
With "Other" covering: scope review, path review, or custom target.
Routing by selection:
| Selection | Action |
|---|---|
| PR | Read and follow operations/pr.md — ask for PR # |
| Commit | Skill(code, review --rev ...) — ask for SHA first |
| Branch diff | Skill(code, review --diff <base>..HEAD) — ask for base branch first |
| Uncommitted | Skill(code, review) — auto-detects staged/unstaged |
| Structural | Skill(gestalt, review) — ask for base..target range first |
| Other: scope | Skill(scope, review) — scope skill asks for name |
| Test quality | Read and follow operations/test-audit.md — ask for path (default: tests) |
Protocol: dispatch/protocol.md
Canonical configuration for multi-agent review. Domain skills compose on this.
Reference: See reference/models.md for models, reference/harnesses.md for dispatch templates, reference/report.md for YAML schemas, reference/synthesis.md for merge algorithm.
opus, sonnet — dispatched by the agent via Task.peer list for the canonical registry (id ↔ harness ↔ model ↔ alias). Don't
restate model strings here.Full details: reference/models.md, reference/harnesses.md, peer skill
Cartesian product: roles × harnesses, all in single message. Domain skill defines roles. This skill defines harnesses.
Reviewers can be specified three ways, resolved in this order:
--reviewers flag (non-interactive) — comma-separated aliasesvalidation.yaml review_config — persisted per-scope selection--reviewers FlagAccepts a comma-separated list of short aliases:
| Alias | Harness | Reviewer-id |
|---|---|---|
| opus | claude | claude-opus |
| sonnet | claude | claude-sonnet |
| gpt | codex | codex-gpt5.5 |
| gemini | gemini | gemini-3.5-flash |
(Model per reviewer-id: peer list.)
Examples:
/review --reviewers opus,gpt → claude-opus + codex-gpt5.5/review --reviewers opus,gpt,gemini → claude-opus + codex-gpt5.5 + gemini-3.5-flash/implement execute --reviewers opus,gpt → same two reviewers used for Phase A.5 + Phase CInvalid alias: Report unknown alias and ask user to pick from the table.
Question 1: Select reviewers (multiSelect):
Default: claude-opus, codex-gpt5.5, gemini-3.5-flash
Question 2: Reasoning effort (if Codex selected): low, medium, high (Recommended)
Reviewer-id ↔ harness ↔ model is the peer skill registry (peer list).
claude-opus/claude-sonnet map to the Claude Task harness; codex-gpt5.5/
gemini-3.5-flash to the external harnesses peer dispatches.
Store resolved selections in validation.yaml under review_config (whether from flag, prior config, or interactive prompt).
Base YAML structures for reviewer and synthesized reports. Full details: reference/report.md
Merge, dedup, gate aggregation, severity aggregation. Full details: reference/synthesis.md
tools
External code-review harness (`peer` zsh tool): canonical model registry, idle-stall watchdog, and self-parallelising fan-out to codex/gemini. Use when dispatching external (non-Claude) reviewers from the review or implement pipelines — call `peer run`/`peer <harness>` instead of `codex exec`/`gcloud`+Vertex directly.
testing
Unified validation dispatcher. Auto-detects validation type from argument or presents selection menu. Routes to test, implement (verify), or hooks-test.
development
Test-driven development methodology (RED-GREEN-REFACTOR). Use when implementing features, fixing bugs, or changing behavior - write failing test first, then minimal code to pass.
development
Create new Claude Code skills following project patterns and best practices. Use when building new skills, extracting reusable capabilities, or converting commands to skills.