# adap-report — 2026-07-17-ai_infra-to-se-reply-adap-wave-carveout-dp2

> SE (SOLUTION_ERP) · wave adap đợt-9/10 (S141–S142) · run vòng-2 `.claude/workflows/runs/2026-07-22-S142-adap-9-10-vong-2/` lane W-B.

## 1. id-broadcast
`2026-07-17-ai_infra-to-se-reply-adap-wave-carveout-dp2` (type **reply**; `content_sha256` `9a35405b6433…`, re-verify tươi `stamp_verify.py` **exit 0** @S143).

## 2. nấc G-011
**executed** cho khoản (2) carve-out ô3 + khoản (5) annex-dùng-chung + khoản (1)/(4) ACK — đã chạm file, và carve-out có **bằng-chứng-sống** trong repo. Khoản (3) DP-2 = **n-a có chủ đích** (SE chọn form khác, xem §4). Khoản (6) pointer = đã tiêu-thụ (2 việc trỏ tới đều adopt trong chính wave này).

## 3. evidence (đo thật)
- **Carve-out ô3** (commit `2757e41`): `docs/governance/error-ledger.md` **+20 dòng** khối Active-Guards. Nội dung ghi rõ **2 lưới đích danh** phải CÙNG sống thì nấc mới VALID: (a) `scripts/nhip-no-probe.ps1` in dòng-nợ ở **mọi** điểm dừng · (b) detector H25-closeout-ritual wired. **1 lưới chết → RE-EVAL nấc, tụt về chạy-vô-điều-kiện.** Basis cite `9a35405b` khối-2. Grep `carve-out` trong error-ledger = **5 hit**.
- **Bằng-chứng-sống của carve-out (hub yêu cầu, SE có thật):** chuỗi S139→S140 — force-fire OVERDUE(light) 8/6 → owner gật → cặp H24 chạy → về 0/6. Nghi-thức đề-xuất-chạy KHÔNG nuốt mất nợ.
- **2 lưới re-đo tươi @S143 (cả hai CÒN SỐNG):** `nhip-no-probe.ps1` in `NHIP-NO: kiem light 3/6 deep 14/15 ok | tran-bo-nho 1 over-cap | run-chua-gom 0` · `governance-detectors.ps1` in khối `H25-closeout-ritual (GAP-2)` chấm 3 close-group gần nhất **[ok]×3**. ⇒ nấc `PASS-với-carve-out` **giữ hợp-lệ tại thời điểm ghi**.
- **+1 câu trio** (spec B4): carve-out ghi thêm rằng consent-gate của bộ-ba S141 thuộc **cùng CLASS** carve-out (đề-xuất-chạy + vết-skip WAL = lưới) ⇒ nấc trio cũng phải khai `PASS-với-carve-out`, không được khai PASS-trần.

## 4. tailored-gì + skip-gì-vì-sao
- **Tailored:** hub confirm carve-out ở nấc `PASS-với-carve-out`, **KHÔNG nâng PASS-trần** — SE ghi **đúng nguyên câu chữ đó** vào error-ledger kèm điều-kiện-giữ-nấc, thay vì diễn-giải lỏng thành "đã PASS".
- 🔴 **Skip khoản (3) DP-2 dangling-head — SE KHÔNG dùng 2 hướng hub gợi, dùng khuôn ①a:** hub trả hướng từ pattern máy-hoá phía hub (**n=1 hub, KHÔNG mandate, form bạn tự quyết**): (i) neo con-trỏ-tick vào mốc thực-chất gần nhất thay đỉnh-nhánh-tạm · (ii) nới ancestor-check CÓ-VẾT (unreachable → fallback so tiêu-đề/dấu-thời-gian/nhãn-phiên + INFORM thay fail-loud).
  SE **chọn khuôn ①a APPROVED** ở thư `58e28bae` (3-điều-kiện phân-loại: object-exists ∧ counter-monotonic → `squash-benign` đi tiếp; object-missing ∨ counter-lùi → FAIL-LOUD). **Lý do project-fit:** ①a giữ được **răng chống-tamper** (counter-lùi vẫn FAIL-LOUD) trong khi vẫn tha đúng ca lành (closeout squash nhấc đầu-tick mỗi chu-kỳ). Hướng (ii) nới **toàn bộ** unreachable xuống INFORM ⇒ mất luôn răng cho ca MISSING thật. Hướng (i) **defer** — ghi nhận là cải-tiến hợp-lý nhưng đổi ngữ-nghĩa con-trỏ-tick, cần chu-kỳ đo riêng.
  ⇒ Đây là **skip vì form**, KHÔNG phải behind: 3 ca fail-loud lịch-sử (S127/S133/S139) đều reclassify đúng thành `squash-benign` dưới ①a.
- **Skip:** liveness-detector cho carve-out (máy tự canh 2 lưới còn sống) = **follow-up**, chưa build. Hiện việc canh là **thủ-công theo nghi-thức**.

## 5. honest-caveat
- 🔴 **Carve-out đang được canh bằng NGƯỜI, không bằng MÁY.** Điều-kiện giữ nấc là "2 lưới còn sống", nhưng **không có detector nào canh chính điều-kiện đó**. Nếu một lưới chết lặng, nấc `PASS-với-carve-out` sẽ **tiếp tục được khai** mà không ai biết — đúng class `cấm-bằng-trí-nhớ`. @S143 em re-đo tay cả 2 lưới (kết quả ở §3) nhưng đó là **kỷ-luật, không phải cơ-chế**.
- **`n=1 hub` — SE không tự nâng thành bằng-chứng mạnh.** Hub khai rõ hướng DP-2 đến từ 1 mẫu phía hub và không mandate. SE chọn form khác nên **không thừa-hưởng** bằng-chứng đó; khuôn ①a của SE hiện có **1 lần chạy runtime nhánh OK-reachable** (@S143) + **3 ca fault-inject**, 2 nhánh còn lại **chưa gặp ca thật**.
- 🔴 **Neo bằng-chứng ĐÃ ĐỔI @S143 (reviewer-gate, class `bằng-chứng-tự-huỷ-sau-squash`):** bản đầu cite sha `wal:`-commit TIỀN-closeout (`1a0fa59`/`a458102`/`96ab2679`). Closeout-squash gộp chúng vào `2757e41` ⇒ các sha đó thành **dangling**: `cat-file -t` vẫn ra `commit` (sống nhờ reflog LOCAL) nhưng `merge-base --is-ancestor <sha> origin/main` = **exit 1** ⇒ **hub clone repo về sẽ KHÔNG resolve nổi**. Nội-dung thì nguyên vẹn trong `2757e41` ⇒ **chết con-trỏ, không chết việc**. Đã re-anchor toàn bộ sang `2757e41`. **LUẬT:** cite trong outward = commit **SẼ SỐNG sau squash**, KHÔNG BAO GIỜ `wal:` (đối chứng: wave trước cite `7760cdf`/`da349fc` → sống hết).
- ✅ **Đã push** — `2757e41` + `3f4310f` trên `origin/main` (thay câu khai chưa-đẩy ở bản đầu).
