Files
solution-erp/docs/governance/adap-reports/2026-07-16-Governance-erratum-eol-metric-hai-chieu-va-bon-lo-moi.md

5.8 KiB
Raw Blame History

adap-report — 2026-07-16-Governance-erratum-eol-metric-hai-chieu-va-bon-lo-moi

  • Broadcast: hub erratum EOL-metric (type update, supersedes-scope HẸP bản 2026-07-15 1c039f33…; content_sha256 eb12b9b8…, reviewer_gate PASS_WITH_FIXES→ALL-FOLDED). Nhận STAGE-1 S129 2026-07-16 đêm, verify 2-tuyến PASS (whole-file 9c716472… + stamp_verify.py canonical exit-0).
  • Adopt: S129 2026-07-16, Harness-9 2-workflow: IMPLEMENT wf_3fccd7d1-b63 (3 lane inv-cb, 3/3) → REVIEW wf_8a0249f6-709 (2 lane reviewer, GO-WITH-FIXES ×2). Run-trace: .claude/workflows/runs/2026-07-16-S129-adap-errata-16-07/. (Attempt-1 review wf_dc8975ba-4ab FAIL-AT-LAUNCH JSON-args-mangle 5ms/0-agent → spec-file invocation H21 — khai thẳng.)
  • Mandate re-verify CHỈ delta (3 fix + 4 lỗ mới) — KHÔNG adopt lại bản gốc. PROJECT-FIT = ADOPT (SE là consumer thật: đã adopt bản 2026-07-15 ở S119/S120 dạng scoped + attr-floor).

nấc (G-011)

  • fix① (phép đếm attr-aware 2-chiều + w/mixed) — đã-thoả (pre-satisfy, 2 lượt đo độc-lập T0+R0): EOL-counter sống DUY-NHẤT của SE = scripts/agent-frontmatter-eol-check.ps1 đếm BYTE-level CR 0x0D (:180-184), KHÔNG dùng pattern bị bác grep -c 'i/lf.*w/crlf'; bắt được w/mixed by-construction (mọi CR → flag); 0 false-positive vì scoped-set 39 file có 0 file cố-ý eol=crlf/-text (đo live). Mọi occurrence pattern-hỏng trong repo = mention (inbox hub + frozen-run + adap-request SE gửi hub), 0 live-consumer — phân use⟂mention chuẩn citation-trap.
  • fix② (đo SAU attr) — đã-thoả: attr class-wide * text=auto eol=lf land 92de58f 2026-07-15 (TRƯỚC erratum; first-touch 08c7036 2026-06-15 chỉ có broadcasts/** — bẫy tail-1=first-touch được cả T0 lẫn R0 nail). Counter byte-level attr-independent nên không đứng trên cột attr rỗng.
  • fix③ (cổng push so SỐ, cấm A && B || C) — đã-thoả: push-path sống DUY-NHẤT = session-end.md §5.2recount()$nif [ "$n" -gt 0 ] / [ "$n" -eq 0 ] || { exit 1; } = so SỐ + guard-clause; :175 tự-cấm exit-code-grep; eol-check chạy standalone # exit 0 ALWAYS INFORM rồi push KHÔNG chain. (R0 adversarial: :168 có shape A && B || C nhưng không-push + B=echo-không-fail = an-toàn, không flag.)
  • lỗ #4 (lone-CR i/-text) — executed (check chạy, 0 suspect): 19 i/-text = 12 docx + 6 png + 1 xlsx, TẤT CẢ attr/-text declared (0 heuristic-binary); filter SE-tailored → 0 suspect lẽ-ra-text. Check giữ làm regression-guard (file text lone-CR mới sẽ rơi vào i/-text và bị soi). 🔴 Phát-hiện-riêng gửi hub: filter mẫu của erratum (zip|exe|png|jpg|jpeg|gif|pdf|gz|ico|woff2?) THIẾU docx/xlsx/pptx/dll → chạy nguyên-mẫu trên SE cho 13 dương-giả — bằng-chứng cụ-thể "extension-list phải tailor theo binary-class TỪNG repo khai".
  • lỗ #5 (fixture tracked phải -text) — n-a-by-design: SE 0 fixture EOL tracked — control của eol-check là synthetic IN-MEMORY (:215-219) + fault-inject qua -RepoRoot temp-tree. Không tồn-tại fixture-để-chết. Nếu tương-lai thêm fixture tracked → cần <dir>/** -text SAU dòng * text=auto (ghi nhận, chưa cần).
  • lỗ #6 (nguồn drift = công-cụ-sinh-file) — executed (vá point-of-generation 2-phía): inventory 6 write-site → đúng 1 site ghi tracked-text: scripts/mfe-eval.ps1:204 Set-Content -Encoding UTF8 (PS5.1 = BOM + CRLF) ra .claude/agent-memory/.mfe-state.json — worktree 5 CR; blob LF nhờ attr clean-filter (contained). Datum R0 quyết-định: blob mang BOM 3-byte thật. Vá S129 ĐỦ CẢ 2 PHÍA cùng commit (bài S87 consumer-sweep): writer → [IO.File]::WriteAllText UTF8-no-BOM + LF tường-minh; reader :193 → +-Encoding UTF8 (hết lệ-thuộc BOM-sniff — vốn là read duy-nhất trong file thiếu encoding). Honest: đây là phòng-ngừa point-of-generation + one-time blob-change (BOM rớt ở lần ghi state kế), KHÔNG phải sửa churn đang chảy (porcelain vốn rỗng). Verify: parse 0-err · 0 non-ASCII (gotcha #30) · synthetic write-shape CR=0/LF=5/BOM=False · reader round-trip OK.
  • lỗ #7 (ma-trận 4-ô) — executed-partial (khai thẳng phần không biết): SE data-point W0.6 = A/B đổi-EOL-only (quote-format hằng-số) ⇒ củng-cố HÀNG CRLF-tolerant (scope agents/, 1 win32 build) + là ca-mẫu restart-verify hợp-lệ (không kết-luận từ probe-trước-re-scan); trục-quote UNDETERMINED (probe đã xoá cố-ý — untracked để attr không normalize; format description không recover được). Chống over-cite tương-lai: +4 dòng AXIS-limit vào header eol-check (:27-30) — "W0.6 says NOTHING about the description-colon-quote axis".

evidence

  • Run-trace: runs/2026-07-16-S129-adap-errata-16-07/implement-synthesis.md + review-synthesis.md + sub-investigator-codebase-{0,1,2}.md + sub-reviewer-{0,1}.md. Diff code: scripts/mfe-eval.ps1 (:193 + :202-209) + scripts/agent-frontmatter-eol-check.ps1 (:27-30) — commit kèm push này.
  • REVIEW độc-lập re-run byte-exact các số chốt: 19/0-suspect i/-text · CR worktree=5/blob=0 · eol-check 39 file 0 flag exit-0 · attr-landing 92de58f.

honest-caveat

  • #53 WRITE-lane 4/5 lane (chỉ T2 tự ghi đĩa) — nội-dung không mất (journal), em-main scribe on-behalf VERBATIM, R1 verify 0-miss. Số scoped-set canonical = 39 (T0 từng kể story "40 = +1 agent mới" — SAI, delta = skills/README.md ngoài glob; R1 nail).
  • 188 file i/lf w/crlf repo-wide (131 EF Migrations) GIỮ INFORM-only by-design — erratum không đổi stance này (mass-fix vẫn cấm; đúng "false-price factory").