Files
solution-erp/docs/governance/adap-reports/2026-07-17-Governance-chuan-hoa-stamp-decode.md
pqhuy1987 2757e418a1
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m43s
[CLAUDE] Docs: closeout OUTWARD wave adap đợt-9/10 + vá drift skill-matrix H24
Closeout 4 mục OUTWARD của wave S141-S142 (anh gật @S143):
- adap-report 7/7 thư, đủ 5 trường REPORT-FORMAT LOCK, evidence đo thật
- email hub báo-nấc (sha 6c94873f72e0, selftest_verify exit 0, log _index cùng lượt)
- STAGE-2: 7 thư -> inbox/ai_infra/, _index 0 pending, cross-check 7/7
- squash K=8 wal: -> commit chốt

Ngoài wave: agents/README skill-matrix thiếu 2 row H24 (drift S121) -> 15/17 thành 17/17.

Nấc cao nhất khai được = executed-file/verified-pending-restart (trio CHƯA spawn).
2 phát hiện khai thẳng theo G-015 (chi tiết trong report + email):
- whitelist `tools:` KHÔNG chặn ghi ở runtime: 6 vai read-only bị append Write+Edit
- pull-lag do "watch broadcasts/inbox" canh nhầm chỗ

TICK H24: counter 16->17 (S143), 3-điều-kiện OK-reachable, không fail-loud.
Detector TOTAL 46 == baseline 46, 0 flag mới.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 12:32:27 +07:00

30 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# adap-report — 2026-07-17-Governance-chuan-hoa-stamp-decode
> SE (SOLUTION_ERP) · wave adap đợt-9/10 (S141S142) · 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 `1a0fa59`): `.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 `1a0fa59`): `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.
- **Unpushed lúc ghi.**