debate_protocol_state
- Category: debate
- Access: read
- Audience: advanced (ordinary users do not normally call this directly)
Purpose
Returns the deterministic debate/v1 micro-state for one topic: phase, round, blind barrier, deadlines, and transition version. Agents must read control state here, never infer it from prose.
Arguments
Required: topic_id.
-
topic_id: existing debate topic.
Result
Object with topic_id, protocol_version, phase, round_no, max_rounds, blind_barrier_state, stalemate_reason, transition_version, phase_deadline_at, phase_timeout_seconds, and updated_at.
Boundaries
Gated like other topic metadata: project scope AND active participation, conductor/star otherwise allow, sentinel denies all. Denial echoes the native not-configured shape exactly so unauthorized callers cannot distinguish it from a topic without protocol state.
Lifecycle / side effects
Pure read: preserves nothing. Phases move only through posts, verdicts, and debate_protocol_maintain.
Errors
Malformed ids fail shape validation. Missing, unreachable, and genuinely unconfigured topics share one not-configured shape.
Example
{
"topic_id": "<uuid>"
}
Result shape:
{
"blind_barrier_state": "released",
"max_rounds": 3,
"phase": "DEBATE",
"protocol_version": "debate/v1",
"round_no": 1,
"topic_id": "<uuid>",
"transition_version": 2
}
See also
debate_protocol_maintain, debate_judge_prepare, debate_judge_verdict, debate_post, debate_work_queue.