Process/Workflow Axis RP Pilot — 06 RP Pivots & Layer Model
06 — Registries-Pivot Process Pivots & Layer Model
Pivot map PIV-340..353 (LIVE in v_axis_process_pivots, report-only)
Counts are live as of 2026-06-04. Classification follows the AX-TOPIC convention (FINAL_COMPUTABLE = directly countable now; CANDIDATE = depends on axis ratification / unborn objects; NEEDS_LAW = undefined equation).
| pivot | name | source | count | class | parent | canon? |
|---|---|---|---|---|---|---|
| PIV-340 | Process objects — Total (governed) | workflows | 2 | CANDIDATE | — (L1 root) | register |
| PIV-341 | DOT-contained (Type 1) | dot_tools(triggered) | 57 | CANDIDATE | PIV-340 | register |
| PIV-342 | Automated multi-component (Type 2) | job_queue pipelines | 1 | CANDIDATE | PIV-340 | register |
| PIV-343 | Human-in-the-loop (Type 3) | workflows(human steps) | 2 | CANDIDATE | PIV-340 | register |
| PIV-344 | Process candidates (implicit) | job_queue pipelines | 1 | CANDIDATE | PIV-340 | register |
| PIV-345 | Process components (steps) | workflow_steps | 70 | FINAL_COMPUTABLE | PIV-340 | =PIV-005 |
| PIV-346 | Process triggers | trigger_registry | 107 | FINAL_COMPUTABLE | PIV-340 | =PIV-015 |
| PIV-347 | Process queue/jobs | job_queue | 13 | FINAL_COMPUTABLE | PIV-340 | NEW (no prior pivot) |
| PIV-348 | Process event types | event_type_registry | 45 | FINAL_COMPUTABLE | PIV-340 | NEW |
| PIV-349 | Governance gaps (unowned) | gov_gap view | 4 | CANDIDATE | PIV-340 | register |
| PIV-350 | Health/SLA issues (stuck jobs) | job_queue queued | 7 | CANDIDATE | PIV-340 | register |
| PIV-351 | Parent-child relations (sub-wf) | workflows.parent | 0 | CANDIDATE | PIV-340 | register |
| PIV-352 | Runs in progress | job_queue leased/in_progress | 0 | FINAL_COMPUTABLE | PIV-340 | NEW |
| PIV-353 | Overdue/stuck/failed | job_queue queued + dead_letter | 7 | CANDIDATE | PIV-340 | register |
Why report-only (NOT yet in pivot_definitions canon)
Inserting into pivot_definitions fires trg_pivot_def_refresh + birth side-effects (the lineage proved each pivot insert births an unretirable row). Canonizing 14 pivots = 14 unretirable births + a law-ratified equation set. That is owner-gated (Điều-32/law). The pilot therefore exposes PIV-340..353 as a live read-only view (zero births, DROP-reversible), apply-packaged for canon insert when the owner ratifies. This mirrors exactly how AX-TOPIC handles PIV-320..332 via v_axis_topic_pivots.
Layer model (dynamic depth, per layer-definition canon)
- L1 root: PIV-340 "Process objects — Total" (the aggregate node).
- L2: by type (Type 1/2/3 = PIV-341/342/343) ∪ by lifecycle (candidate/active/deprecated) ∪ by domain (workflow_categories tree).
- L3+: process parent-child graph (sub-workflows via parent_workflow_id) → component drill (steps → DOTs → triggers → jobs → events).
- Final substrate: for a node with
count=1or no further grouping_dimension →fn_process_node_substrate(process_code)returns steps/DOTs/triggers/queues/events/IU-SOP/governance/logs/health.
No hardcoded depth: a Type-3 workflow with sub-workflows drills deeper than a Type-1 DOT; the resolver decides has_children from workflow_steps/parent_workflow_id/workflow_step_relations, never from naming.
Reconciliation with existing pivots
Legacy PIV-004 (workflows), PIV-005 (steps), PIV-006 (change_req), PIV-010 (tasks), PIV-015 (triggers), PIV-021 (comments), PIV-007/104 (DOT) remain the direct table pivots. PIV-340..353 are the axis aggregate family that groups and cross-references them under the process lens. PIV-347/348/352 are genuinely NEW surfaces (job_queue/events/runs had no pivot before).