KB-45EB

Process/Workflow Axis RP Pilot — 07 Auto-scale Model

4 min read Revision 1
process-axisautoscaleaxis-registry2026-06-04

07 — Process Axis / Auto-scale Model

AX-PROCESS in axis_registry (LIVE, CANDIDATE)

Modelled exactly on AX-TOPIC. The axis is a data row, not code:

field value
axis_code AX-PROCESS
domain process_workflow
node_source workflows (def-side, MOW-owned)
node_filter {"registry":"workflows","def_side_owner":"MOW","status_in":[active,draft,deprecated,retired]}
relation_source workflows.parent_workflow_idworkflow_step_relationsjob_workflow→job_queue (planned)
root_rule workflow with parent_workflow_id IS NULL; implicit Type-2 pipelines surfaced from job_queue.job_kind prefix
child_rule sub-workflow via parent_workflow_id; steps via workflow_id; transitions via from/to step
lifecycle_field workflows.status
owner_governance_ref GOV-MOW (pending Điều-XX)
substrate_resolver fn_process_node_substrate
pivots_ref v_axis_process_pivots
status CANDIDATE

Generic registration contract (no per-process code)

  1. A new process appears by a registry row, never by new code: insert a workflows row (Type 3 / promoted Type 2) → it auto-births, auto-codes, and immediately appears in v_axis_process_inventory, v_axis_process_pivots, and the gov-gap view. No view edits.
  2. Components are rows/edges, not hardcoded: steps in workflow_steps, transitions in workflow_step_relations, jobs in job_queue (workflow_id+parent_job_id), events in event_type_registry.
  3. Triggers/events/queues link by relation, not literals: context_trigger_sources vocab + event_subscription rows + (planned) a process_component edge table or universal_edges rows.
  4. A second axis is another axis_registry row — AX-PROCESS, AX-TOPIC, future AX-* all coexist with zero new code. This is the auto-scale guarantee.

STOP conditions (encoded as gap signals, propose-only)

The model refuses to silently fabricate; each STOP becomes a flagged row, not a hardcoded fallback:

  • process has trigger but no registry → gap_reason=DOT_PROCESS_SEMANTICS_NO_WORKFLOW_REGISTRY (candidates view).
  • process has components but no start/end → (future) START_END_MISSING on promotion.
  • process has queue but no owner → gov-gap OWNER_MISSING (cut_pipeline).
  • process has human step but no escalation → (MOT) ESCALATION_MISSING.
  • active process but no IU/SOP → gov-gap no_iu_sop_binding.
  • process count mismatch → reconcile inventory vs pivots (e.g. PIV-340=2 governed vs 58 candidates → explicit, not merged).

No-hardcode audit (PASS)

  • No process levels hardcoded (depth emergent from parent/step graph).
  • Not a single special-case "information cutting process" — cut_pipeline is one row among a generic split_part(job_kind,'.',1) grouping; any new job_kind prefix auto-creates a pipeline candidate.
  • 57 DOT processes surfaced generically by trigger_type, not by name list.
  • AX-PROCESS reuses the AX-TOPIC mechanism verbatim → the axis layer itself is auto-scaling.
Back to Knowledge Hub knowledge/dev/reports/architecture/process-workflow-axis-registries-pivot-birth-governance-ui-pilot-2026-06-04/07-process-axis-autoscale-model.md