KB-6C95

04 — Topic Axis Governance, Birth & Lifecycle (Workstream B)

6 min read Revision 1
registries-pivottopic-axisgovernancebirthlifecycledieu392026-06-03

04 — Topic Axis Governance, Birth & Lifecycle (Workstream B)

Goal: make a topic node a born, governed object with a real approval/lifecycle, and define who approves what — without faking governance and without auto-promoting AI proposals.

Lifecycle states (reuse taxonomy.status + replaced_by)

Unify on the open-axis lifecycle, encoded in the live taxonomy columns:

candidate → provisional → active → (merged | split) → deprecated → retired/rejected

State taxonomy.status value Meaning Who sets it
candidate candidate proposed topic (e.g. reconciled from a topic:* tag or KG/Điều-39 proposal); counts but is NOT a Layer-1 root DOT/AI proposal
provisional provisional accepted for trial; visible, low trust topic policy owner
active active approved root/child; appears as Layer-1/Layer-N APR-gated approval
merged / split replaced_by set reorganized; old node points to survivor APR-gated
deprecated deprecated retiring; hidden from new assignment topic policy owner
retired/rejected retired / rejected gone; assignments must be re-homed APR-gated

Golden rule (Điều 39): the knowledge graph / AI proposes only, never auto-mutates. A KG- or AI-suggested topic enters as candidate and can never become active without human approval. This macro itself honors it: the 7 live topic:* tags become candidate FAC-08 nodes on reconciliation — none is promoted to an approved root in this session (Forbidden #6).

Three-zone discipline (uncertain axis)

Topic (FAC-08) is an uncertain / semantic axis (vs deterministic structural axes like containment/reconstruction). It therefore runs Approved / Candidate / Quarantine zones, and assignments carry confidence + provenance (iu_metadata_tag.confidence, enrichment_source; future axis_assignment.evidence). "Provenance-or-quarantine": an assignment with no provenance is quarantined, not counted as truth.

Ownership (reuse live governance_object_ownership + governance_responsibility_scope)

The 2026-06-01 docs assumed these tables were unbuilt; they are live, so topic ownership is bound relationally (no owner_gov_code column on taxonomy — that anti-pattern is forbidden by the unified governance model). Recommended owner map (council to ratify under SB-2 / Điều 37), per scope:

Scope Owner Responsibility
Policy (vocabulary, grouping, which roots) GOV-COUNCIL approves root topics & grouping ceilings
Substrate / vocabulary (taxonomy, KG edges, vector) GOV-KG-SYS maintains FAC-08 nodes, universal_edges
Health / integrity / coverage GOV-SIV orphan/phantom topic detection, coverage
Execution (DOT scan/propose/apply) GOV-DOT the topic coverage-DOT lifecycle
Render (Registries-Pivot display) GOV-MOUT (interim COUNCIL delegation) the surface; computes no truth
Family law GOV-NRM-SYS the law text under Điều 24/37/38

Owner-link inheritance (M-DEF-7): an axis's policy owner inherits down the topic tree; risk links (who may edit vocab, approve a merge/split, the issue path) are computed per node and never inherited (anti-hiding).

Who approves what (answer to macro Q within §5)

  • Approve a root topic (Layer-1 node) → GOV-COUNCIL via approval_requests (Điều 32), type schema_add/rule_change, risk medium+ ⇒ ≥1 president / council_review. Structural (new facet) = council_review.
  • Approve a child topic → topic policy owner (delegated by COUNCIL) via approval_requests, lighter risk tier.
  • AI / Điều-39 proposal → candidate → automatic insert as candidate only; promotion to active is a separate APR.

Note (honest gap): IU today is an islandapproval_requests has 0 rows ever referencing IU, and IU carries no governance owner. Topic governance must therefore be stood up, not assumed; the substrate (ownership + approval tables) is live, but the rows (owner assignments, approval records for FAC-08) do not yet exist. That is the owner-ratification blocker (doc 09).

Birth (reuse birth_registry)

A topic node is a born/governed object: on creation it gets a birth_registry entry (like any object). Before birth it is a birth-orphan (existing detector). A topic relation (universal_edges within FAC-08) is also a governed relation; whether each edge births separately or is covered by node birth is an owner decision (recommend: node births; edge is governed by edge-type registration + lifecycle, not per-edge birth, to avoid edge-birth explosion — consistent with prior RP findings on birth grain).

Grouping policy (governed rows, never literals)

Topic grouping uses the live rp_grouping_policy (default threshold 50) + Điều 24 §5.4 Scored-Union-Top-N per facet. When a topic node's child_count exceeds the governed ceiling → emit CLASSIFICATION_REQUIRED / NEEDS_GROUPING (not paginate). The ceiling is a row, owner = GOV-COUNCIL; the "50" is never hardcoded.

What is NOT done here (forbidden, honored)

  • No FAC-08 nodes inserted live; no topic:* tag promoted to active root; no owner rows written; no approval faked. This doc defines the lifecycle; enacting it is owner-gated (doc 09 next macro).

Workstream B (governance) completion: topic governance/birth/lifecycle is fully defined on live substrate, with the Điều-39 no-auto-promote rule structurally enforced.

Back to Knowledge Hub knowledge/dev/reports/architecture/information-piece-topic-axis-registries-pivot-design-2026-06-03/04-topic-axis-governance-birth-lifecycle.md