Topic Axis Self-Operated — 05 Automation Bridge Draft Row/Edge Plan
05 — Automation Bridge Draft Row/Edge Plan (Workstream D)
Status: PLAN OPERATIONALISED — v_axis_topic_automation_candidates LIVE (read-only, non-executing, 49 rows).
Instead of inserting speculative axis_assignment routing rows (which would dangle on non-existent targets and add unretirable births), the bridge is expressed as a derived read-only view = 7 candidate topics × 7 routing patterns. No routing executed; no relation_type marked approved; no engine built. AX-TOPIC stays a routing key, not an engine.
The 7 routing patterns (per topic) — verified live in the view
| target_type | relation_type | consumer | substrate today |
|---|---|---|---|
| document | classifies | RP/docs | 0 |
| document_template | selects | Document-template select | 0 |
| workflow | routes_to | MOW | 0 → PIV-327 |
| task_template | groups_under | MOT | 0 |
| improvement | routes_to | MOIT (or approval_requests) | 0 |
| dot_tool | handled_by | DOT/Agent select | 0 → PIV-328 |
| event | routes_to | event_type_registry | 0 |
The view tags each row with proposed_status='candidate', vocab_request_code='AXR-TOPIC-13' (the verb-ratification gate) and, for knowledge_graph, pilot_request_code='AXR-TOPIC-14' (the pilot gate).
Pilot: knowledge_graph (live today: 10 IU assignments, relation tagged_topic)
Exact rows the next macro applies after promotion (owner-gated; queued as AXR-TOPIC-14):
axis_assignment(node='LBL-NNN'(KG), target_type='document_template', target_code='<KG-template>', relation_type='selects', status='candidate')axis_assignment(node='LBL-NNN', target_type='workflow', target_code='<KG-workflow>', relation_type='routes_to', status='candidate')approval_requests(request_type='process_improvement', proposed_action_code='create_item', entity_code='LBL-NNN', title='KG enrichment route', status='pending')Effect once added: PIV-327 (workflows by topic) and PIV-328 (DOTs by topic) flip from DEFER_NO_SOURCE to computable; resolverdocuments/workflows/dots_agents_eventsarrays populate; decision-queuedocument_countbecomes non-zero.
relation_type vocabulary to ratify (queued AXR-TOPIC-13)
tagged_topic (live) · classifies · selects · routes_to · groups_under · handled_by. One-time governance act.
Carrier tables (no new tables)
axis_assignment (primary multi-target carrier) · universal_edges (topic↔topic broader/narrower/related for the DAG; topic↔facet already auto-managed) · event_type_registry (reference, don't duplicate; 45 rows live) · approval_requests (improvements reference the topic). Mothers READ status='active' rows — candidate rows are inert, so the view + future candidate rows execute nothing.
Why not insert candidate rows now
axis_assignment UNIQUE + NOT NULL target_code means routing rows need real targets; KG's template/workflow targets don't exist yet. Inserting placeholders = dangling references + births. The view gives the same operational plan, queryable, with zero risk. The next macro inserts the 2 concrete rows once the targets and verbs are ratified.
Forbidden compliance
No routing executed; no engine; no new tables; no relation_type approved; no production action triggered.