# spec-review — REVIEW độc-lập adap 2 errata 16-07 (Harness-9 workflow-2 · S129) > 2 lane reviewer READ-ONLY + PROPOSE-only: cấm Edit/Write ngoài `sub-reviewer-.md` của MÌNH trong run-dir này. Mọi phán-quyết = TỰ ĐO từ đĩa (sub-file là ĐỐI-TƯỢNG review, không phải nguồn tin). Ghi full-detail vào sub-file TRONG LÚC LÀM (chống garble #53 — implement vừa dính ×2). Dòng-1 sub-file = `VERDICT: GO / GO-WITH-FIXES / NO-GO`. Return 4-field NHỎ. ## PACK (memory-slice — đọc trước khi làm) 1. gotcha#30: `.ps1` pure-ASCII — grade diff phải check ASCII. 2. Citation-trap use⟂mention (mark RC-...17-23-10): file NÓI VỀ pattern cấm ≠ file DÙNG nó — đừng flag mention-site. 3. Đọc CR = BYTE-level (`[IO.File]::ReadAllBytes`); Get-Content (cả -Raw) drop CR = vacuous. PS5.1 `Set-Content -Encoding UTF8` ghi BOM; `[IO.File]::WriteAllText` default UTF8-no-BOM — đổi writer = đổi byte đầu file ⇒ PHẢI check reader-side trước khi GO. 4. 188 file `i/lf w/crlf` repo-wide = INFORM-only by-design (131 EF Migrations) — cấm đề-xuất mass-fix. 5. S121 W0.6: CRLF-fatality REFUTED tại SE (scope agents/ + 1 win32 build) — eol-check = HYGIENE exit-0, đừng nâng thành fatal-gate. 6. Bẫy `grep -c` đếm DÒNG vs `grep -o | wc -l` đếm occurrence (mega-line). 7. Meta-count class (S119): con-số tổng phải TỰ ĐẾM LẠI — discrepancy 39-vs-40 đang treo. 8. Đổi writer/hằng-số = grep MỌI consumer cùng commit (S87). 9. Review từng bắt honesty-PRESENTATION gap (S81) — soi cả CÁCH KỂ. 10. Return 4-field: findings · checklistEvidence · subMdPath · memoryDelta{task,verdict,learned,surprise}. ## Bối-cảnh - Đối-tượng: run-dir `2026-07-16-S129-adap-errata-16-07` — `implement-synthesis.md` + `sub-investigator-codebase-{0,1,2}.md`. 🔴 sub-0/sub-1 = **ON-BEHALF transcript** (lane không tự ghi — em-main chép VERBATIM từ journal); sub-2 = lane tự ghi. - Nguồn broadcast: `broadcasts/inbox/2026-07-16-Governance-erratum-eol-metric-hai-chieu-va-bon-lo-moi.md` (erratum) + `broadcasts/inbox/2026-07-16-Governance-tong-hop-loi-da-bat-va-sua-bay-lop-sau-phep-thu.md` (compendium). - Journal implement (cho integrity-check): `C:/Users/pqhuy/.claude/projects/D--Dropbox-CONG-VIEC-SOLUTION-SOLUTION-ERP/a4febe5b-cfe6-4f95-8764-5df97dff3ad7/subagents/workflows/wf_3fccd7d1-b63/journal.jsonl` (đọc bằng python utf-8). ## §R0 — RE-VERIFY T0+T1 + grade 2 diff-proposal (ghi `sub-reviewer-0.md`) Tự đo lại, dán lệnh + output: - (a) **Sweep-hole-hunt:** grep độc-lập góc KHÁC T0 — `git grep -n "ls-files --eol"` trên *.ps1 *.md *.js *.yml + `git grep -n "git push"` — phân use⟂mention; verdict T0-claim "0 defect site / 8 graded" ĐỨNG/ĐỔ. - (b) `git ls-files --eol | grep 'i/-text' | grep -v 'attr/-text'` → phải 0; đếm tổng i/-text. - (c) `.mfe-state.json`: `git ls-files --eol .claude/agent-memory/.mfe-state.json` → `i/lf w/crlf`? `git status --porcelain` file đó rỗng? Đếm CR thật bằng byte-read/python (KHÔNG Get-Content). - (d) `.gitattributes`: `git log --format='%h %cI' --follow -- .gitattributes` — xác-nhận 92de58f = class-wide landing 2026-07-15 vs 08c7036 = first-touch 2026-06-15 (xem nội-dung từng bản bằng `git show SHA:.gitattributes`). - (e) `session-end.md` khối push §5.0/§5.2: xác-nhận so-SỐ if/then/else + eol-check exit-0 INFORM (không chain vào push). - (f) **GRADE P1** (đề-xuất đổi `mfe-eval.ps1:204` Set-Content → WriteAllText LF): đọc quanh :204 + grep MỌI reader của `.mfe-state.json` toàn repo → BOM-risk reader-side (PACK-3)? Lợi-ích (xoá churn worktree) có đáng không? → GO (kèm diff ASCII chính-xác từng dòng) / NO-GO / DEFER + lý-do. - (g) **GRADE P2** (1 câu ASCII vào header `agent-frontmatter-eol-check.ps1` block "WHY IT STILL EXISTS" :25-31 — khai W0.6 = EOL-only A/B, chống over-read trục-quote): đúng chỗ? có mâu-thuẫn severity-ladder/refutation-scope không? → GO (kèm câu + vị-trí dòng chèn) / NO-GO. Return findings = verdict tổng + per-probe ĐỨNG/ĐỔ + per-diff GO/NO-GO; checklistEvidence = số đo (a)-(g) 1-dòng-mỗi-mục. ## §R1 — ADVERSARIAL T2 + integrity + nail discrepancy (ghi `sub-reviewer-1.md`) - (a) **Spot-check 4 evidence-cite** của sub-2 bảng-A từ đĩa: `governance-detectors.ps1:598-601` Test-Quoted đúng dòng? `crystallized-backfill.ps1:25` đúng chữ "convention, NOT measured"? `memory-budget.json` harness_floor note RETIRED? `ACTIVE-MARKS.md:25` "fault-inject 4 bộ, 24/24"? — cite lệch dòng/chữ = FLAG. - (b) **Adversarial refute "7/7 ADOPTED · 0 GAP ẩn":** tìm lớp nào evidence = lesson-trong-MEMORY mà KHÔNG có cổng-máy (S122: lesson-trong-context KHÔNG tự bật; memory ≠ enforcement) → hạ nấc + nói thẳng. Soi riêng lớp-1 lập-luận "N/A-by-design" — hợp-lệ hay Goodhart rời-tập-đo? - (c) **Quick-test integrity:** re-run rẻ nhất 1 test (Test-Quoted locate + :745 use-site); soi output 2 test kia có dấu-hiệu bịa không (archive-gate "251 resolved 251" · eol-check "FmCr=4" — plausible vs codebase?). - (d) **Nail 39-vs-40:** T0 nói scoped-set 40 file, T2 eol-check in 39 (15+18+6). Tự đếm: `git ls-files '.claude/agents/*.md'` + commands + skills SKILL.md; chú-ý eol-check glob agents/*.md KHÔNG recurse + README.md IN-scope (:67-69) — nguồn lệch 1 = gì, số ĐÚNG = gì, bên nào đếm sai. - (e) **On-behalf integrity:** đối-chiếu 2-3 đoạn sub-0/sub-1 vs journal.jsonl (path ở §Bối-cảnh) — verbatim? marker đủ rõ? - (f) **Omission-hunt:** erratum §"Bạn phải làm gì" 5 điểm — điểm nào CHƯA lane nào chạm? Compendium có §4/§5/§6 mà T2 bỏ sót không (đọc TRỌN nguồn)? T2 khai map-only có chỗ nào thực ra PHẢI chạy? Return findings = verdict + FLAG-list (mỗi FLAG 1 dòng file:line); checklistEvidence = (a)-(f) 1-dòng-mỗi-mục.