dev.superpipeline.decision.escalated.v1
The notice posted when a waiting decision passes its stage’s escalation time and the workspace’s owners and admins are invited, in reply to the waiting card. Readers ignore properties they do not know.
How it rides
Section titled “How it rides”An m.room.message whose content carries suite_event_type: "dev.superpipeline.decision.escalated.v1".
Who sends it, who reads it
Section titled “Who sends it, who reads it”- Sent by AgentPod, SuperExchange.
- Read by SuperMessage.
The carrier is whichever service carries the board’s chat: AgentPod’s hub, or SuperExchange for a board that has moved to it.
Fields
Section titled “Fields”| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
msgtype |
"m.text" |
yes | ||
body |
string | yes | ||
schema_version |
integer | yes | at least 1 | |
board_id |
string | yes | at least 1 character | |
card_id |
string | yes | at least 1 character | |
decision_kind |
one of "gate", "question", "delivery", "attention", "checks" |
yes | ||
decision_id |
string | yes | at least 1 character | |
waiting_since |
string | yes | pattern ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:\d{2})$; at most 40 characters |
|
suite_event_type |
"dev.superpipeline.decision.escalated.v1" |
yes | ||
escalated_at |
string | yes | pattern ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:\d{2})$; at most 40 characters |
|
deep_link |
string | no | ||
m.relates_to |
object | yes | ||
m.relates_to.m.in_reply_to |
object | yes | ||
m.relates_to.m.in_reply_to.event_id |
string | yes | at least 1 character |
The schema also states these rules across fields, as written:
{ "not": { "required": [ "reminded_at" ] }}Example
Section titled “Example”From fixtures/matrix-events/examples.json, case “a gate escalated after six hours”:
{ "msgtype": "m.text", "body": "Escalated to workspace admins after 6 h: \"Launch post\" is still waiting for an approval at Review. [Open the card](https://superpipeline.dev/b/brd_7c1f/c/crd_6b40)", "suite_event_type": "dev.superpipeline.decision.escalated.v1", "schema_version": 1, "board_id": "brd_7c1f", "card_id": "crd_6b40", "decision_kind": "gate", "decision_id": "gate_8f3a", "waiting_since": "2026-11-08T12:00:00.000Z", "escalated_at": "2026-11-08T18:02:11.000Z", "deep_link": "https://superpipeline.dev/b/brd_7c1f/c/crd_6b40", "m.relates_to": { "m.in_reply_to": { "event_id": "$gateEventId" } }}The corpus has 3 valid cases in all:
checks: overdue checks escalated
{ "msgtype": "m.text", "body": "Escalated to workspace admins after 3 h: \"Ship the release\" is still waiting for its checks at Review. [Open the card](https://superpipeline.dev/b/brd_7c1f/c/crd_8a40)", "suite_event_type": "dev.superpipeline.decision.escalated.v1", "schema_version": 1, "board_id": "brd_7c1f", "card_id": "crd_8a40", "decision_kind": "checks", "decision_id": "arr_5d02", "waiting_since": "2026-11-09T09:00:00.000Z", "escalated_at": "2026-11-09T12:00:00.000Z", "deep_link": "https://superpipeline.dev/b/brd_7c1f/c/crd_8a40", "m.relates_to": { "m.in_reply_to": { "event_id": "$checksWaitingEventId" } }}built: a gate escalated after a day
{ "msgtype": "m.text", "body": "Escalated to workspace admins after 24 h: \"Ship the release notes\" is still waiting for an approval at review. [Open the card](https://superpipeline.dev/b/brd_7c1f/c/crd_6b40)", "suite_event_type": "dev.superpipeline.decision.escalated.v1", "schema_version": 1, "board_id": "brd_7c1f", "card_id": "crd_6b40", "decision_kind": "gate", "decision_id": "gate_8f3a", "waiting_since": "2030-01-01T09:00:00.000Z", "escalated_at": "2030-01-02T09:00:00.000Z", "deep_link": "https://superpipeline.dev/b/brd_7c1f/c/crd_6b40", "m.relates_to": { "m.in_reply_to": { "event_id": "$cardEvent" } }}Refused
Section titled “Refused”Each of these must fail. The corpus says why:
- no m.relates_to. A client cannot tell which card it is about. (refused by
schema) - an m.reference rather than a reply. A notice is a reply to the card; an m.reference is an answer or a receipt. (refused by
schema) - no decision_id (refused by
schema) - a decision_kind outside gate | question | delivery | attention (refused by
schema) - no escalated_at (refused by
schema)
Source
Section titled “Source”- Schema:
schemas/matrix/dev.superpipeline.decision.escalated.v1.json - In the package:
import schema from "@superjackfruitlabs/treaty-matrix-events/schemas/dev.superpipeline.decision.escalated.v1.json" with { type: "json" };