AI-Robin generic reviewer skill. The shared review flow used by all domain-specific reviewer agents (robin-reviewer-code-quality, robin-reviewer-frontend-a11y, etc.). Defines how to load scope, walk a domain checklist, and emit a structured verdict. Domain-specific checklists live in `domains/{domain}.md`.
This is the shared reviewer skill loaded by every robin-reviewer-{domain} agent wrapper. Each wrapper tells you which domain you're reviewing; you follow the flow below and consult skills/robin-reviewer/domains/{domain}.md for the domain-specific checklist.
This file is domain-agnostic. The "what to look for" lives in the domain file.
Review-Planner dispatches a robin-reviewer-{domain} agent when the domain applies to a batch's changes. code-quality is always dispatched; other domains are dispatched based on file patterns / change character (see skills/robin-review-planner/SKILL.md for dispatch rules).
contracts/review-verdict.md — verdict format (Part 1: Sub-Verdict)contracts/dispatch-signal.md — return signal formatskills/robin-reviewer/domains/{your-domain}.md — checklist for this invocation's domain (the wrapper tells you which domain you are)From main agent at spawn:
{
"invocation_id": "string",
"batch_id": "string",
"playbook_name": "string — e.g. 'code-quality', 'frontend-a11y'",
"scope": {
"files": ["string — paths in working tree to review"],
"specs": ["string — spec_ids to inspect"]
},
"severity_focus": "'blocking' | 'quality' | 'advisory'",
"project_root": "string"
}
Return a review_sub_verdict signal with the verdict per contracts/review-verdict.md Part 1.
Read all files listed in scope.files. Load all specs in scope.specs.
Skip files that can't be read (mark in scope_reviewed.skipped with reason).
Load skills/robin-reviewer/domains/{playbook_name}.md and apply each section to the loaded files.
For each finding, create an entry in the issues[] list of your verdict with:
severity — per each section's default in the domain file (blocking / quality / advisory)category — one of the section names from the domain filelocation — file + line_start + line_enddescription — what's wrongrationale — which rule was violated + brief why; cite the domain section (e.g. "§2 readability")suggested_action — concrete fixblocking issues → status: failquality issues (no blocking) → status: pass_with_warningsstatus: passOne paragraph assessing the overall health of the reviewed code through your domain's lens.
Include playbook_specific_metrics if useful. Shape depends on domain; see your domain file for suggestions. A common minimum:
{
"files_analyzed": N,
"issues_by_category": { "{cat}": N, ... }
}
Write signal to .ai-robin/dispatch/inbox/{signal_id}.json.
signal_id format: review-{playbook_name}-{batch_id}-{YYYYMMDDTHHMMSS}-{8-hex}
Over-reporting dilutes signal. Under-reporting misses bugs. Calibration:
If you're producing 20+ issues on a normal-size change, you're probably nit-picking — raise the threshold for quality and flag only as advisory where rule violation is minor.
If you're producing 0 issues on every change, you're probably not looking — review more carefully, or the rulebook is too lax.
Each issue in the verdict:
{
"issue_id": "{domain-short}-N",
"severity": "quality",
"category": "<from domain checklist>",
"location": {
"file": "apps/api/src/routes/users.ts",
"line_start": 45,
"line_end": 134,
"spec_id": null
},
"description": "handleCreate is 89 lines long.",
"rationale": "§2 readability: functions should be under ~80 lines; splits improve testability and comprehension.",
"suggested_action": "Extract validation into validateCreatePayload(), DB logic into createUserRecord()."
}
Always cite the section of the domain checklist in rationale so Merge can consolidate and Planner can address properly.
spec-anchors or other spec-focused playbooks.backend-api reviews contract compliance, don't re-flag the same issue under code-quality. Stick to your domain.After emitting, main agent collects this verdict + other playbooks' verdicts, spawns Merger. Merger consolidates same-location same-concern issues. Your rationale field citing your domain checklist's sections lets Merger identify which issues come from which reviewer.
domains/code-quality.md — the always-on domain (correctness, readability, maintainability, error handling, testing, security basics, performance awareness, documentation)Future domain files (not yet written; each gets its own agent wrapper when added):
domains/frontend-component.mddomains/frontend-a11y.mddomains/backend-api.mddomains/db-schema.mddomains/agent-integration.mddomains/test-coverage.mddomains/spec-anchors.md