46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
---
|
|
name: adversarial-review-loop
|
|
description: Has a second, independent model review every change before merge so two different reviewers must agree — code only lands when both clear the bar.
|
|
category: engineering
|
|
interval: 15m
|
|
stop-condition: The implementing agent and the independent cross-model reviewer both approve with no blocking findings and tests pass.
|
|
components: [agent:expert-advisors/architect-review, command:git-workflow/gemini-review, command:git-workflow/pr-review]
|
|
tags: [code-review, cross-model, quality, loop]
|
|
---
|
|
|
|
# Adversarial-Review Loop
|
|
|
|
> **Loop Engineering** — the verifier inside the loop is the hard part, and an agent grading its own homework will delete the failing test and call it done. This loop puts a *second, different* model in the reviewer seat: two model families must agree before code lands.
|
|
|
|
## 🎯 Goal
|
|
Implement a change, then have an **independent cross-model reviewer** argue against it. Iterate on findings until both the builder and the outside reviewer sign off — no self-grading.
|
|
|
|
## ⏱️ Schedule
|
|
Suggested interval: `15m` (or run until the change is merge-ready).
|
|
|
|
## ▶️ Run it
|
|
```
|
|
/loop 15m "Implement the change. Then have a different model review it adversarially for correctness, security and design. Address every blocking finding and re-run tests. Land it only when both the builder and the independent reviewer agree there are no blocking findings. Max 5 review rounds."
|
|
```
|
|
|
|
## 🔁 Iteration steps
|
|
1. **Build** — implement the next slice.
|
|
2. **Cross-review** — run `/gemini-review` so a *different* model family critiques the diff.
|
|
3. **Reason** — collect blocking findings from the outside reviewer.
|
|
4. **Act** — fix them; `architect-review` validates the revision; re-run tests.
|
|
5. **Observe** — re-review with `/pr-review`; loop until both sides agree (cap the rounds).
|
|
|
|
## 🛑 Stopping condition
|
|
Both reviewers report zero blocking findings and tests pass — or the review-round cap is reached and the loop hands off with the open findings.
|
|
|
|
## 💰 Budget & guardrails
|
|
A `--max-iter` style cap on review rounds and a severity threshold: only findings at/above the bar block. Two independent models must agree, so neither can rubber-stamp itself.
|
|
|
|
## 🧩 Referenced components
|
|
- `agent:expert-advisors/architect-review` — the in-house reviewer.
|
|
- `command:git-workflow/gemini-review` — an independent, different-model review.
|
|
- `command:git-workflow/pr-review` — structured re-review checklist.
|
|
|
|
## 💡 Example
|
|
The builder ships an auth change; the cross-model reviewer flags a timing-attack risk the in-house reviewer missed. The loop fixes it, both agree, and only then does it land.
|