Code Review Tribunal
Judge a diff, then make it prove itself. A Correctness Judge and a Security Judge review the changeset through independent lenses, blind to each other; an Adversarial Verifier tries to break every finding; the Tribunal Clerk checks the evidence and settles each one as confirmed, needing your verification, or dismissed with the reason recorded. You get a verdict with file-and-line evidence and the dismissed list - signal, not noise. It reads code read-only and never fixes or merges.
Overview
Judge a diff, then make it prove itself. A Correctness Judge and a Security Judge review the changeset through independent lenses, blind to each other; an Adversarial Verifier tries to break every finding; the Tribunal Clerk checks the evidence and settles each one as confirmed, needing your verification, or dismissed with the reason recorded. You get a verdict with file-and-line evidence and the dismissed list - signal, not noise. It reads code read-only and never fixes or merges.
Professional workflow
Built with reusable playbooks, execution controls and enforceable review rules—not just a single prompt.
- 3 Playbooks
- Sequential workflow
- 6 Enforcement specs
- Human-gated
Participants
4Loop
7- 1
Verify inputs: the diff or branch and enough context to read it. Name anything missing and request it from the human before the judges start.
Tribunal Clerk — coordinator: assigns finding states, revalidates - 2
Review the diff for logic, edge-case, data-flow and contract defects; file findings with file, line and reason, independent of the security lens.
Correctness Judge — reviews logic, edge, data and contract defects - 3
Statically review the diff for authorization, injection, secret-exposure and supply-chain risk; file findings with file, line and reason, independent of the correctness lens.
Security Judge — statically reviews authz, injection and secret risk - 4
Try to refute each finding; propose a disposition - confirm, needs-verification or dismiss - with the evidence behind it.
Adversarial Verifier — refutes findings, proposes a disposition - 5
Assign the final state to each finding after checking format and evidence; deduplicate; compile the dismissed list with reasons.
Tribunal Clerk — coordinator: assigns finding states, revalidates - 6
Final revalidation: both lenses ran, every finding has a state with evidence, dismissed reasons recorded. Single-pass: nothing goes back; the unsettled stays NEEDS HUMAN VERIFICATION.
Tribunal Clerk — coordinator: assigns finding states, revalidates - 7
Deliver in one named state - READY_FOR_HUMAN_REVIEW, BLOCKED_MISSING_CONTEXT or FAILED_REVIEW - with the full artifact set declared in the Loop specification.
Tribunal Clerk — coordinator: assigns finding states, revalidates
Tools
1Rules
16Every finding cites file, line and a concrete reason — for correctness, the input that yields the wrong result; for security, the abuse path. A finding that cannot cite evidence is proposed DISMISSED or NEEDS HUMAN VERIFICATION, never CONFIRMED.
The Correctness Judge and the Security Judge review the same diff through separate lenses and do not see each other's findings before the Verifier runs. They work independently — not necessarily at the same time. Independence keeps the two lenses from collapsing into one.
The tribunal never assumes intent or unstated requirements. Where a finding depends on what the author meant, it is filed NEEDS HUMAN VERIFICATION with the open question stated — never silently CONFIRMED or DISMISSED.
A DISMISSED finding records what it claimed and the specific reason it was refuted, so the dismissal is auditable. Dismissed findings are listed, not deleted — the reader can see what was considered and why it was dropped.
READY_FOR_HUMAN_REVIEW succeeds only when every finding is stated and evidenced and the dismissed list is present; NEEDS HUMAN VERIFICATION findings are a valid part of it. A blocked or failed run succeeds only if the missing input is named with the finding or lens it blocks. Review stats are always reported.
Each Judge hands off findings with file, line and reason. The Verifier accepts only located, reasoned findings; a finding without a location or a reason is returned to its Judge, not processed blind.
If the diff is unreadable or context needed to run a lens or assign a state is missing, the tribunal stops at BLOCKED_MISSING_CONTEXT with the missing item named. If the changeset cannot be reviewed at all, it stops at FAILED_REVIEW. Never a verdict with silent gaps.
This is a single-pass review, not an iterative loop. READY_FOR_HUMAN_REVIEW requires both lenses run and every finding assigned a state with evidence - and it may legitimately contain NEEDS HUMAN VERIFICATION findings. It becomes BLOCKED_MISSING_CONTEXT only when input is missing to run a lens or to assign a state.
Every finding carries exactly one final state, assigned by the Clerk. CONFIRMED: survived refutation with evidence. NEEDS HUMAN VERIFICATION: plausible but depends on intent or context the tribunal cannot settle. DISMISSED: refuted, with the reason recorded. No finding ships stateless.
The Verifier proposes a disposition for each finding — confirm, needs-verification or dismiss — with the evidence behind it. The Clerk checks the format and evidence and assigns the final state; a finding the Clerk cannot settle is filed NEEDS HUMAN VERIFICATION, never dropped.
The Verifier's job is to break each finding, not to agree with it. It proposes CONFIRMED only for a finding that survives a genuine refutation attempt with evidence. When refutation is inconclusive, it proposes NEEDS HUMAN VERIFICATION — never confirm.
The tribunal never invents bugs, history or severity. A claim such as 'this has been broken for months' is forbidden unless the diff shows it. The absence of a finding is reported honestly, not padded with speculation to look thorough.
Risk acceptance, architecture changes, security decisions, applying any fix, and merging belong to the human. The tribunal recommends and cites; it never edits code, never merges, and never decides that a CONFIRMED finding is acceptable to ship.
Output ships in exactly one labeled state: READY_FOR_HUMAN_REVIEW, BLOCKED_MISSING_CONTEXT or FAILED_REVIEW. The package is the artifact set declared in the Loop specification: executive verdict, findings table with file:line evidence, severity and confidence, disputed findings, human verification items, and review stats.
The tribunal does not implement fixes, does not merge, and does not run a penetration test. Security review here is static, depends on the available context, does not prove real exploitability, and is not exhaustive. It does not replace human review or guarantee zero false positives.
You provide: the diff or branch under review, and enough context to read it — language, what changed, and any risk areas. The Clerk names anything missing and requests it. The tribunal reads the repo read-only and never modifies, runs or merges code.
Version history
2Professional V2: independent review playbooks, evidence-backed findings, adversarial challenge, explicit finding states, and human verification gates.
Initial release
Reviews
0No reviews yet