with one click
review-loop
Review loop: run parallel reviews on a fix design.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Review loop: run parallel reviews on a fix design.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Lead: coordinate approved delivery, artifacts, and gates.
Keyboard, focus, screen-reader, contrast, WCAG A/AA.
Architecture/maintainability gate: coupling, cohesion, layering, debt.
Performance gate: latency, throughput, memory, CPU, benchmarks, budgets.
Auth, secrets, injection, exposure: merge gate.
Usability review: user flows, error states, interaction clarity.
| name | review-loop |
| description | Review loop: run parallel reviews on a fix design. |
Get independent multi-angle convergence on one written fix-design artifact BEFORE the change lands. Three scope angles (two SMART verdicts + one mechanical SCOUT) review the same artifact; the loop revises and re-dispatches autonomously under an anti-drift guard and gates the human only at convergence.
This is the Codex-line binding of the provider-neutral review-loop methodology. The design trunk (shared/references/review-loop-methodology.md) is NOT installed; this skill carries the operative rules for the Codex runtime.
Codex has no Claude Agent() background fan-out: it does not spawn three concurrent in-process subagents that fire completion notifications. The Codex loop runs the three angles through the external-dispatch / external-brigade surface and synthesizes sequentially:
$external-brigade and external-dispatch.md), each carrying its scope and the pinned objective verbatim.Angles are defined by SCOPE, not by vendor. The FOCUS each is given makes it independent. Vendors are symmetric; the Codex-line default below mirrors the Claude-line mapping (the Codex host puts Claude on the large-context/strategic scope and Codex on the surgical scope, per the symmetry rule in the trunk).
| Angle | Scope | Produces | Codex-line default |
|---|---|---|---|
| Surgical correctness | the specific defect, contract/seam violation, "this exact line/binding is wrong", visual-bug detection | a VERDICT (PASS/REVISE) | the surgery-strong engine (Codex on its own line; the host scope) |
| Deep reasoning | blast-radius, cross-system ripple, large-context synthesis, ADR / framing / "is this the right shape" | a VERDICT (PASS/REVISE) | the most capable deep-reasoning engine via $external-reviewer (auto resolves to Claude on the Codex line) |
| Mechanical scout | fully-specified scans: "does referenced X exist?", "list every reference to Y", sketch-vs-code, symbol/style | FINDINGS (no verdict) | a fast factual role; surfaces raw findings + blind-spot hints |
The scout does not co-judge: it executes spelled-out mechanical scans and surfaces raw facts that FEED the two verdict angles. A scout finding is an INPUT to a verdict, not a verdict. The scout maps to a FACTUAL, non-judging role, never a judging one.
.agents/.agents-mode.yaml first; honor parallelMode, externalProvider, externalPriorityProfile, reserveResolver, externalPriorityProfiles, externalOpinionCounts, externalModelMode, and externalCodexProfile. Shipped auto stays on codex | claude.CONFIRMED — do not re-litigate..scratch/reviews/fix-design-YYYY-MM-DD-<topic>.md: runtime-verified root with trace/file:line citations, candidate options with cost/risk, recommended option, implementation sketch, validation plan, and what each scope angle should evaluate.review-loop-state per round. No human gate per round. Each round: revise the artifact to fold in every open blocker and unreconciled scout finding; run the mandatory anti-drift check (goal, admitted scope, runtime root all unchanged — drift stops the loop); re-dispatch all angles. Persist one review-loop-state record per round under .scratch/reviews/. The runtime enforcement is hardening invariants 7-8 (failed-lane-is-unverified, fail-closed aggregation); when DEVELOPING this pack, run scripts/validate-review-loop-state.py on the ledger as a dev/CI backstop.$architect / $architecture-reviewer, or the external-reviewer lane on the Codex line — asked "is the MECHANISM right, or is the chase a symptom of a model mismatch?" — fed the manifestation PHASE-GRAPH, not the latest diff, to name the right model or confirm the honest documented-residual floor). Resume correctness only after the model is confirmed or replaced. Per the review-the-model-not-just-the-spec precedent.CONFIRMED).PASS — cite specific blockers (file:line / evidence) or a specific no-blocker rationale..out/.err carrying a normal-completion marker — never by a neighboring task's completion.REVISE and exits non-zero until every expected lane has substantive output and every recorded failure is reconciled.A shipped loop MUST persist a per-round review-loop-state record under .scratch/reviews/ so the autonomous loop leaves an auditable structural trace. Per round, persist: pinned objective / scope / runtime_root (identical across all rounds), round (≤ cap), diff, per verdict angle (surgical, deep) a non-empty successful attempt_id + a non-bare verdict plus the three meta-answers (root_proven, scope_unchanged, verification_adequate), scout attempt_id + findings + reconciliation, a lane_failures list (every expected lane that errored/died/hit a limit, each naming the failed attempt_id, the failure kind error | died | limit, and the successful redispatched_as attempt; lane_failures: [] when none failed), and evidence references. The structural validator scripts/validate-review-loop-state.* --self-test (a development/CI tool in the repo, NOT shipped into the runtime) checks the SCHEMA (anchors present + unchanged, diff present, both verdict angles + scout present with non-empty unique current attempt_ids, no bare PASS, cap respected, lane_failures well-formed with each failure reconciled to its current successful re-dispatch), and treats a missing/null sub-verdict or findings payload as NOT-clean; it does not and cannot check semantics. The RUNTIME enforcement for a shipped loop is hardening invariants 7-8 above; when DEVELOPING this pack, run the validator against the current ledger as a dev/CI backstop.
$lead.$consultant (which shells out to its own provider — the role-confusion). consultant stays untouched.$second-opinion / $consultant).$external-brigade).codex or claude.python scripts/agent-run-ledger.py --work-item <item> append --event-kind launch --status running --gate none --role <angle-role> --lane <lane> ... before, and the terminal (--event-kind terminal --launch-run-id <id>, gate parsed from the artifact's final GATE: line per the completion
oracle) after.REVISE closes only when THAT lane (or a
recorded equivalent, structured fields) re-verifies PASS naming the exact closesRunIds. Author
belief, applied fixes, or a green mechanical validator never close it; check-work-items-state
FAILs on open obligations by default and the root publication gate blocks on them.HOW→VERIFY independence: VERIFY(F) owner/engine ≠ HOW(F) author. Independence is a property of the HOW→VERIFY edge, not the WHAT→HOW edge: a reviewer may author a fix's HOW while context is fresh; only verification of the implemented fix must stay independent. For an inline-sufficient finding, no separate fix-design/HOW-review pass is required before implementation, but the existing loop-to-PASS re-verification remains mandatory. Author-exclusion for design-class (fix-class: design-decision) fixes: when the implemented fix of a design-decision finding followed a reviewer's authored HOW, at least one discharging verdict MUST come from an angle that did not author that HOW. A distinct scope counts as distinct even on the same engine (see ## The angles); this is stronger than the same-angle re-verification that suffices for inline-sufficient findings. No non-authoring verifier means no clean PASS: leave the HOW advisory and report the gap as UNVERIFIED.WAIVED:user with the user's authorization as manual-check evidence
(never against protected or unclassified findings); WAIVED:security-reviewer requires completed
status, exact target-bound manual-check evidence, and role or assignedRole equal to
security-reviewer.