All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m43s
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>
30 lines
4.0 KiB
Markdown
30 lines
4.0 KiB
Markdown
# 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 `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.**
|