Birth Registry Audit — Trigger and Function Root Cause
03 — Trigger / Function Root Cause
Direct birth triggers: birth_trigger_entity_labels, two triggers on system_issues, birth_trigger_registry_changelog, and birth_trigger_knowledge_documents, all calling fn_birth_registry_auto().
fn_birth_registry_auto() synthesizes table::id when needed and inserts a birth, but does not enforce collection_registry.coverage_status. Therefore explicitly birth-exempt collections can still birth.
Live cron: 0 */3 * * * ... /opt/incomex/dot/bin/dot-hc-executor.
Live H11a metadata: check_kind=detect_and_fix, auto_fix_action=heal_description_basic, is_active=true.
The shell function autofix_heal_description_basic() loops over up to 1,000 governed entities with empty descriptions. If healing stays empty, it calls fn_log_issue() for every entity on every run without stable violation/coalesce key.
Live output: AUTOFIX_RESULT healed=0 skipped=0 failed=0 anti_loop=1000; H11a remaining count unchanged.
Each new issue fires fn_auto_label_provenance() and fn_auto_label_assignment(), then Directus flow updates create registry_changelog; all three collections birth.
System-wide evidence: 166 birth-auto triggers on 148 tables; 78 birth-exempt/deferred/excluded collections still have a birth trigger.