dev.superpipeline.attention.outcome.v1
The receipt that closes a waiting card: which card, which wait, what was decided (an option id, or settled_elsewhere) and by whom, referencing the card’s message. Keyed by wait, not gate: a wait has no gate. Readers ignore properties they do not know.
How it rides
Section titled “How it rides”Content that carries suite_event_type: "dev.superpipeline.attention.outcome.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 |
|---|---|---|---|---|
suite_event_type |
"dev.superpipeline.attention.outcome.v1" |
yes | ||
board_id |
string | yes | at least 1 character | |
card_id |
string | yes | at least 1 character | |
wait_id |
string | yes | at least 1 character | |
decision |
string | yes | pattern ^(resume_here|archive|resume_at:.+|settled_elsewhere)$ |
|
decided_by |
string or null | yes | ||
m.relates_to |
object | yes | ||
m.relates_to.rel_type |
"m.reference" |
yes | ||
m.relates_to.event_id |
string | yes | at least 1 character |
The schema also states these rules across fields, as written:
{ "not": { "required": [ "gate_id" ] }}Example
Section titled “Example”From fixtures/matrix-events/examples.json, case “resumed here”:
{ "suite_event_type": "dev.superpipeline.attention.outcome.v1", "board_id": "brd_7c1f", "card_id": "crd_6b40", "wait_id": "wait_0123456789abcdef", "decision": "resume_here", "decided_by": "fixture-person", "m.relates_to": { "rel_type": "m.reference", "event_id": "$attentionEventId" }}The corpus has 4 valid cases in all:
resumed at an earlier stage
{ "suite_event_type": "dev.superpipeline.attention.outcome.v1", "board_id": "brd_7c1f", "card_id": "crd_6b40", "wait_id": "wait_0123456789abcdef", "decision": "resume_at:plan", "decided_by": "fixture-person", "m.relates_to": { "rel_type": "m.reference", "event_id": "$attentionEventId" }}archived
{ "suite_event_type": "dev.superpipeline.attention.outcome.v1", "board_id": "brd_7c1f", "card_id": "crd_6b40", "wait_id": "wait_0123456789abcdef", "decision": "archive", "decided_by": "fixture-person", "m.relates_to": { "rel_type": "m.reference", "event_id": "$attentionEventId" }}settled elsewhere, naming nobody
{ "suite_event_type": "dev.superpipeline.attention.outcome.v1", "board_id": "brd_7c1f", "card_id": "crd_6b40", "wait_id": "wait_0123456789abcdef", "decision": "settled_elsewhere", "decided_by": null, "m.relates_to": { "rel_type": "m.reference", "event_id": "$attentionEventId" }}Refused
Section titled “Refused”Each of these must fail. The corpus says why:
- no wait_id: a client cannot tell which wait closed (refused by
schema) - no reference to the card’s message (refused by
schema) - the gate outcome’s type (refused by
schema) - no decision (refused by
schema)
Source
Section titled “Source”- Schema:
schemas/matrix/dev.superpipeline.attention.outcome.v1.json - In the package:
import schema from "@superjackfruitlabs/treaty-matrix-events/schemas/dev.superpipeline.attention.outcome.v1.json" with { type: "json" };