Skip to content

A kind's event severities are literals at each emit call; only the core fixes them in one table #371

Description

@The-Running-Dev

A kind's event severities are literals at each emit call; only the core fixes them in one table.

05-observability.md §7 requires severity to be fixed per event name. The core enforces this structurally via a CORE_EVENTS map, but every kind instead writes severity inline at each emit call site, so nothing stops two call sites for one name from disagreeing, and nothing compares the emitted set against the contract's table at all. This is how four world-graph severities drifted for three weeks across four reconciliations, and incident.resolved's two call sites agree only by luck.

Done when

  • Each kind has a per-kind name→severity table mirroring CORE_EVENTS
  • A check diffs Kind.eventNames, the emitted severities, and 20-contract.md's tables, replacing the by-hand comparison

Agent instructions

Authority: this issue — the finding no longer lives in design/90-decisions.md §2 once tracked here.
Stop if: it turns out to need a contract or schema change beyond adding the per-kind table itself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    openOpen work tracked from the canonical design register

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions