06 — Điều 37 Centralization Decision (Branch F) (2026-06-01)
06 — Điều 37 Centralization Decision (Branch F)
Decides how far Điều 37 (Luật Tổ chức Bộ máy Quản trị — Governance Organization, enacted v3.3, owned by GOV-COUNCIL) should centralize governance content. Principle: Đ37 owns the definitions and the contract; specialized laws keep their mechanisms and reference Đ37. This keeps exactly one roof while preventing Đ37 from absorbing every law (anti-bloat).
Disposition vocabulary: OWN (define directly in Đ37) · REFERENCE (Đ37 names it + points to the specialized law for detail) · SPECIALIZE (stays in the specialized law; Đ37 only cross-links) · EXCLUDE (not law — config/registry/CI) · DEFER.
6.1 Decision table
| # | Topic | Disposition | Reason | Đ37 clause (proposed) | Specialized-law reference | Acceptance test |
|---|---|---|---|---|---|---|
| 1 | One-Roof principle | OWN | The single roof must be stated once, centrally, or it is not single. | §4.15 "Một mái che — exactly one central governance roof; no surface mints a local owner/approval/policy." | — (root) | A module declaring a local owner → LOCAL_GOVERNANCE_ISLAND. |
| 2 | Governed object (definition + contract) | OWN | The membership predicate must be system-wide and singular. | §4.15-a M-DEF-1 shared-truth test + 13 classes + Class 0 (COUNCIL list). | profiles registry (Class 2) | A new object type auto-classified by predicate (red-team #44). |
| 3 | count > 1 relevance rule | OWN | A system-wide candidacy rule belongs with the membership predicate. | §4.15-a-bis M-DEF-10 (candidacy trigger + shared-truth gate + grain). | — | 10⁶ children → Δtotal=0; 2 prod routes → governed (doc 04). |
| 4 | Governance-orphan / anarchic | OWN | First-class health condition, defined once (twin of birth-orphan). | §4.15-b M-DEF-5 anarchic = missing authority-critical link; 12 gap types. | Đ31 (detection mechanism), Đ0-G/Đ19 (birth precedence) | RO-missing-design_ref = orphan-not-anarchic; mutating-DOT-no-owner = anarchic. |
| 5 | Local-governance-island | OWN | The anti-island rule is the whole point of one roof. | §4.15-c island = cluster defining own owner/approval/lifecycle; PG + CI detection (OQ-D3). | CI codes F-ISLAND-1..9 (EXCLUDE) | Local approval flag → island (red-team #4/#30). |
| 6 | Accountable owner / supporting roles | OWN | Resolves the §4.12 "one content one law" tension centrally. | §4.15-bis M-DEF-3: 6 responsibility scopes, 1 accountable owner each, unlimited supporting; re-reads §4.12 as one-owner-per-scope. | — | Same-scope double owner → conflict (red-team #7/#40). |
| 7 | Governed exception | OWN (contract) + REFERENCE (storage) | The exception shape is governance-wide; the store is operational. | §4.15-d M-DEF-6: 11-field record + fingerprint + replacement_plan + max-2-renewals + non-exemptable floors. | admin_fallback_log (interim store) / Đ32 (approval) |
No replacement_plan → cannot grant; RO→write adapter → auto-invalidate. |
| 8 | Future axis / Axis Registry | OWN (model) + REFERENCE (vocab homes) | The open-axis contract must be central; vocab homes stay specialized. | §4.15-quater M-DEF-8/9: axis = governed object; Axis Registry = 9-attr governed registry; no fixed array. | Đ24 (label vocab), Đ26 (pivot), Đ0-B (species), Đ39 (KG), Đ44 (IU axes) | New group-by without registration → axis_unregistered (red-team #26). |
| 9 | Coverage invariant (v2/v3) | OWN | The accounting identity must close system-wide, defined once. | §4.16 M-DEF-7: total = covered + orphans + approved_exceptions + retired/ignored + stale; governance grain; Δtotal=0 on inheritance. |
Đ31 (computes it) | Non-closing scope → GOVERNANCE_SCHEMA_DRIFT. |
| 10 | Detection obligation | REFERENCE | The obligation is central; the mechanism is Đ31's. | §4.17 "every governed object class must be reconcilable by a registered detector; inventory completeness required." | Đ31 (System Integrity — the detector), Đ19 (orphan scanner), Đ35 (DOT exec) | Source in inventory but not in registry → inventory_gap. |
| 11 | Readiness gate | OWN (gate) + REFERENCE (CI) | The production-eligibility rule is governance policy. | §4.18 four phase gates G-DESIGN/G-IMPL/G-ROUTE/G-PROD; severity-aware (zero critical/high); waiver = president-only TTL (K3). | CI enforcement (EXCLUDE), Đ20 (design-first) | Feature with a critical orphan reaches G-PROD → blocked. |
| 12 | Scanner hook (coverage DOT lifecycle) | SPECIALIZE | The scan/propose/apply/audit DOT family is Đ35 mechanism. | §4.17 cross-link only. | Đ35 (DOT governance) + GOV-DOT; dot_coverage_required rows |
Coverage DOT unregistered → DOT_AUTHORITY_GAP. |
| 13 | §0-GOV hook for future laws/docs | OWN | A declaration pattern every future law must follow is constitutional. | §0-GOV: every new law/design doc declares {governed objects, owner-per-scope, coverage profile, detection path, issue/event types}; absence at Đ20 review = governance_hook_missing. |
Đ20 (review gate) | New doc without §0-GOV → blocked at review (red-team #38). |
| 14 | Approval linkage | REFERENCE | Approval is Đ32's spine; Đ37 only requires the link. | §4.15-d cross-link "authority-bearing action passes Đ32." | Đ32 (Approval) + apr_action_types (needs C-2) |
Mutating object with no APR → APPROVAL_PATH_GAP. |
| 15 | Audit linkage | REFERENCE | Audit substrate is operational; Đ37 requires central logging. | §5.5 cross-link "governance relation + coverage changes logged centrally." | governance_audit_log (activate, dormant), registry_changelog, event_outbox |
Owner change not logged → AUDIT_GAP. |
| 16 | Issue/event linkage | REFERENCE | Đ45 owns the event substrate (register-before-emit). | §4.17 cross-link "detection emits to the one Đ31/45 substrate." | Đ45 (Event/Queue, needs registration L-2) + system_issues/event_type_registry |
Emit before registration → event_unregistered (red-team #18). |
| 17 | DOT linkage | REFERENCE | Every executed governance action is a Đ35 DOT. | §4.17 cross-link "if executed by code, runs as a Đ35 DOT with paired_dot." | Đ35 + dot_tools |
Code path not a registered DOT → DOT_AUTHORITY_GAP (red-team #11). |
6.2 What Đ37 must OWN (the centralization list, Q15)
Đ37 becomes the governance hub by owning: the One-Roof principle; the governed-object definition + 13 classes + Class 0; the count>1 rule; governance-orphan/anarchic + 12 gap types; the local-island rule; the accountable-owner/responsibility-scope model; the governed-exception contract; the open-axis model + Axis Registry contract; the coverage invariant; the detection obligation; the readiness gate; and the §0-GOV hook. These are definitions and contracts — the shared vocabulary the whole system reconciles against.
6.3 What stays SPECIALIZED (anti-bloat, Q16)
Đ37 must NOT absorb: the detector mechanism (Đ31), the DOT scan/propose/apply/audit lifecycle (Đ35), the approval spine (Đ32), the event/queue substrate (Đ45), label vocab (Đ24), pivot mechanics (Đ26), species/composition (Đ0-B), KG (Đ39), birth (Đ0-G/Đ19), display (Đ28), IU schema (Đ44), host/deploy (Đ41). Đ37 references these; they keep their mechanisms. This preserves one roof without one giant law.
6.4 The §0-GOV hook (proposed pattern — OWN)
Every future law and design doc carries a declarative block (no code, data at review):
§0-GOV Governance Coverage Declaration
governed_objects: [ <object classes this doc introduces> ]
owner_per_scope: { policy:, health:, execution:, render:, approval:, audit: }
coverage_profile: [ <profile per object class> ]
axes_introduced: [ <axis codes, if any> → Axis Registry ]
detection_path: <detector / inventory source>
issue_event_types: [ <registered types under Đ45> ]
exceptions: [ <governed exception refs, if any> ]
Absence at the Đ20 design-review gate = governance_hook_missing (blocking). This is how future laws/docs declare coverage (Q13) and how specialized laws reference Đ37 without duplicating it (Q14).
6.5 Answers to Success-Target Q13–Q16
- Q13 (future laws/docs declare coverage) → YES — §0-GOV hook (OWN).
- Q14 (specialized laws reference Đ37 without duplicating) → YES — REFERENCE/SPECIALIZE dispositions + §0-GOV cross-links.
- Q15 (what centralizes into Đ37) → YES — §6.2 OWN list.
- Q16 (what stays specialized) → YES — §6.3 anti-bloat list + the patch matrix (doc 07).