Files
stack/packages/forge/pipeline/rails/debate-protocol.md
Mos (Agent) 10689a30d2
Some checks failed
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
feat: monorepo consolidation — forge pipeline, MACP protocol, framework plugin, profiles/guides/skills
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.
2026-03-30 19:43:24 +00:00

4.9 KiB

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).