Trigger Axis (AX-TRIGGER) — Concept & Cross-check Explainer
Trigger Axis (AX-TRIGGER) — Concept & Cross-check Explainer
2026-06-04 · triggers as first-class activation objects, not hidden process attributes.
1. Why a Trigger Axis
A process is defined logic; a trigger is what fires it. Today triggers are scattered and mostly ungoverned: DB DML triggers, DOT cron/event schedules, event types, job-queue kinds, host crontab, and systemd timers. If you cannot see triggers, you cannot reason about when the system acts, who owns each activation, or which process a firing belongs to. AX-TRIGGER makes the activation layer visible and ownable — the third governance axis alongside AX-TOPIC and AX-PROCESS.
2. The trigger universe (live, 2026-06-04)
DB-introspectable universe = 525 triggers (476 enabled):
db_dml_trigger408 (381 enabled / 27 disabled) — fire on table DML.event_type52 (30 active / 22 inactive).dot_cron42,dot_dual6,dot_event5,dot_on-deploy4.job_queue8 kinds. Plus 77 host-unmanaged triggers not enumerable from PG (crontab 49, /etc/cron.d 6, systemd app-timers 4, OS timers 18) — these need a host adapter, exactly like the workflow scanner.
3. The cross-check findings
- 408 DB triggers map to NO governed process (
INFRA_NO_PROCESS). They are the hidden activation layer: birth, audit, integrity, and changelog triggers nobody owns at the process level. - 117 process-relevant triggers (dot/event/job) — these should belong to a process, but
0 are officially owned (
governance_object_ownership=0). - 27 stale/disabled DB triggers (
STALE_DISABLED_DB_TRIGGER) — candidates for removal review. - 0 one-trigger-many-process, 12 many-trigger-one-process (12 candidates have multiple entrypoint triggers) — fan-in is real, fan-out is not (yet).
4. The read-only substrate (live views)
v_trigger_universe_census, v_trigger_host_unmanaged_census,
v_trigger_process_relation_candidates, v_trigger_orphan_stale_detector,
v_ax_trigger_surface, v_ax_process_trigger_crosscheck, v_rp_trigger_visibility_gap.
All additive, birth-free, no canon — AX-TRIGGER is CANDIDATE, RP-visible triggers = 0 until canon.
5. The detection vocabulary
- trigger-no-process: 408 DB triggers + any unmapped dot/event.
- multi-process (fan-in): 12 processes share triggers.
- stale/orphan: 27 disabled DB triggers.
- owner-missing: all 525 (ownership=0).
- host-unmanaged: 77 (need adapter).
6. What's next (not done yet — needs authority/safety)
Canonising AX-TRIGGER would follow the same owner gate as AX-PROCESS: assign a trigger-axis owner, register the axis, then attach triggers to their owning processes. No trigger canon/birth has been performed — only the read-only surface exists.