KB-58E9
One-Roof Release Mgmt Finalization — Gate Monitor sql/gate_monitor/gate_check.sql (2026-06-03)
3 min read Revision 1
one-roof-governancerelease-managementgate-monitorsqlread-only2026-06-03
Gate monitor SQL (read-only, no mutation, validated live → BLOCKED/ospa<1). Machine verdict query:
SELECT CASE WHEN db_ok AND ospa_ok AND own_ok AND gap_ok AND conf_ok AND emit_ok AND axis_ok AND prereq_ok
THEN 'READY' ELSE 'BLOCKED' END AS gate_status,
CASE WHEN NOT db_ok THEN 'wrong_db; ' ELSE '' END || CASE WHEN NOT ospa_ok THEN 'ospa<1; ' ELSE '' END ||
CASE WHEN NOT own_ok THEN 'ownership<>0; ' ELSE '' END || CASE WHEN NOT gap_ok THEN 'gap<>210; ' ELSE '' END ||
CASE WHEN NOT conf_ok THEN 'conflict<>0; ' ELSE '' END || CASE WHEN NOT emit_ok THEN 'gov_emit<>0; ' ELSE '' END ||
CASE WHEN NOT axis_ok THEN 'axis_present; ' ELSE '' END || CASE WHEN NOT prereq_ok THEN 'prereq_views_missing; ' ELSE '' END AS blockers,
ospa, resp_gap, resp_ownership
FROM (
SELECT current_database()='directus' AS db_ok,
(SELECT count(*) FROM os_proposal_approvals) >= 1 AS ospa_ok,
(SELECT count(*) FROM governance_object_ownership) = 0 AS own_ok,
(SELECT count(*) FROM v_object_owner_gap) = 210 AS gap_ok,
(SELECT count(*) FROM v_object_owner_conflict) = 0 AS conf_ok,
(SELECT count(*) FROM event_outbox WHERE event_domain='governance') = 0 AS emit_ok,
(SELECT count(*) FROM information_schema.tables WHERE table_schema='public' AND table_name IN
('axis_registry','axis_value','axis_assignment','coverage_rule','axis_object_ownership','axis_candidate_finding')) = 0 AS axis_ok,
(SELECT count(*) FROM (VALUES ('v_governance_object_inventory'),('v_governance_object_containment'),
('v_object_effective_owner'),('v_object_owner_gap'),('v_object_owner_conflict')) AS w(v)
LEFT JOIN pg_views pv ON pv.schemaname='public' AND pv.viewname=w.v WHERE pv.viewname IS NULL) = 0 AS prereq_ok,
(SELECT count(*) FROM os_proposal_approvals) AS ospa,
(SELECT count(*) FROM v_object_owner_gap) AS resp_gap,
(SELECT count(*) FROM governance_object_ownership) AS resp_ownership
) g;
READY requires ALL: db=directus, ospa≥1, ownership=0, gap=210, conflict=0, gov_emit=0, axis substrate absent, 5 prereq views present. Live result 2026-06-03: BLOCKED | ospa<1; | ospa=0 | resp_gap=210 | resp_ownership=0. Shell wrapper gate_check.sh returns exit 0 READY / 10 BLOCKED / 1 error. No daemon; on-demand or cron read only.