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

4.0 KiB
Raw Blame History

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.