Structured debates
What you'll find here
How bounded multi-agent disagreement is captured without erasing
minority positions — the debate_turn and debate_summary contracts,
their boundaries, and how renderers stay deterministic.
Coordination records, not consensus.
Debates preserve the basis for each position. They do not silently choose a winner.
Contracts
craik.debate_turnrole_id & role_kind · worker_result_id link · position (supports / opposes / clarifies / questions / blocks) · evidence_ids · assumption_ids · contradiction_ids.craik.debate_summaryDebate outcomes
agreementunresolved_disagreementcontradiction_openedcraik.contradiction_report records when specialist outputs assert incompatible facts or mutually exclusive implementation status.Boundaries
Scoped to task and topic.
A turn can cite evidence or assumptions, but it must not promote assumptions to facts. A summary can list next steps, but it must not silently choose a winner when a blocker or opposing specialist output remains unresolved.
Rendering
Markdown and JSON rendering are deterministic. Renderers keep turn
order from turn_ids, sort evidence-style lists where order has no
semantic meaning, and emit explicit None rows for empty sections so
absent agreement or contradiction links are visible in review.