KB-1C87
dot-iu-cutter v0.2 — BR-4 Authority Backfill Rule Closure (2026-05-15)
7 min read Revision 1
dieu44-trien-khaidot-iu-cutterv0.2br-4authoritybackfillclosureclosed-with-notes2026-05-15
dot-iu-cutter v0.2 — BR-4 Authority Backfill Rule Closure
document_path: knowledge/dev/laws/dieu44-trien-khai/v0.2-planning/dot-iu-cutter-v0.2-br-4-authority-backfill-rule-closure-2026-05-15.md
revision: r1
date: 2026-05-15
author: Agent (Claude Code CLI, Opus 4.7 1M)
sovereign: User / anh Huyên
verifier: GPT (Đ32 HIGH-risk path)
secondary: Opus
phase: v0.2 planning — BR-4 closure record
mutation_performed: false
ddl_written: false
backfill_executed: false
§1 — Closure Status
BR_4_status: closed_with_notes
closure_basis: GPT review accepted the BR-4 rule design recommendation (Candidate B) on 2026-05-15
agent_revision_needed: false
mutation_performed: false
phase_alpha_design_unblocked_from_BR_4_side: true
§2 — Selected Rule
selected_rule: Candidate B — Derive from lifecycle_status mapping
2.1 Mapping table (ratified)
lifecycle_status |
→ | authority |
|---|---|---|
draft_only |
→ | draft |
active |
→ | enacted |
retired |
→ | enacted |
2.2 Interpretation (ratified note from GPT review)
authority semantic class:
authority represents SOURCE AUTHORITY CLASS — where the row's content originates and what birth-gate status applies to the source.
lifecycle_status semantic class:
lifecycle_status represents OPERATIONAL LIFECYCLE — whether the row is currently active, draft-only, or retired.
retired → enacted is acceptable because:
- retired enacted units REMAIN SOURCED FROM ENACTED AUTHORITY (the source authority does not retract)
- RETIREMENT is carried by lifecycle_status (operational), not by a change in authority (source class)
- this preserves the cleanest separation between the two concerns and matches Đ0-G semantics
§3 — Expected Backfill Effect on Current Data
target_table: public.tac_logical_unit
total_rows_at_closure_time: 86
lifecycle_distribution_at_closure_time: 100% draft_only
expected_post_backfill_authority_distribution:
draft → 86 rows
enacted → 0 rows (no active or retired rows exist today)
runtime → 0 rows (runtime authority does NOT apply to tac_logical_unit; reserved for information_unit family — out of v0.2 scope)
sandbox_tac.logical_unit (76 rows, all draft_only):
expected_post_backfill (when backfilled): draft → 76 rows
but: sandbox backfill DEFERRED in Phase α (mirror column only; backfill aligned with Phase β when production rule generalizes)
§4 — Phase α Column Policy (ratified)
column_to_add_in_phase_alpha: public.tac_logical_unit.authority
column_type: text
column_nullable_in_phase_alpha: YES (nullable initially)
column_default_in_phase_alpha: 'draft'
backfill_pattern:
UPDATE public.tac_logical_unit
SET authority = CASE lifecycle_status
WHEN 'draft_only' THEN 'draft'
WHEN 'active' THEN 'enacted'
WHEN 'retired' THEN 'enacted'
END
WHERE authority IS NULL
(textual rule only; NOT executed in this closure; Phase α DDL/migration authoring is a separate session)
NOT_NULL_constraint: DEFERRED to Phase β
reason: NOT NULL is added only after the lifecycle-transition write hook (trigger or app-layer) lands
Phase β work: implement write hook to set authority='enacted' when lifecycle transitions to 'active'; then promote column to NOT NULL with verified backfill
§5 — sandbox_tac Effect (closure note)
sandbox_tac.logical_unit:
Phase α: MIRROR the additive authority column (Option II from BR-7); column added with same default 'draft'
Phase α backfill of sandbox: DEFERRED — apply Candidate B mapping in Phase β alongside production write-hook work
rationale: sandbox semantics may diverge from production; safer to defer backfill until production rule is operationally proven
§6 — Hard Boundaries (re-stated)
no_DDL_written_in_this_closure: TRUE
no_SQL_mutation: TRUE
no_ALTER_TABLE: TRUE
no_INSERT_UPDATE_DELETE: TRUE
no_migration: TRUE
no_change_to_tac_logical_unit: TRUE
no_change_to_sandbox_tac: TRUE
no_change_to_cutter_governance: TRUE
no_phase_alpha_design_started: TRUE
no_phase_alpha_DDL_authored: TRUE
no_deploy: TRUE
agent_self_advance_to_phase_alpha: PROHIBITED
output_form: br_4_closure_record_documentation_only
§7 — Status Roll-Up
BR-4_status: closed_with_notes
phase_alpha_design_unblocked_from_BR_4_side: TRUE
phase_alpha_design_unblocked_overall: depends on BR-5 closure (see companion file)
remaining_blockers_after_this_closure (separate scope):
- BR-5 ratification (companion closure to be authored alongside this one)
- BR-6 split/merge metadata propagation TD (blocks P0-2 design only, NOT Phase α DDL)
§8 — Cross-References
br_4_design_source: knowledge/dev/laws/dieu44-trien-khai/v0.2-planning/dot-iu-cutter-v0.2-br-4-authority-backfill-rule-design-2026-05-15.md
br_4_5_gpt_review: knowledge/dev/laws/dieu44-trien-khai/reviews/dot-iu-cutter-v0.2-br-4-5-gpt-review-2026-05-15.md
br_5_closure_companion: knowledge/dev/laws/dieu44-trien-khai/v0.2-planning/dot-iu-cutter-v0.2-br-5-canonical-address-v1-ratification-closure-2026-05-15.md
br_4_5_closure_report: knowledge/dev/laws/dieu44-trien-khai/v0.2-planning/dot-iu-cutter-v0.2-br-4-5-closure-report-2026-05-15.md
closure_readiness: knowledge/dev/laws/dieu44-trien-khai/v0.2-planning/dot-iu-cutter-v0.2-br-4-5-closure-readiness-report-2026-05-15.md
v0_1_p0_1_design_baseline_for_authority_enum: knowledge/dev/laws/dieu44-trien-khai/migration-design/dot-iu-cutter-v0.1-p0-1-canonical-address-migration-design-2026-05-15.md
v0_2_scope_backlog: knowledge/dev/laws/dieu44-trien-khai/planning/dot-iu-cutter-v0.2-scope-backlog-2026-05-15.md
v0_1_production_handoff: knowledge/dev/laws/dieu44-trien-khai/execution/dot-iu-cutter-v0.1-production-handoff-status-2026-05-15.md
§9 — Sign-Off Block
agent (author): Claude Code CLI / Opus 4.7 1M action: BR-4 closure record authored
verifier (Đ32 HIGH-risk path): GPT action: BR-4 review — PASS (recorded in companion review file)
secondary (record keeping): Opus action: closure stored in Agent Data — DONE (this file)
sovereign (authorizing party): User / anh Huyên action: any next-step prompt to authorize Phase α design — PENDING
council_review_status:
Đ0-G: review acknowledged via GPT's authority-class interpretation note in §2.2 (council formal pass — recorded by GPT review); FUTURE Đ0-G formal pass only required if mapping is revised
Đ32: standard risk class accepted
End of BR-4 authority backfill rule closure.