Topic Axis Self-Operated — 00 Readme First
00 — Readme First (Topic Axis Self-Operated Advance, 2026-06-04)
Macro: TOPIC_AXIS_SELF_OPERATED_DECISION_QUEUE_UI_CONTENT_AUTOMATION
Final status: PARTIAL — every safe/additive/reversible branch self-operated and committed live; only genuine human/legal decisions remain.
Execution mode: EXECUTION_MODE (additive only). prod = query_pg RO (MCP) + ssh contabo → docker exec postgres psql -U directus RW.
Live mutation: YES — three additive, reversible objects committed this run (see below). 0 taxonomy nodes, 0 candidate promotions, 0 activation, 0 approval marked approved, 0 source-tag change.
What changed this run (vs the prior decision-queue macro)
The prior macro left the approval workflow, governance gap, and automation bridge as prose packets. This run turned the safe parts into operational live objects:
- Self-operated approval queue — LIVE. 14
approval_requestsrows,codeAXR-TOPIC-01..14, allstatus='pending'(never approved). Covers all 7 decision categories: axis activation, FAC-08 root review, 7 per-candidate topic decisions, taxonomy-node creation, assignment promotion, ownership bootstrap, relation vocabulary, KG automation pilot. The human gate is now a concrete row-by-row queue, not free text. v_axis_topic_governance_gap— LIVE (read-only view, 8 rows, all OWNER_MISSING). Makes the empty-ownership blocker operationally visible and links each gap to bootstrap requestAXR-TOPIC-12.v_axis_topic_automation_candidates— LIVE (read-only view, 49 rows = 7 topics × 7 routing patterns). The automation bridge in queryable form — non-executing.
Plus: deploy-ready UI/API handler bundle (10 routes incl. 3 new), content-map backlog for all 7 candidates, end-to-end proof re-run on live data.
Two critical governance findings this run (read these)
action='add'approval_requests auto-approve. Triggertrg_apr_auto_approve→fn_auto_approve_add()flips anyaction='add'row toapprovedon insert. Rehearsal caught 3 rows flipping. All AI-filed governance proposals MUST useaction='review'to stay human-gated. Fixed before commit; all 14 rows verifiedpending.approval_requestsbirths one row per insert (trg_birth_approval_requests→fn_birth_registry_auto('code')). 14 inserts = +14 births (1,152,873 → 1,152,887). This is the normal governed provenance path for all 211 pre-existing approval rows — not a gate bypass. Births are unretirable (system-wide); rows are DELETE-reversible but their births orphan, same as every approval row.
Note: the MCP read-only role does not see these triggers via
information_schema.triggers(returned 0). Always confirm triggers viapg_triggerbefore asserting "no side effects."
Reversibility
/tmp/axis_self_operated_rollback.sql (local): DELETE FROM approval_requests WHERE code LIKE 'AXR-TOPIC-%'; DROP VIEW v_axis_topic_automation_candidates; DROP VIEW v_axis_topic_governance_gap;. Caveat: the 14 provenance births are not retirable.
Document map
- 01 — live state & SSOT confirmation
- 02 — self-operated approval workflow (the 14 live rows)
- 03 — UI/API patch/deploy readiness (deploy-ready handler bundle + tests)
- 04 — information-piece content-map (7 candidates)
- 05 — automation bridge draft row/edge plan (+ live view)
- 06 — governance ownership bootstrap queue (+ live view)
- 07 — final end-to-end proof
- 08 — next macro decision
- 09 — final summary
- 10 — GPT/MCP-readable checkpoint
Short checkpoint:
checkpoint-topic-axis-self-operated-advance-2026-06-04.md.
Next macro
Primary: INFORMATION_PIECE_CONTENT_WORK_ON_CANDIDATE_TOPIC_SURFACE (engineering-actionable now, no human gate) running in parallel with owner review of the live AXR-TOPIC-* queue. See doc 08.