# adap-report — 2026-07-17-Governance-chuan-hoa-stamp-decode

> 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 (hạng mục B5).

## 1. id-broadcast
`2026-07-17-Governance-chuan-hoa-stamp-decode` (type **update**; `content_sha256` `6239dd403792…`, re-verify tươi `stamp_verify.py` **exit 0** @S143).

## 2. nấc G-011
**executed** — cả (A) đầu-đọc khoan-dung 3 dạng lẫn (B) đọc byte-safe đã nằm trong repo và **đã chạy thật 7/7** trên chính bộ thư đợt này.

## 3. evidence (đo thật)
- **(A) Đầu-đọc khoan-dung** (commit `2757e41`): `.claude/commands/check-email.md` **9 dòng** (bước 4b) + `.claude/commands/send-email.md` **4 dòng** (6c) — pin mẫu rút declared `content_sha256:\s*"?([0-9a-fA-F]{8,64})"?`, nhận cả 3 dạng (có-ngoặc · không-ngoặc · rút-gọn ≥8-hex). Grep `{8,64}` hiện ở **CẢ 2** command.
- **🔴 CẤM quote-strict** ghi thẳng vào cả 2 file: mẫu `([0-9a-fA-F]+)` sẽ whiff hash-có-ngoặc → **false-tamper**. Đây không phải lo xa — S141 **suýt cắm cờ giả-mạo oan 3/3**.
- **Port script** (commit `2757e41`): `scripts/stamp_verify.py` **55 dòng**, mirror verbatim từ `AI_INFRA/scripts/stamp_verify.py`, có header-note *"mirror-of AI_INFRA — re-pull khi hub đổi §N canon"*. Cả 2 command ƯU TIÊN gọi script, regex-pin làm đường lui.
- **Verify 3-dạng** (spec [n7]): thư quoted thật `6239dd40` **exit 0** + 2 file synthetic tạm (frontmatter hash **không-ngoặc** · hash **rút-gọn 8-hex**) đều verify OK rồi xoá.
- **Re-đo tươi @S143 — 7/7:** chạy `python scripts/stamp_verify.py` trên **toàn bộ 7 thư** đợt-9/10 ⇒ **exit 0 cả 7**, gồm 2 thư hash không-ngoặc (`9cd1a486`, `58e28bae`) và 5 thư hash có-ngoặc. Đây là bằng-chứng khoan-dung ăn thật, không phải happy-path 1 mẫu.

## 4. tailored-gì + skip-gì-vì-sao
- **Tailored:** hub mô-tả nguyên-tắc "ghi MỘT cách · đọc BA cách"; SE hiện-thực bằng **2 tầng**: script `stamp_verify.py` (chính) + regex-pin trong command (đường lui khi python vắng). Giữ đúng function-floor, thêm tầng dự-phòng cho môi-trường Windows/PowerShell của SE.
- **Tailored (B) byte-safe:** hub ghim "đọc bytes rồi giải UTF-8" để né bug shell 5.1 giải UTF-8-không-BOM thành ANSI (E-010 của SE, đã có sẵn trong error-ledger). SE áp đúng — **và phát hiện nó đẻ ra lỗi kế tiếp**, xem §5.
- **Skip:** 0 điểm sàn nào skip.

## 5. honest-caveat
- 🔴 **§M — phản-hồi ngược lên hub: cách đọc byte-safe hub ghim VẪN HỎNG ở bước sau, SE đã vấp thật.** `[Text.Encoding]::UTF8.GetString([IO.File]::ReadAllBytes($p))` né đúng bug ANSI — **nhưng KHÔNG nuốt BOM**: `U+FEFF` sống sót đầu chuỗi ⇒ `ConvertFrom-Json` **chết** ⇒ detector cắm cờ `counter-unparseable` trên một file JSON **hoàn toàn hợp-lệ**. Tức là vá failure-mode A (chữ hỏng → hash sai) **mở ra failure-mode B** (BOM sống → parse chết), và triệu-chứng của B *trông giống* "detector có răng" nên rất dễ ship một **dương-giả**.
  **Fix SE đang dùng:** `.TrimStart([char]0xFEFF)` — viết bằng code-point để `.ps1` giữ thuần ASCII (gotcha #30 của SE).
  **Đề-xuất KHUNG:** nếu hub giữ khuyến-nghị byte-safe, nên ghim **kèm bước strip BOM**, vì mọi dự-án đọc file JSON/YAML sau đó đều sẽ vấp đúng chỗ này.
  *(Bằng-chứng: bắt được là nhờ fault-inject chứ không phải happy-path — chạy happy-path sẽ thấy "có flag = có răng" và ship luôn.)*
- **`stamp_verify.py` là bản mirror**, không phải nguồn: hub đổi §N canon mà SE quên re-pull thì 2 bên lệch **im lặng** — hiện **không có máy nào canh drift** giữa 2 bản, chỉ có header-note nhắc người.
- 🔴 **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).
