Topic Axis — 03 AX-TOPIC Pilot Registration
03 — AX-TOPIC Pilot Registration (Workstream B)
Status: LIVE as CANDIDATE
AX-TOPIC is registered as the first generic axis, status CANDIDATE (not active — owner/GOV-COUNCIL gated by design).
Registered contract (the axis_registry row)
- axis_code = AX-TOPIC
- axis_name = "Chủ đề nội dung (Topic Axis)"
- domain = content_topic
- node_source = taxonomy, filtered by node_filter
{"facet_code":"FAC-08","facet_id":9} - relation_source = taxonomy.parent_id UNION universal_edges where edge_type in (broader, narrower, related) — many-to-many parents
- root_rule = "active node in FAC-08 with no active broader parent in selected subgraph"
- child_rule = "broader/narrower via taxonomy.parent_id and universal_edges"
- lifecycle_field = taxonomy.status (candidate → provisional → active → merged/split → deprecated → retired via status + replaced_by)
- owner_governance_ref = "GOV-COUNCIL (pending ratification)"
- substrate_resolver = fn_topic_node_substrate
- pivots_ref = v_axis_topic_pivots
- status = CANDIDATE
- notes = pilot; AI proposes candidates only (Điều 39), never auto-active
FAC-08 verification
taxonomy_facets id=9, code FAC-08, name "Chủ đề nội dung?", status active, 0 child nodes in taxonomy. The axis is backed but unpopulated — exactly the state the pilot addresses with candidate tokens held in axis_assignment.
Điều 39 (Golden Rule) compliance
Every topic identity in the system right now is a candidate: AX-TOPIC status CANDIDATE, all 25 assignments status candidate, no taxonomy node created, no approved root. Nothing was auto-promoted. Activation requires the owner steps in doc 02.
GOV-COUNCIL approval packet (root topics)
The candidate nodes proposed for root approval (with current weight = assignment count): knowledge_graph (10), architecture (5), governance (3), dot_trigger (3), workflow (2), cut_pipeline (1), render_pipeline (1). These are proposals, not approved roots. The approval action (operator step 2) creates the corresponding FAC-08 taxonomy nodes and is warned for birth/edge side-effects. Approver should also decide DAG parentage (e.g. dot_trigger and render_pipeline may sit under a broader "pipeline" root, and knowledge_graph/architecture/governance may each be roots), since the model permits multiple parents.
Why CANDIDATE and not PROVISIONAL/ACTIVE
PROVISIONAL/ACTIVE assert governance authority that only the owner + GOV-COUNCIL can grant. With governance_object_ownership empty and no approval_requests row for AX-TOPIC, the honest status is CANDIDATE. Flipping it is a one-line owner update (doc 02 step 4).