KB-F097
06 — Technical Addendum SCAFFOLD: SB-2 Object/Axis Ownership Edge (2026-06-01)
4 min read Revision 1
one-roof-governancescaffoldsb-2object-axis-ownershipc-1governance-object-ownershiptrack-t4design-only2026-06-01
06 — Technical Addendum SCAFFOLD: SB-2 Object/Axis Ownership Edge
SCAFFOLD only. No DDL, no SQL, no migration script. Frames future T4.
Purpose
Frame the future design of the substrate that lets governance express who owns a governed object or axis — today impossible because the relations CHECK only allows law↔agency endpoints.
Controlling inputs
- Concept canon doc 01 (M-DEF-1/2 governed-object, M-DEF-3 responsibility-scope, M-DEF-8/9 axis-as-governed-object) and doc 03 (SB-2).
- Round-4 doc 02 (C-1) + doc 08 (
chk_relations_source_type/chk_relations_target_type∈ {law,agency}; 8 live edges agency→law). - Round-1 finding (HISTORICAL_REFERENCE_ONLY): ownership is relational — no
owner_gov_codecolumn exists system-wide; do not add one to arbitrary tables. - This package doc 03 §3.1 (SB-2), §3.2 (C-1); doc 04 (T4).
Current blocker status
OPEN. No way to record an object/axis owner edge. C-1 (new table vs widen CHECK) unresolved; recommended default = new additive governance_object_ownership table.
Exact scope of the future design (T4)
- Specify the additive
governance_object_ownershiptable contract (owner_gov_code,object_type,object_ref,scope, plus the responsibility-scope fields from M-DEF-3) — as a contract, not DDL-to-commit. - Prove no migration risk to the 8 live agency→law edges (the new table sits beside
governance_relations, does not widen its CHECK). - Define container-grain inheritance so ownership scales to 10^8 children with Δtotal=0 (never per-row owner edges) — consistent with coverage invariant v3 and the count>1 rule.
- Define how an axis (M-DEF-8/9, a governed object) gets an owner via the same table.
Dependencies
- Pairs with C-1.
- Feeds T6 (apply DOT writes owner edges here) and T10 (IU owner-binding lands here once OP-B decided).
- Coverage invariant v3 (total = covered + orphans + exceptions + retired) is the accounting this table must satisfy.
Known constraints
- Prefer additive table over CHECK widening (no migration risk).
- No-hardcode: object types / axes are data; ownership inheritance is computed, not enumerated.
- Reuse the relational-ownership model; do not bolt
owner_gov_codecolumns onto domain tables.
Forbidden implementation shortcuts
- ❌ Committing the table or widening the live CHECK.
- ❌ Per-row owner edges (breaks 10^8 scale).
- ❌ A second ownership store that bypasses the Điều 37 hub (local island).
Acceptance criteria for the future detailed design
Additive table contract specified; no-migration-risk proven against the 8 live edges; container-grain inheritance demonstrated (Δtotal=0 at scale); axis-ownership path defined; rollback + read-only rehearsal; no committed mutation.
Where future detailed docs must be added
This package (e.g. 06a-sb2-object-axis-ownership-design.md). Pointer line added here.
What old docs must NOT be used as controlling input
- Round 1/2/3 ownership wording (SUPERSEDED_BY_ROUND4) except the fact that ownership is relational.
- Any doc proposing
owner_gov_codecolumns on domain tables (rejected by the relational model).