S02 — Event Taxonomy
All state changes are events. Events belong to one of six categories.
Categories
| Code | Category | Events |
|---|---|---|
| A | Commitments | A01 Create, A02 Accept, A03 Deliver, A04 Confirm, A05 Cancel |
| B | Disputes | B01 Open, B02 Evidence, B03 Vote, B04 Resolve |
| C | Appeals | C01 File, C02 Resolve |
| D | Sanctions | D01 Intent, D02 Apply, D03 Lift |
| E | Identity | E01 Register, E02 Update, E03 Recover, E04 Merge, E05 Deactivate |
| F | Governance | F01 Propose, F02+ Vote/Ratify |
Irreversibility levels
| Level | Meaning | When |
|---|---|---|
| Soft | Can be reversed unilaterally | Before counterparty acceptance |
| Hard | Requires arbitration to reverse | After mutual acknowledgement |
| Absolute | Cannot be reversed | Permanent reputation scar applied |
Obligations
Obligations are duties attached to events. A participant bound by an active obligation must act within the deadline. Silence without an active duty triggers no sanction.
Example: accepting a commitment (A02) creates an obligation to deliver (A03) within the agreed deadline. Missing the deadline triggers a sanction intent (D01).
Arbiter selection
Arbiters for disputes are selected via VRF (verifiable random function). Voting uses commit-reveal: arbiters commit a hash of their vote, then reveal. If quorum is not reached, the outcome favors status quo (no change).
Implementation Status
⚠ Donor genealogy table — not a Phase 0 claim. The table below was assembled in R40 against the pre-R53 donor AMS runtime (
projects/unified-mcp/src/, deleted R53). Everysrc/path, everyAMS_*env var, and every “spec-only” verdict below is heritage genealogy. Phase 0 Colibri has zero code for the event taxonomy — this is legitimacy-axis material that will be redesigned againstsrc/domains/governance/(target path) when the legitimacy axis ships in Phase 4+. When that happens, this table should be rebuilt against the then-current source tree.
Verified against donor AMS source: 2026-04-06 (pre-R53)
| Claim | Status | Notes |
|---|---|---|
| Category A — Commitments (A01-A05) | Spec-only | No commitment lifecycle (create/accept/deliver/confirm/cancel) in source. Colibri tasks have status transitions but no A-coded event emissions. |
| Category B — Disputes (B01-B04) | Spec-only | No dispute opening, evidence submission, voting, or resolution logic found. |
| Category C — Appeals (C01-C02) | Spec-only | No appeals mechanism in source. |
| Category D — Sanctions (D01-D03) | Spec-only | No sanction intent, apply, or lift logic. No penalty system. |
| Category E — Identity (E01-E05) | Spec-only | Colibri has AMS_USER_ID and ACL identity (src/config.js, src/config-auth.js), but no register/update/recover/merge/deactivate event flow matching E01-E05. |
| Category F — Governance (F01-F02+) | Spec-only | No proposal or voting mechanism in source. |
| Irreversibility — Soft level | Spec-only | No unilateral reversal logic before counterparty acceptance. |
| Irreversibility — Hard level | Spec-only | No arbitration-gated reversal. |
| Irreversibility — Absolute level | Spec-only | No permanent reputation scar mechanism. |
| Obligations — deadline enforcement | Spec-only | Colibri tasks have due dates but no obligation-triggers-sanction chain (A02 -> A03 deadline -> D01). |
| Arbiter selection via VRF | Spec-only | No VRF implementation found in source. |
| Commit-reveal voting | Spec-only | No commit-reveal scheme. The word “commit” appears only in git/merkle contexts. |
| Quorum-based status quo default | Spec-only | No quorum logic. |
Source events found (not in spec)
The Colibri source uses EventEmitter for internal concerns unrelated to the Colibri taxonomy:
| Source location | Event pattern | Relation to spec |
|---|---|---|
src/websocket/stream-manager.js |
start, chunk, complete, cancel, error |
Stream lifecycle; not Colibri events |
src/alerts/rules.js |
rule_added, alert_triggered, started, stopped |
Alert engine; not Colibri events |
src/claude/batch-api/webhooks.js |
webhook:registered, webhook:delivered |
Webhook delivery; not Colibri events |
src/controllers/claude-batch-api.js |
job:created, job:status_changed, job:progress |
Batch job lifecycle; not Colibri events |
src/db/schema.sql (workflow_execution_log) |
state_change, agent_assigned, checkpoint_created, error, rollback |
GSD workflow log; not Colibri events |