Kho-tam SSOT rewrite — 05 Rewrite decisions
05 — QUYẾT ĐỊNH VIẾT LẠI (v1 → v2)
Nguyên tắc: SSOT thắng draft; chỗ SSOT chưa rõ → HOLD, không tự đặt chuẩn mới; định vị kho tạm nối vào mô hình có sẵn, không tạo hệ thứ hai; chống bloat nhưng giữ DOT-100 ở cấp operation.
D1 — Định vị lại (reframe lớn nhất)
Kho tạm = giá trị "kho tạm" của trục Kho trong ma trận Tầng×Loài×Kho×Miền, không phải hệ staging mới. Thêm §0.2 định vị + §2 ma trận. Lý do: README/implementation-plan §3 đã định nghĩa Kho gồm kho tạm·kho chính·canonical.
D2 — Sửa enum tầng
cell/organ/system → atom/molecule/compound/material/product/building (+meta cho Loài). Mọi --layer dùng 6 giá trị canonical. Căn cứ: Điều 0-B + live PG.
D3 — Định danh theo toạ độ ô, bỏ --scope
--layer/--species/--kho/--domain/--piece thay cho --scope C1/C2. cell_id dùng làm nhãn khái niệm (chưa materialize → HOLD H2).
D4 — Cô lập theo Điều 41 S0–S5
Thay "DB riêng/schema riêng" mơ hồ bằng menu R0 (record) / R1 (txn-rollback) / R2 (schema) / R3 (DB), chọn mức nhẹ nhất đủ dùng. Map vùng Agent sandbox của Đ41 §2A.
D5 — Nối vào substrate thật (bỏ lego_sandbox_*)
§7 liệt kê iu_staging_record/payload (R0), sandbox_tac↔cutter_governance (R2 mẫu), governance_candidate_state (HOLD), Đ41 zones. Bỏ lego_sandbox_base/lego_sandbox_run_* tự chế. Chọn substrate chính → HOLD H3.
D6 — Reuse-first DOT
Incumbent dot-staging-sandbox-* (đã staged C1) thay dot-lego-sandbox-*. Bộ MVP thin: create/drop/status/checker. Hoãn sync (chỉ cần khi có base R2/R3) + promote-plan (promotion lane). Căn cứ: dot_tools=0 DOT sandbox; reuse-first (dot-manage addendum); thin (WF-06 §6).
D7 — No lane before checker
Thêm dot-staging-sandbox-checker (fail-closed block-mode) là điều kiện tiên quyết mọi lane promote. Bỏ promote-plan khỏi đợt này. Căn cứ: quick-rules rule 32.
D8 — Base không là SoT + stale-after gate
§6.2 base = projection phái sinh, không bao giờ SoT. §6.3 base_hash + stale_after; §11 buộc sync khi STALE. Căn cứ: rule 9, M-6, stale-after.
D9 — Xóa fail-safe theo state + bằng cấu trúc
§12.1 allowlist (draft/expired/quarantined) / denylist (checking/promote_ok/approved); nghi ngờ → không xóa. §12.2 DROP SCHEMA/DB theo tên; DELETE chỉ khi tag+precheck+không trộn production. Căn cứ: S14, addendum §7c, Đ41 §2A.6.
D10 — IO Contract trung tâm
§3.1 đưa IO Contract lên đầu mục "giống kho chính", gắn IO_STAMP precondition.
D11 — Chống bloat dry-run
§13 quy tắc 6-rủi-ro; evidence staging-local; không promotion-grade stamp chain; PROMOTION_LANE_TODO cho thiếu sót stamp. §15 nhận diện C1 là "staging monster" + cách cắt. Căn cứ: WF-08.
D12 — Determinism + cấm PII/secret
§3.4 fixed seed/clock; CẤM TUYỆT ĐỐI PII/secret/authority thật. Căn cứ: WF-06 §5 + best practice tái lập.
D13 — 3 mức governance + promote nguyên tắc
§14 promote = Mức 2, Atomic Promote Contract ("PROMOTE_OK là verdict, không phải mutation"), checker-first; chi tiết để tài liệu riêng. Căn cứ: implementation-plan §10 + addendum §7b.
Điều KHÔNG làm (giữ hard locks)
Không thiết kế DDL; không tạo DOT; không materialize cell_id; không chọn thay owner ở H1–H8; không sửa 3 file SSOT; không sửa luật BAN HÀNH; không chạm runtime/C1 (chỉ đọc/khảo sát).