Skip to content

feat(audit): tier-transition audit events + ratification-linked promotion gate #3842

@williamzujkowski

Description

@williamzujkowski

Part of #3839. Depends on #3840.

Context

All tier changes are audit events (hash-chained, src/audit/audit-logger.ts). The vote's machine-enforcement condition: a PROMOTION transition event must carry a reference to its ratification consensus_vote record; a gate (CI or verify-time) FAILS when a promotion event lacks one. Demotion events need no vote link (automatic-allowed) but are still chained.

Acceptance criteria

  • Audit event type for tier transitions: {subject, fromTier, toTier, evidenceRef, ratificationVoteRef?}
  • Gate: promotion event without ratificationVoteRef → fail (test with fixtures both ways)
  • verify_audit_chain passes over the new event type
  • dev-pipeline INTEGRATION suite run locally (audit emit behavior changed — session lesson)

Evidence required

Fixture tests; chain verification test.

Out of scope

Building any actual promotion (those are the absorbed cases).

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority-ladderAuthority tiers: observe→suggest→advisory→enforce (Epic D)p1Priority 1 - High impact, fits current architectureroadmap:control-planeControl Plane roadmap (M1-M4)securitySecurity-related issues

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions