PCOS Debate Protocol
Debate Flow
Planner (Blue/White Hat)
- Draft: Analyze relevant files, create plan
- Share draft: Send complete draft to critic and optimizer
- Receive feedback: Critic sends challenges (problems), then Optimizer sends proposals (improvements, incorporating Critic's input)
- Respond to each item:
- Accept: Modify the plan and explain the change
- Reject: Provide clear reasoning
- Defer: Note for user to decide
- Send revised plan to all: After responding to feedback, send the revised plan to critic, optimizer, AND synthesizer
Critic (Black Hat)
- Pre-read: Read relevant files while waiting for planner's draft
- Receive draft: From planner
- Analyze: Check against domain-specific review categories
- Send challenges to planner: Ordered by severity (CRITICAL first)
- Copy challenges to optimizer: So optimizer can propose alternatives
- Review planner's responses: Verify changes or rejections are sound
- Send final assessment to synthesizer: Summary of resolved/unresolved issues
Optimizer (Green Hat)
- Pre-read: Read relevant files while waiting
- WAIT for both: Planner's draft AND Critic's challenges. Do NOT start proposing improvements until Critic's challenges have been received. Deadlock-breaking requires knowing both positions.
- Analyze independently: Find improvements the plan missed
- Break deadlocks: If Critic and Planner disagree, propose a third option
- Send proposals to planner: Both independent improvements and deadlock-breaking alternatives
- Send final proposals to synthesizer: All proposals with their status
Synthesizer
- Pre-read: Read relevant files for background
- Receive: Planner's final plan, Critic's final assessment, Optimizer's final proposals
- Resolve: For unresolved disagreements, make evidence-based final calls
- Produce final output: Write output files directly (plan file, index updates, and any additional deliverables)
Debate Constraints
- Maximum 2 rounds of Critic-Planner exchange
- Critic focuses on PROBLEMS only (not improvements)
- Optimizer focuses on IMPROVEMENTS only (not problems) and DEADLOCK RESOLUTION
- Synthesizer is neutral -- does not favor any participant
Unverified Hypothesis Handling
Planner Responsibilities
- Mark any technical feasibility assumption you are not 100% certain about with
[UNVERIFIED] - Do NOT delay the draft to verify -- mark and move on (speed over certainty at draft stage)
Critic/Optimizer Responsibilities (Complex Mode)
- Use search tools (WebSearch, WebFetch, context7 MCP -- see web-research skill) to verify or refute
[UNVERIFIED]items - Report verification results in Challenge/Proposal format:
- Verified true:
[VERIFIED]with evidence link/quote - Verified false: Challenge with correct information
- Cannot verify: Leave as
[UNVERIFIED]with note
- Verified true:
Synthesizer Responsibilities
- For items that remain
[UNVERIFIED]after debate:- Record in the Critique Log with Resolution = "Unverified"
- Add an investigation task to the plan's Progress Tracking section:
- [ ] Investigate: [description of what needs verification] - The main session handles investigation before proceeding to the next phase (e.g., before
/update-claude-configor/tdd)
Simple Mode (No Critic/Optimizer)
- Planner marks
[UNVERIFIED]items in the plan - The main session investigates all
[UNVERIFIED]items before proceeding to implementation
Standard Agent Constraints
- Synthesizer writes output files directly (plan files, index updates, ADRs). Other roles (Planner, Critic, Optimizer) do NOT write files.
- Do NOT ask user questions (team lead handles user interaction)
- Planner, Critic, Optimizer: Do NOT read or write files in
docs/plans/directory (team lead provides needed plan content) - Synthesizer: MAY write to
docs/plans/anddocs/adr/directories as part of file-writing responsibilities - You MAY read application source code files to analyze architecture and existing patterns
Challenge Format
**Challenge [N]**: [Category] - [One-line summary]
Problem: [Specific description]
Assumes: [Unstated assumption the plan relies on -- omit if none]
Evidence: [File path, line numbers, convention reference]
Suggestion: [Concrete fix]
Severity: CRITICAL | HIGH | MEDIUM
Proposal Format
**Improvement [N]**: [Category] - [One-line summary]
Current: [What the plan does now]
Proposed: [What it could do instead]
Benefit: [Why this is better]
Priority: HIGH | MEDIUM | LOW
Critique Log Format
The Synthesizer produces this as part of the final output:
## Critique Log
| # | Source | Challenge/Proposal | Category | Resolution | Detail |
|---|--------|-------------------|----------|------------|--------|
| 1 | Critic | [challenge summary] | [category] | Accepted/Rejected/Deferred | [detail] |
| 2 | Optimizer | [proposal summary] | [category] | Accepted/Rejected/Deferred | [detail] |
**Debate rounds**: N
**Critic challenges**: N (Accepted: N | Rejected: N | Deferred: N)
**Optimizer proposals**: N (Accepted: N | Rejected: N | Deferred: N)
**Deadlocks resolved by Optimizer**: N