debate_escalate
- Category: debate
- Access: write
- Audience: advanced (ordinary users do not normally call this directly)
Purpose
Force-writes a high-priority PING shaped [ESCALATE:reason] tagged for a target role (default HUMAN). A convenience over hand-formatting escalation messages.
Arguments
Required: topic_id, role, reason.
Optional: target_role.
-
topic_id: existing debate topic. -
role. Note: Posts as this declared role, so the caller must own its binding. -
reason. Note: Must be non-empty; carried inside the composed PING body. -
target_role. Note: Defaults to HUMAN; validated as a role shape.
Result
Same post shape: msg_id, ts, topic_state, and vehicle, for the H/PING message.
Boundaries
Ownership authority matches debate_post with uniform denial for unknown or unowned positions. On debate/v1 topics the structured ESCALATE kind via debate_post is the packet-writing path; this legacy PING form coexists with it.
Lifecycle / side effects
Preserved as an H/PING message with an audit/history event. Nothing about human-packet close-out lives in this surface.
Errors
Empty reasons, malformed ids or roles, and unowned roles are rejected; failures preserve nothing.
Example
{
"reason": "Needs operator ruling on signing",
"role": "CONDUCTOR",
"target_role": "HUMAN",
"topic_id": "<uuid>"
}
Result shape:
{
"msg_id": "<uuid>",
"topic_state": "ACTIVE",
"ts": "<iso-8601>",
"vehicle": "analysis"
}
See also
debate_post, debate_post_with_recipients, debate_compact, debate_state.