|
| 1 | +# Independent Review Protocol |
| 2 | + |
| 3 | +This protocol defines how the working model commissions independent reviews. It |
| 4 | +is not a reviewer prompt template. |
| 5 | + |
| 6 | +Every reviewer in this protocol is a separate subagent launched by the working |
| 7 | +model, not a perspective role-played in the parent conversation. In Cursor, use |
| 8 | +the `Subagent` tool. A fresh reviewer means a new subagent invocation and agent |
| 9 | +ID; a follow-up within the same review cycle resumes that subagent's existing |
| 10 | +conversation. |
| 11 | + |
| 12 | +## Generate prompts from the current task |
| 13 | + |
| 14 | +Generate each reviewer prompt after inspecting the current repository and |
| 15 | +artifact. The prompt must be self-contained because a fresh reviewer has no |
| 16 | +access to the parent conversation. |
| 17 | + |
| 18 | +Include the context that materially affects the review: |
| 19 | + |
| 20 | +- A concise overview of the relevant codebase and architecture. |
| 21 | +- The user's actual objective, constraints, non-goals, and definition of done. |
| 22 | +- The current plan, diff, branch, or exact files to inspect. |
| 23 | +- Established local patterns and sources of truth the work should follow. |
| 24 | +- Important data, security, migration, deployment, or compatibility boundaries. |
| 25 | +- Verification already performed, with exact commands and outcomes when useful. |
| 26 | +- The areas changed and the behavior they are intended to provide. |
| 27 | + |
| 28 | +Generate the prompt for the task at hand. Do not copy a fixed generic prompt or |
| 29 | +fill a mechanical template with shallow substitutions. |
| 30 | + |
| 31 | +## Keep every review independent |
| 32 | + |
| 33 | +- Begin each independent review cycle with two fresh reviewers, preferably from |
| 34 | + different model families with strong reasoning capability. Honor models |
| 35 | + requested by the user. |
| 36 | +- During that cycle, resume each reviewer separately to resolve its findings. |
| 37 | + Never reuse either conversation in a later independent review cycle. |
| 38 | +- Do not tell a reviewer whether it belongs to the first, second, final, or any |
| 39 | + other review pass. |
| 40 | +- The initial prompt in a cycle must not include findings, verdicts, responses, |
| 41 | + or changes from earlier cycles. |
| 42 | +- Do not tell reviewers what conclusion to reach or imply that defects must |
| 43 | + exist. Acceptance is a valid result. |
| 44 | +- Use the same generated prompt for both reviewers by default. Differ only when |
| 45 | + a model requires different technical context or tooling instructions, while |
| 46 | + keeping both reviews broad and neutral. |
| 47 | +- Ask reviewers to inspect repository evidence directly rather than trusting the |
| 48 | + implementation summary. |
| 49 | +- Keep reviewers read-only unless the user explicitly requested a separate |
| 50 | + implementation attempt. |
| 51 | + |
| 52 | +## Ask for a genuine broad review |
| 53 | + |
| 54 | +Ask each reviewer to judge the artifact as a whole and report anything it |
| 55 | +genuinely dislikes. The review should consider, where relevant: |
| 56 | + |
| 57 | +- Correctness, requirement coverage, and edge cases. |
| 58 | +- Security, privacy, data integrity, authorization, and secret handling. |
| 59 | +- Concurrency, failure recovery, cleanup, and partial-success behavior. |
| 60 | +- Compatibility with existing architecture, conventions, and nearby patterns. |
| 61 | +- Missing, brittle, redundant, or misleading tests. |
| 62 | +- Unnecessary complexity, duplicated logic, speculative abstraction, and |
| 63 | + overengineering. |
| 64 | +- Performance, operational, migration, rollout, and CI consequences. |
| 65 | +- Documentation and manual steps required for safe ownership after merge. |
| 66 | + |
| 67 | +This is a review surface, not a quota. Explicitly tell reviewers that acceptance, |
| 68 | +many findings, or anything between are valid outcomes. They must not optimize |
| 69 | +for finding count or manufacture criticism. |
| 70 | + |
| 71 | +## Severity and response format |
| 72 | + |
| 73 | +Require an explicit verdict and order concrete findings by severity: |
| 74 | + |
| 75 | +- **Critical**: credible security compromise, data loss, destructive rollout, |
| 76 | + or another issue that makes proceeding unsafe. |
| 77 | +- **High**: likely correctness failure, unmet core requirement, serious |
| 78 | + architectural mismatch, or major operational risk. |
| 79 | +- **Medium**: material robustness, maintainability, test, performance, or |
| 80 | + pattern-consistency issue that should be resolved. |
| 81 | +- **Small**: non-blocking polish or a narrowly scoped improvement. |
| 82 | + |
| 83 | +Each finding must include: |
| 84 | + |
| 85 | +- Concrete repository evidence, preferably a file and line or exact behavior. |
| 86 | +- Why it matters and when it can fail. |
| 87 | +- The smallest appropriate correction or decision needed. |
| 88 | + |
| 89 | +If no substantive defect exists, the reviewer should say that plainly rather |
| 90 | +than manufacture criticism. |
| 91 | + |
| 92 | +## Triage without deference |
| 93 | + |
| 94 | +The working model owns the result. For every finding: |
| 95 | + |
| 96 | +1. Verify it against the repository and the user's objective. |
| 97 | +2. Fix it when it is correct and within scope. |
| 98 | +3. Push back when it is incorrect, conflicts with requirements, or would add |
| 99 | + unjustified complexity; retain the evidence for the final summary. |
| 100 | +4. Re-run affected verification after substantive changes. |
| 101 | +5. Resume that reviewer with the current artifact and an evidence-based account |
| 102 | + of what changed or why the finding was rejected. |
| 103 | + |
| 104 | +Handle each reviewer independently; do not use one reviewer's opinion to steer |
| 105 | +the other. Continue the exchange until the reviewer accepts the resolution or |
| 106 | +has no substantive concern. Ask it to re-inspect the current artifact rather |
| 107 | +than merely approve the parent's explanation. |
| 108 | + |
| 109 | +Agreement does not mean obeying the reviewer. A valid endpoint may be a fix or |
| 110 | +an evidence-backed pushback that the reviewer accepts. Follow-ups within a |
| 111 | +review cycle are not capped: continue the separate exchange with each reviewer |
| 112 | +until the concern is resolved. The three-cycle cap limits newly created reviewer |
| 113 | +pairs, not follow-up messages in an active cycle. |
| 114 | + |
| 115 | +Do not forward this cycle's triage history to reviewers in later cycles. Their |
| 116 | +initial prompts describe only the current artifact and current evidence. |
| 117 | + |
| 118 | +## Review completion |
| 119 | + |
| 120 | +Run two independent review cycles by default. Each cycle begins with exactly two |
| 121 | +newly created reviewers, and each reviewer reaches resolution through the |
| 122 | +follow-up process above. Track cycle count only in the working session; never |
| 123 | +expose it in reviewer prompts. |
| 124 | + |
| 125 | +Run one additional cycle only when the later cycle causes substantive changes, |
| 126 | +reviewers disagree on a material issue, or meaningful uncertainty remains. |
| 127 | +Never exceed three cycles or six fresh reviewers for one planning or |
| 128 | +implementation task. |
| 129 | + |
| 130 | +After the third cycle, stop even if a reviewer still disagrees. Report the |
| 131 | +unresolved concern, evidence, attempted resolution, and available decision to |
| 132 | +the user rather than launching more reviewers. The final reviewed artifact must |
| 133 | +be the artifact being presented or shipped, not an earlier revision. |
0 commit comments