Work packages completed: - WP1: packages/forge — pipeline runner, stage adapter, board tasks, brief classifier, persona loader with project-level overrides. 89 tests, 95.62% coverage. - WP2: packages/macp — credential resolver, gate runner, event emitter, protocol types. 65 tests, 96.24% coverage. Full Python-to-TS port preserving all behavior. - WP3: plugins/mosaic-framework — OC rails injection plugin (before_agent_start + subagent_spawning hooks for Mosaic contract enforcement). - WP4: profiles/ (domains, tech-stacks, workflows), guides/ (17 docs), skills/ (5 universal skills), forge pipeline assets (48 markdown files). Board deliberation: docs/reviews/consolidation-board-memo.md Brief: briefs/monorepo-consolidation.md Consolidates mosaic/stack (forge, MACP, bootstrap framework) into mosaic/mosaic-stack. 154 new tests total. Zero Python — all TypeScript/ESM.
103 lines
4.9 KiB
Markdown
103 lines
4.9 KiB
Markdown
# Debate Protocol
|
|
|
|
## Structured Phases (replaces open-ended rounds)
|
|
|
|
Debates run in three explicit phases, not freeform back-and-forth.
|
|
|
|
### Phase 1: Independent Position Statements
|
|
|
|
- Each participant reads the input independently
|
|
- Each produces a written position statement with reasoning
|
|
- **No participant sees others' positions during this phase**
|
|
- This prevents framing bias (the Architect doesn't set the frame for everyone else)
|
|
- Output: N independent position statements
|
|
|
|
### Phase 2: Response & Challenge
|
|
|
|
- All position statements are shared simultaneously
|
|
- Each participant responds to the others:
|
|
- Specific agreements (with reasoning, not "sounds good")
|
|
- Specific disagreements (with counter-reasoning)
|
|
- Risks the others missed
|
|
- **Min 2, Max 10 response rounds** (each round = full cycle where every participant speaks)
|
|
- A "round" is defined as: every active participant has produced one response
|
|
- Circular detection: the Gate Reviewer (not the state machine) reviews round summaries and can halt if arguments are repeating
|
|
|
|
### Phase 3: Synthesis
|
|
|
|
- One designated synthesizer (usually the Software Architect for Planning 1, the lead Language Specialist for Planning 2)
|
|
- Produces the output document (ADR, implementation spec, etc.)
|
|
- **Must include:**
|
|
- Chosen approach with reasoning
|
|
- Rejected alternatives with reasoning
|
|
- All dissents (attributed to the dissenting role)
|
|
- Risk register
|
|
- Confidence level (HIGH / MEDIUM / LOW)
|
|
- Other participants review the synthesis for accuracy
|
|
- If a participant's dissent is misrepresented → one correction round
|
|
|
|
## Cross-Cutting Agents (present in EVERY debate)
|
|
|
|
Two agents participate in every debate at every level — Board, Planning 1, Planning 2, Planning 3:
|
|
|
|
- **Contrarian**: Deliberately argues the opposing position. Challenges assumptions. Finds failure modes. Prevents groupthink. If everyone agrees, the Contrarian's job is to explain why they shouldn't.
|
|
- **Moonshot**: Pushes boundaries. Proposes the ambitious version. Connects to the bigger vision. Prevents mediocrity. Always presents two versions: the moonshot AND a pragmatic stepping stone.
|
|
|
|
These two create productive tension — the Contrarian pulls toward "are we sure?" while the Moonshot pulls toward "what if we aimed higher?" The domain experts sit in the middle, grounding both extremes in technical reality.
|
|
|
|
## Round Definition
|
|
|
|
A **round** = one full cycle where every active participant has spoken once.
|
|
|
|
- 4 participants = 4 messages = 1 round
|
|
- This is explicit to prevent confusion about costs
|
|
|
|
## Round Limits
|
|
|
|
| Phase | Min | Max | Cost (N participants, mixed models) |
|
|
| ------- | ---------------------- | ------------------------ | ----------------------------------- |
|
|
| Phase 1 | 1 (each speaks once) | 1 | N calls |
|
|
| Phase 2 | 2 rounds | 10 rounds | 2N - 10N calls |
|
|
| Phase 3 | 1 (synthesis + review) | 2 (if correction needed) | N+1 - 2N calls |
|
|
|
|
### Example: Board (6 participants — CEO, CTO, CFO, COO, Contrarian, Moonshot)
|
|
|
|
| Phase | Min | Max |
|
|
| --------- | ------------- | ------------- |
|
|
| Phase 1 | 6 | 6 |
|
|
| Phase 2 | 12 | 60 |
|
|
| Phase 3 | 7 | 12 |
|
|
| **Total** | **~25 calls** | **~78 calls** |
|
|
|
|
### Example: Planning 1 (4 generalists + 2 cross-cutting = 6)
|
|
|
|
Similar range. Planning 2 may have more specialists = higher N.
|
|
|
|
Still much tighter than the original 3-30 open rounds.
|
|
|
|
## Mandatory Behaviors
|
|
|
|
1. **State your position with reasoning.** "I think X because Y." Not "sounds good."
|
|
2. **Challenge other positions.** Every participant must challenge at least one position in Phase 2.
|
|
3. **Raise risks others missed.** If you see a problem — you MUST raise it.
|
|
4. **Formally dissent if not convinced.** Dissents survive into the output document.
|
|
5. **Don't capitulate to move forward.** Hold your position if you believe it's right.
|
|
|
|
## Prohibited Behaviors
|
|
|
|
1. **No rubber-stamping.** "Looks good to me" without reasoning is rejected.
|
|
2. **No scope creep.** Stay within the brief's boundaries.
|
|
3. **No implementation during planning.** Specs, not code.
|
|
4. **No deferring to authority.** The Architect's opinion is not automatically correct.
|
|
|
|
## Circular Detection
|
|
|
|
The **Gate Reviewer** (AI, Sonnet) — NOT the mechanical state machine — reviews Phase 2 round summaries. If arguments are repeating with no new information for 2+ rounds, the Gate Reviewer can:
|
|
|
|
1. Halt debate and force Phase 3 synthesis with dissents recorded
|
|
2. Escalate to human if the disagreement is fundamental
|
|
|
|
## Convergence
|
|
|
|
Any participant can request moving to Phase 3. The state machine polls all participants (structured yes/no). If 2/3 agree → proceed to Phase 3. Otherwise → continue Phase 2 (within max rounds).
|