20 KiB
WAL — auto-generated, không sửa tay
updated: 2026-07-15T13:27 | session: S122 | branch: main goal: Adap 6 broadcast AI_INFRA (H23 · H24 · H22-wal-defect 5-sàn · H22-push-guard · EOL/CRLF · owner-sign). Spec v3 CHỐT (GO-WITH-FIXES · fix#8 anh ký · gate-blocker=0). Phiên này = CHẠY WAVE W0→W6. Đọc v2 làm thân + v3-PATCH thay-thế; v1 CẤM CHẠY.
chain:
[x] S119 điều-tra: check-email → invest 5-lane → spec v1 → review 4-lane → fable-real gate → v3-PATCH → anh ký fix#8 → commit-chốt 4727d16 ĐÃ PUSH
[x] S120 /tiep reconcile: ground-truth thắng WAL 3 chỗ + vá v3-GAP → FIX #3-bis (4 ca, test ĐÁY range) ghi vào v3-PATCH
[x] W0.0 re-measure (K=0/NONWAL=0/porc=2, phân-loại đủ) · W0.1 .gitattributes CLASS (check-attr unspecified→text:auto eol:lf; 19/19 binary attr/-text; fault-inject gỡ .docx→"text:auto" = CÓ RĂNG) · W0.2 scoped-gate=0 VACUOUS khai thật (repo-wide 188 INFORM-only, CẤM mass-checkout)
[x] W0.3 commit 92de58f — ca(0) fire · hook-interlock ĐẶT SAU Set-Location (đặt đầu file = soi nhầm CWD) · chứng RĂNG 2 CHIỀU (a)không-rebase→VẪN commit (b)có-rebase→0 commit+giữ dirty · fault-inject 4 cây tạm: ca2 v2-cũ→REBASE→exit 0 KHÔNG crash nhưng commit gộp thừa-kế msg "wal:"→deadlock XÁC NHẬN
[x] W0.4+W0.5 commit 48e0d26 — README:52 gỡ claim STALE (khai 3 đường: hmw.js gate / raw Workflow ❌ / raw Agent ❌ + kẽ CÒN-LẠI) · baseline orphan naive13/dual8/scoped1={S119} khớp CHÍNH XÁC dự-báo FIX #4
[x] W0.6 XONG @S121 sau restart — verdict CRLF-tolerant (W0-evidence §7.4/§7.5/§7.6). LF-probe xanh TRƯỚC ⇒ CRLF ăn 4/4 tầng (discovery→parse→spawn→exec); neo = token 45248/45240 lệch 8 = chênh prompt (KHÔNG phải "không báo lỗi"). ⇒ L3 nhánh LF-only-regex BỊ BÁC · R4 HẠ MẠNH KHÔNG rút (a)+(c) giữ chân riêng, chỉ (b) đổ · 2 probe ĐÃ XOÁ, porcelain sạch probe. Khai chặt: tolerant mức HÀNH-VI, phạm-vi agents/ + 1 build win32; commands//skills//.ps1 CHƯA phủ. 🆕 #53 tái-hiện 2/2 (tool_uses=0 + bịa dòng WAL) — KHÔNG nhiễm verdict (neo = metadata harness) → vào adap-report. nhánh-3 (registry=ảnh-chụp khởi-phiên) xác-nhận LẦN 2 ⇒ memory harness4 thu hẹp @session-end
[x] W1 XONG @S121 — wf wf_de36dea9-265 4/4 lane 0-error (694k tok, 159 tool, 21') · engine /hmw RUN-TRACE (KHÔNG raw-Workflow) · role-less ×4 · containment SẠCH (git status = đúng 4 file đích + 4 sub-task-.md, 0 rò WAL/agent-memory/STATUS/spec). LEAD ĐÃ TỰ CHẠY LẠI CẢ 4, KHÔNG tin return: detectors TOTAL 42→49 (≥46) + permission-matrix FIRE (title-stale 76d) + menu=54/policy=MISSING fail-loud + exit 0 + stderr 0 (lane ① tự bắt bug $M≡$m PS case-insensitive mà exit 0 CHE — chỉ stderr mới lộ) · eol-check GREEN-BUT-VACUOUS tự khai + teeth lead tự inject 276 CR → FLAG, gỡ → 0 · wal-recovery 4/4 ca · 30 assert · 0 fail, có counterfactual tái-hiện DEADLOCK rebase-exit=0 + assert sut-has-no-NONWAL-param bằng Get-Command reflection (KHÔNG grep = né tự-tham-chiếu W0.4#1) · spawn-model-audit FAIL-LOUD "expected constant missing (W2 chua land)" + teeth lead inject claude-opus-9-9 → FLAG mismatch, sửa → hết. 4/4 non-ASCII = 0.
🔴 2 LỖI LEAD @S121 (đi vào adap-report): (a) Sàn-1 LỆCH: marker wf: đăng-ký SAU phóng (luật = TRƯỚC, run.md:8). (b) 🔴 KHẲNG-ĐỊNH FACT-TRÊN-ĐĨA MÀ KHÔNG ĐO ĐĨA: lead phán "backfill [carry:*] = ORPHAN chưa ai làm" → SAI, đã có 7 khoá từ 4727d16 (S119, đã push). Cơ-chế: rà BẢNG WAVE thấy không ai được giao ⇒ suy ra chưa làm — "không wave nào sở-hữu" ≠ "chưa có trên đĩa". Brief lead còn 4 tiền-đề sai (config path · STATUS 07-14 vs thật 07-15 · carry · độ-dài) — lane ① re-verify đĩa và vá hết. Bẫy: grep -c đếm DÒNG (=1) vs grep -o|wc -l đếm occurrence (=8) trên mega-line.
[ ] GAP THẬT thay claim sai (lane ① tìm, lead verify đĩa): carry-age vacuous CẤU-TRÚC — 45 logic-segment nhưng carry-lines=1 ⇒ streak≡1 ⇒ 0 fire vĩnh viễn kể cả sau W2. Chứng: tra-bui-relogin chỉ đóng dấu seg#0(S119), mà seg#2(S118) nhắc đúng việc đó KHÔNG dấu ⇒ tuổi thật ≥2, detector đọc 1. ⇒ lỗ = thiếu nghi-thức RE-STAMP mỗi phiên (§Q3 = no-retrofit ⇒ chỉ còn đường này) ⇒ giao W3 session-end.md, KHÔNG phải W2.
[x] W2 XONG @S121 — commit 00a1c67 (9 file, +296/−14, 1 commit nguyên-tử đúng spec; commit TRONG lượt để hook không nuốt memory-budget.json thành wal: riêng = vỡ atomic). Gồm: hmw.js (Sàn-1 gate + VALID_ROLES 12→14 + PA-2a TIER2_EXPECTED_FULL_ID='claude-opus-4-8' + H23 note giữ nấc CHƯA-VERIFY) · 3 cờ wrapper (args.run 0→3 hit; wrapper thứ-4 = raw-invoke em-main KHÔNG có file ⇒ gate chặn thẳng) · 2 vai MỚI lead-view-auditor+lead-omission-auditor (0-CR, block-scalar, NO Write/Edit) · h24_cadence{6,15,3} + lead_self_audit.flag_classes 10-class enum ĐÓNG · .claude/governance/.session-counter.json seed UNTICKED trung-thực (counter=0, ngoài 3 path hook CÓ CHỦ-ĐÍCH) · STATUS Sub-agents 12→14 + row Policies 216 GROUND TỪ MÃ (|MenuKeys.All|54 × Actions4, Program.cs:82-89 — Policies = DERIVED, 2 row BUỘC đổi cùng).
✅ 14/14/14 (roster/VALID_ROLES/agents−README) = acceptance ② EOL. Glob thô=15 ⇒ xác nhận R2-C1 (acceptance CŨ ls agents/*.md=14 sẽ FAIL trên impl ĐÚNG).
✅ Hợp-đồng chéo W1↔W2 khép CẢ HAI CHIỀU, đo bằng chính script W1: detector h24_cadence missing→M = light_every = 6 (read from config) · spawn-model-audit expected constant missing→[OK] claude-opus-4-8 = owner-ratified · GAP-3 policy=MISSING→216 + BẮT NGAY permission-matrix/SKILL.md:3 writes 240 policy but canonical=216 (+:81 writes 48) ⇒ TOTAL 49→50 (−1 cadence, +2 policy) = số cộng khớp, không rác. eol-check tự nhận 2 vai mới: scoped 37→39 (glob, không hardcode).
✅ FAULT-INJECT Sàn-1 2 CHIỀU (bài học W0.3 — 1 chiều thì điều-kiện viết nhầm vẫn PASS): (b) 3 task + thiếu args.run → THROW, agent_count=0, token=0, 14ms (chặn TRƯỚC spawn) · (a) 2 task + thiếu cờ → gate IM, 2/2 sub return ⇒ không over-fire, ngưỡng đúng ≥3 (viết nhầm if(!wave) thiếu ngưỡng ⇒ /fable-real 1-lane chết oan).
🆕 Sub bắt khiếm-khuyết SCHEMA hmw (vào adap-report): task cấm-đọc-file ⟂ schema BẮT BUỘC checklistEvidence đòi file:line = mâu-thuẫn cấu-trúc ⇒ schema-pressure kéo agent CHẾ dữ-liệu. Sub kháng được (khai N/A + lý-do) — cùng họ 2 probe W0.6 bịa với tool_uses=0. 🔸 Sub cũng khai đúng: nó KHÔNG tự verify được gate (điều-kiện quyết ở SPAWNER trước khi nó sinh ra ⇒ tự-dán PASS = suy từ vắng-mặt-tín-hiệu) ⇒ giá-trị phép đo đến từ em-main thấy CẢ HAI phía, không từ lời sub.
[x] ✅ RESTART + spawn-probe 14/14 SỐNG @S122 (13:27) — Agent-tool registry: 14/14 trả ĐÚNG ALIVE|<role>, 0 error 0 garble. 2 vai mới lead-view-auditor 26284 tok + lead-omission-auditor 26469 tok = LEAN NHẤT roster (cap mem-sub 60K ⇒ dư); đối-chiếu implementer-backend 78808 = VƯỢT cap 60K (soi §2.1.2, ngoài wave). 🔸 Khai chặt 2 điều: (a) probe phủ đường Agent-tool registry THÔI — đường hmw.js VALID_ROLES→agentType CHƯA phủ (W2 đổi CẢ HAI bề mặt) ⇒ chỉ chứng khi workflow THẬT gọi 2 vai mới. (b) tool_uses=0 = THEO LỆNH (em cấm gọi tool; câu hỏi không cần tool), KHÔNG phải chữ-ký #53 (=tool_uses=0 + BỊA đã-làm-việc).
[x] ✅ W3.0 XONG @S122 — wf wf_5ce007c4-980 7 lane investigator-codebase RUN-TRACE (engine /hmw, KHÔNG raw-Workflow) · 7/7 done · 0 error · 1 RỖNG (parallel[3] schema-fail) · 526s · 836K tok · Sàn-1 marker đăng-ký ĐÚNG NHỊP TRƯỚC phóng (vá lỗi W1@S121 = WAL:13a). Containment SẠCH: porcelain rỗng sau P2 · 7 folder đích 0-chạm · 0 file synthesis do sub ghi ⇒ synthesis 100% lead single-writer (B6). Commit 22ea8c5 (10 file, +604/−3).
⚠️ LỖI LEAD #3 @S122 (tự bắt, → adap-report): ghi Commit 8fb2c9d vào WAL TRƯỚC KHI commit = SHA BỊA — đúng lớp WAL:13(b) "khẳng-định fact-trên-đĩa mà KHÔNG đo đĩa", lặp lại y nguyên 1 ngày sau khi ghi bài học đó. + LỖI #4: git commit -m @'…'@ = here-string PowerShell dùng trong Bash ⇒ commit 9107b1f subject dính @ thừa ⇒ amend heredoc đúng → 22ea8c5. (Tool-desc Bash có cảnh-báo sẵn đúng cú-pháp này — đọc mà vẫn sai.) 📌 Nấc cấu-trúc: WAL nằm TRONG commit ⇒ KHÔNG THỂ chứa SHA của chính nó (amend → SHA đổi → lặp vô-tận) ⇒ tham-chiếu SHA PHẢI rơi vào commit SAU; đây là lý-do đúng để KHÔNG amend tiếp.
🔴 KẾT-QUẢ LẬT TIỀN-ĐỀ CỦA CHÍNH RUN — 0/7 là việc mất; 7/7 ĐÃ XONG, chỉ ghi synthesis SAI CHỖ. 6 folder có ## synthesis trong THÂN run.md (dạng-3) · pe-negative-quote có kết-quả rải trong ## Stages+## wf run-id (dạng-4, run.md:19 ghi thẳng "✅ PIPELINE COMPLETE — shipped + live-verified", có cả cicd PASS + bundle-hash + smoke 200). ⇒ thực-địa ≥4 DẠNG ghi synthesis, doc chỉ thừa-nhận 2 ⇒ mệnh-đề C8 (dual) mà FIX#4 bắt chép vào §0 là CHƯA ĐỦ, cần tri-accept. Gốc: orphan-authority workflows/README.md:20 hỏi "đã harvest chưa" nhưng đo TÊN FILE ⇒ đo cái DỄ ĐO, không phải cái CẦN ĐO. Bồi: 8fa2fcc message khoe "close-review run.md synthesis [H2 gate]" mà git show --stat KHÔNG chạm folder ⇒ H2 đã soi + coi ĐÓNG, chỉ lệch tên file. 🔴 KHÔNG phải convention-cũ-một-thời-kỳ: cùng ngày 07-12, h22-wal-adopt ghi file phẳng còn S112-* ghi trong run.md ⇒ thói-quen không nhất-quán.
⚠️ LEAD TỰ NHẬN 2 LỖI: (a) báo anh "đo lại tái-hiện CHÍNH XÁC dự-báo FIX#4" rồi lấy trùng-khớp làm chỗ dựa — con-số đúng nhưng CẢ FIX#4 LẪN LEAD đều đo TÊN FILE, sai hướng. (b) memoryPack bơm cho sub ghi "S113/pe-negative-quote" — SAI, là S116 (run.md:1); sub KHÔNG bị dắt (tự truy git ra đúng) ⇒ lớp lỗi lead-đưa-tiền-đề-sai-cho-sub, lần này thoát, lần sau chưa chắc.
✅ ĐO TRƯỚC/SAU: naive 13→7 · dual-accept 8→2 (còn S119 wave-đang-chạy + S122 run này) · 7 tồn-đọng → 0 · 7/7 file non-zero 5.7–8.2KB (verify byte — bẫy #53). Cách làm = COPY additive, run.md GIỮ NGUYÊN + file mới tự khai "bản gốc trong run.md mới là CHUẨN" ⇒ 0 rewrite history. Tên file theo convention ĐO ĐƯỢC từ 17 file sẵn có (implement×5·review×4·audit×2·…).
🧹 +2 probe dir RỖNG đã rmdir (_crlf-probe/_lf-probe) ⇒ agent-memory 16→14 khớp roster. Chứng lại: git MÙ với dir rỗng ⇒ porcelain sạch = DƯƠNG-GIẢ, không phải bằng-chứng đã dọn.
📌 Khử mâu-thuẫn "làm cả hai" (anh chốt) bằng đúng khuôn C8: tri-accept = lưới PHÁT-HIỆN cho bản CŨ, KHÔNG phải giấy phép VIẾT bản MỚI (C8 vốn vận-hành y hệt: tha di-sản, cấm viết mới kiểu cũ) ⇒ tín-hiệu phiên sau vẫn ĐƠN-NGHĨA. → áp vào W3 file#1 (tiep.md §0) + workflows/README.md:19-20.
🆕 → adap-report: "orphan" trong thiết-kế H22/H18-B đo TÊN FILE không đo NỘI DUNG — SE đo: 8 dương-giả / 25 run = 32%, và folder ghi chép ĐẦY-ĐỦ NHẤT vẫn bị xếp orphan ⇒ giới-hạn của ĐỊNH-NGHĨA orphan, KHÔNG phải lỗi tailor SE.
[ ] W3 SERIAL 8 file (WAL cũ ghi "5 file" = SAI — /tiep S122 đo đĩa bằng pattern FIX#6): 1 tiep.md §0 dual-accept VERBATIM C8 · 2 session-start.md (0.6b registry-probe + 0.7 + counter + 2 vai + H23 note + sweep 7 hit :2/:32/:35/:66/:73/:74/:202) · 3 session-end.md (§5.2 1-LƯỢT + sentinel + Sàn-5 + validator + counter + 🆕 nghi-thức RE-STAMP WAL:14 + sweep 2 hit :2/:83) · 4 fable-clone.md GAP#6 = R2-C3 §3.2 (đo: 0 hit roster ⇒ KHÔNG phải việc sweep) · 5 agents/README.md (8 hit) · 6 🆕 fable-real-runbook.md (8 hit — v3 FIX#6 GIAO ĐÍCH-DANH W3, WAL rớt) · 7 🆕 sleep-recovery-memory-l2.md:34 all="9 sub"→10 (rớt office-document S107; 2 monitor H1/H2 loại CÓ CHỦ-ĐÍCH — đo đĩa: 14 dir ký-ức thật) · 8 🆕 workflows/README.md:36 "12 sub"→B1-trỏ. 🔸 fable-real.md KHÔNG vào W3: FIX#6 giao nhưng đo = 0 hit; cờ args.run đã land W2 (v2 §3.2:209 giao Sàn-1) ⇒ giao W3 = thừa. → W4 detector-fire (PHẢI in permission-matrix/SKILL.md TRƯỚC vá) → W5 harness-11-engine
[ ] W6 push (🔴 squash→count→push CHAINED 1 LƯỢT; K runtime, CẤM hardcode) → adap-report ×4 + adap-request R1-R4 + send-email AI_INFRA + stamp-mark
🔴 /tiep S122 — 4 phát-hiện NGOÀI chain (đo đĩa, đi vào adap-report): (1) W3 rớt 3 file (đã vá dòng W3 trên) — cơ-chế: WAL liệt W3 từ trí-nhớ về spec, KHÔNG đọc lại spec; FIX#6 sống ở v3-PATCH còn bảng wave ở v2 = 2 nguồn, lead tóm-tắt bên này quên đối-chiếu bên kia ⇒ đúng gap-workstate-drop, đúng lớp mà lead-omission-auditor sinh ra để bắt — vai vừa land W2 và CHƯA từng chạy. (2) 🔴 FIX#6 acceptance "0 hit sống" BẤT-KHẢ-THI: lead-view-auditor.md:47 = ví-dụ CÓ CHỦ-ĐÍCH ("agents/README ghi 12 sub khi roster = 14") trong bảng flag-class của chính vai đi bắt stale ⇒ sửa = phá doc, không sửa = acceptance FAIL vĩnh-viễn. Cùng họ R2-C1 (ls=14) + R3-M3 (TOTAL≥46) = acceptance viết bằng LITERAL nên đo cả phần CỐ-Ý khớp ⇒ reword "0 hit sống ngoài lịch-sử/archive + allowlist ví-dụ-có-chủ-đích" (tiền-lệ WAL:29 = lead sửa acceptance cơ-học rồi báo). (3) W0.6 "2 probe ĐÃ XOÁ" mới đúng NỬA: .claude/agents/_*probe* sạch ✅ NHƯNG .claude/agent-memory/_crlf-probe/ + _lf-probe/ CÒN — 2 dir RỖNG, chưa từng commit, git MÙ với dir rỗng ⇒ porcelain sạch = DƯƠNG-GIẢ, không phải bằng-chứng đã dọn; công-cụ quét-đĩa (sleep-recovery Phase 0.2 · measure-agent-memory.ps1) đếm 16 thay 14 ⇒ rmdir. = view-residual-asym (xoá định-nghĩa, sót ký-ức). (4) ✅ ACTIVE-MARKS:19 anh CHỐT @S122 = giữ bản ký nguyên-vẹn + thêm chú-thích dưới mark (roster nay 14; "12" = số lúc ký 11-07; ý-định = "∈ roster" KHÔNG phải "∈ đúng 12 vai đó" ⇒ /fable-real|/fable-clone hợp-lệ cả 14) — P4/P8 giữ, sweep allowlist dòng mark ⇒ W3 file #9.
🔴 NGÃ BA S122 — anh CHỐT: ĐÓNG THẬT 7 orphan bằng retro-harvest (KHÔNG scope, KHÔNG allowlist). Lý-do fork: FIX#4 TỰ MÂU-THUẪN — thân ghi "W0.5: mtime→git log -1 --format=%cI so mốc 3fde8af" (=SCOPE) nhưng acceptance ngay dưới ghi "scan ⇒ {S119} sau khi ĐÓNG 7 tồn-đọng" (=ĐÓNG); đây vốn là 2 nhánh loại-trừ v1:110 nêu rõ ("Đóng … HOẶC scope"), FIX#4 lấy mỗi nhánh 1 nơi. Scope bị loại vì run bỏ-quên 2 phiên sau cũng IM = đúng kịch-bản Sàn-3 sinh ra để chống. Bịa synthesis bị cấm (v1:110 Goodhart/R3). ⇒ W3.0 MỚI (trước file #1): retro-harvest 7 run — nội-dung partial-honest (việc ĐÃ ship commit nào; synthesis viết muộn @S122), 🔴 synthesis = EM-MAIN single-writer (workflows/README.md:17 + B6 — sub CẤM ghi *-synthesis.md) ⇒ sub chỉ ĐỌC+return, lead ghi. Đo lại S122 tái-hiện CHÍNH XÁC dự-báo FIX#4: naive 13 / dual-accept 8 / C8 cứu 5 = đúng 5 folder h10+h910 ⇒ mệnh-đề C8 BẮT BUỘC vào §0, thiếu = 5 dương-giả lượt đầu.
🔴 Nhóm chứng LF CỨU 1 kết-luận SAI (2 lần, ghi adap-report): @S120 probe LF (0 byte CR) chết y hệt ⇒ spec 1-probe sẽ kết "CRLF-fatal" SAI — sai theo hướng CÓ LỢI cho câu chuyện (xác nhận L3 + giữ R4 mạnh). @S121 sự-thật NGƯỢC HẲN: tolerant. ⇒ thiết-kế 1-probe đã suýt gửi hub 1 claim SAI.
🔴 2 lỗi lead tự mắc @W0.4 (đã ghi W0-evidence §5, đi nguyên vào adap-report): (a) gate grep-chuỗi chạy trên chính file nó kiểm = TỰ-THAM-CHIẾU (trích claim cũ → FAIL; viết literal regex → FAIL lần 2) (b) meta-count tái-phạm: bảng tự in sẵn "PASS" trong khi số đo nói FAIL ⇒ pass/fail PHẢI TÍNH, cấm nhãn cứng.
🔴 Hook wal-flush.ps1:7 phủ 3 path (.claude/WAL.md · agent-memory/ · workflows/runs/) — KHÔNG phủ .claude/agents/ · broadcasts/ · .gitattributes/scripts/docs. Đáy range HIỆN = commit thường (92de58f) ⇒ mọi wal: sinh sau rơi ca(3) rebase+fixup an-toàn @W6.
next: 🔴 ANH RESTART CLI → /tiep → spawn-probe 14/14 SỐNG (2 vai mới — bằng-chứng falsifiable DUY NHẤT, static-check KHÔNG đủ) → W3 SERIAL 5 file (tiep §0 dual-accept · session-start 0.6b registry-probe + 0.7 + counter-tick + 2 vai · session-end §5.2 · fable-clone GAP#6 · agents/README) + 🆕 nghi-thức RE-STAMP carry (lỗ thật thay claim-orphan-sai) + session-start.md còn "roster 12" stale → W4 detector-fire (nay CHẮC fire: permission-matrix 6 dòng gồm 240-policy + 60-menu + title-stale-76d) → W5 harness-11-engine + bug $userMemDir → W6 push
🔴 W2 PHẢI SỬA 2 ACCEPTANCE STALE trước khi dùng: (a) h24_cadence path THẬT = .claude/agent-memory/memory-budget.json (spec chỉ ghi basename ⇒ mơ-hồ; land sai ⇒ ① fail-loud vĩnh viễn). (b) acceptance "STATUS.md:6 in 2026-07-14" TỰ LÃO-HOÁ ngay trong ngày (thật = 07-15 sau 4727d16) ⇒ đổi thành "in ĐÚNG ngày ở anchor STATUS.md:6", cấm literal.
🔴 Bug tiền-tồn NGOÀI lane (lane ① khai, KHÔNG sửa vì đổi baseline): governance-detectors.ps1 $userMemDir hardcode path tuyệt-đối C:\Users\pqhuy\..., không derive $RepoRoot ⇒ -RepoRoot <cây-tạm> VẪN đọc user-memory THẬT ⇒ fault-inject C1-wikilink KHÔNG cô-lập được. Xử ở W5 hoặc phiên riêng.
📌 W4 cần biết (lane ① khai): docs/changelog/skill-audit-2026-05-late.md:43 có phán-quyết audit CŨ ghi đúng anchor này là "historical, KHÔNG drift" ⇒ H24/W4 đang LẬT chính-sách có chủ-đích, KHÔNG phải phát-hiện-mới. Nói đúng nấc khi báo hub.
verify: K=$(git rev-list --count origin/main..HEAD) ; git log --format='%s' origin/main..HEAD | tail -1 [đáy range → ca 0/1/2/3; HIỆN = "[CLAUDE] Infra: W0 pre-flight…" = commit thường ⇒ ca(3)] ; git status --porcelain ; ls .claude/agents/_probe 2>&1 [PHẢI "No such file" — W0.6 xong, 2 probe đã xoá] ; grep -c "CRLF-tolerant" .claude/workflows/runs/2026-07-15-S119-adap-6-broadcast/W0-evidence-15-07-2026.md [>0 = verdict đã ghi] ; ls scripts/agent-frontmatter-eol-check.ps1 scripts/wal-recovery-test.ps1 scripts/spawn-model-audit.ps1 2>&1 ; ls .claude/workflows/runs/2026-07-15-S119-adap-6-broadcast/sub-task-*.md 2>&1 [W1 landed?]