Topic Promotion Governed Activation — 11 Self-Review (2026-06-03)
11 — Self-Review
Method check
Production touched only via query_pg (read-only role, READ ONLY txn). Entry==exit snapshots identical (db=directus, ownership=0, gap=210, ospa=0, axis_tables=0, macro_tables=0, gov_emit=0, idle=0). No production write channel ever opened. All mutations on directus_gov_test_20260602 via ssh psql channel, which query_pg cannot reach — channels physically disjoint.
Proven vs asserted
Committed & re-read on clone: topic promotion (gap 2→1), reconcile views + mapping, 10 drift detectors, scanner tables+function, issue/event views + log, UI views — every doc 02–07 result is a live query output. Validated but not committed to prod: rollout packet (structure DDL executed on clone idempotently to prove syntax+dependency order; rollback validated via COMMIT→ROLLBACK swap, clone intact). Honest negatives kept: topic gap reached 1 not 0 (remaining cell is quarantine, must not be owned); label_orphan/conflicting_parentage/unregistered_axis = healthy-zero, reported as such.
Strongest evidence
The scanner bug was found by testing, not assumed away: a real "ON CONFLICT cannot affect row a second time" triggered by a second per-assignment coverage rule; fixed (axis_code in key) and re-tested on the exact triggering input incl. the resolve transition. Fail-closed event boundary proven by 3 rejected inserts + outbox stays 0.
Weaknesses / caveats (disclosed)
- projection_lag currently reuses reconcile divergence rather than a true timestamp-lag (no label_rule↔topic temporal binding yet); named "lag = divergent/no_rule"; flagged as next-macro work.
- topic_taxonomy_map seed mappings are illustrative crosswalks, not human-ratified bindings; Tier-2 (gated) on prod.
- coverage_rule_missing(containment) is an intentional honest flag (containment activated as reference axis without a rule); not silently hidden.
- KB list count verified in doc 12 (publication), addressing the recurring "FS-only/never-ingested" trap.
Forbidden-action audit
No prod writes, no schema/data/axis/ownership/event mutation on prod, no DOT/UI/Directus/Qdrant/Nuxt change, no approval/os_proposal write, no external dispatch, no uncontrolled worker loop, no unbounded object-grain scan, no hidden island, no hardcoded prod auth. No claim that clone results equal production authorization.
Self-verdict
PASS with precise, disclosed caveats. Delivered governed topic activation readiness on the clone + a validated, gated production path, production provably untouched.