KB-C922

F6 Pre-Activation Macro 05 — Issue / Event / Log Boundary (read-only shaping)

4 min read Revision 1
one-roofphase1f6issueeventpayload-shapingnotification-suppression2026-06-02

05 — Issue / Event / Log Boundary (Objective E)

Mode: read-only payload shaping. Default: no persistent issue/event. Verdict: PASS — payloads shaped, nothing written.

Why read-only shaping (not rollback-only insert)

system_issues carries 9 non-internal triggers and event_outbox carries 1. An INSERT into either is not inert even inside a transaction — the triggers (coalesce / dedup / notify / dispatch fan-out) execute on the statement, and rolling back does not undo any out-of-process side effect a notify trigger may have already initiated. The safe rehearsal is therefore to construct the payload as a SELECT expression and never insert. governance_candidate_state has 0 triggers, but persisting candidates is still activation-gated (doc 07).

Shaped payloads (live, read-only)

(a) Owner-gap issue (from a real gap row agents/approval):

{"code":"GAP-agents-approval","issue_type":"governance_coverage_gap","issue_class":"ownership",
 "severity":"warning","entity_type":"collection","entity_code":"agents",
 "source":"gov_coverage_scanner","source_system":"phase1_coverage",
 "coalesce_key":"gap:collection:agents:approval",
 "evidence_snapshot":{"object":"agents","scope":"approval","missing":"accountable_owner"}}

coalesce_key maps to system_issues.coalesce_key so re-scans dedup rather than multiply (idempotent issue raising).

(b) Owner-conflict issue (structural template; 0 live conflicts because uq_gov_obj_accountable prevents duplicate active accountable owners at the write layer):

{"issue_type":"governance_owner_conflict","issue_class":"ownership","severity":"critical",
 "note":"template only; v_object_owner_conflict=0 — fail-closed at write layer"}

(c) Coverage summary:

{"objects":35,"scopes":6,"ceiling":210,"covered":0,"gap":210,"conflict":0,"coverage_pct":0.0}

(d) Event payload (event_outbox shape; not inserted):

{"event_domain":"governance","event_type":"coverage.gap.detected","event_stream":"gov_coverage",
 "delivery_lane":"internal","event_subject_table":"governance_object_ownership",
 "event_subject_ref":"agents:approval","payload_classification":"safe",
 "safe_payload":{"object":"agents","scope":"approval","kind":"missing_accountable_owner"}}

Notification suppression (defense in depth)

Even if an event row were written, it would not dispatch:

  1. governance event types in event_type_registry = 5 total, 0 active — no consumer subscribed.
  2. No active handler / worker (worker_cursor=0, scan_run=0).
  3. delivery_lane='internal' + payload_classification='safe' keep payloads non-PII and non-external.
  4. This run wrote no event at all — suppression is moot because emission never happened.

Boundary verdict

  • Issue persistence: FORBIDDEN by default (9 triggers). Held.
  • Event emit: FORBIDDEN (activation-gated; types inactive). Held.
  • Coverage summary log: belongs in this KB package, not system_issues. Done.
  • Payload shapes: proven and ready for a future ratified, activated scanner.
Back to Knowledge Hub knowledge/dev/reports/architecture/one-roof-phase1-coverage-preactivation-consolidated-testmode-macro-2026-06-02/05-issue-event-log-boundary.md