[CLAUDE] Docs: W0.6 setup - them probe LF lam NHOM CHUNG (lech spec co chu-dich) + WAL cho restart

W0.6 = bao-dam falsifiable DUY NHAT cua ca wave (broadcast 4(d): "moi kiem static-text deu
KHONG falsifiable; chi spawn-probe / assert-registry moi that-su chung-minh").

LECH SPEC CO CHU-DICH - spec v2 W0.6 chi dung 1 probe (CRLF) -> RESTART -> spawn. LO: neu spawn
FAIL, quan-sat do KHONG phan-biet duoc 2 gia-thuyet: "reader LF-only nen chet" vs "registry chua
nap file moi". Mot quan-sat, hai gia-thuyet => vo-nghia.
VA: dung them _lf-probe.md GIONG HET, khac DUNG 1 BIEN = line-ending.
  CRLF ok + LF ok  -> CRLF-tolerant (khoi restart)
  CRLF x  + LF ok  -> CRLF-fatal CHAC-CHAN (LF chung-minh hot-reload CO chay)
  CRLF x  + LF x   -> hot-reload KHONG chay -> chi nhanh nay moi can RESTART

Kiem bien don (soi byte, khong tin sed): _crlf-probe CR=276 LF=276 ; _lf-probe CR=0 LF=276 ;
od -c xac nhan "-  -  -  \r  \n  n  a  m  e  :  _  c  r  l  f  -  p  r  o  b  e  \r  \n" ;
diff <(bo CR, bo dong name:) 2 file -> GIONG HET => bien duy-nhat = line-ending.

LUOT-1 (TRUOC restart) = nhanh 3: CA 2 probe not-found. Available list = 19 sub + plugin co
tu dau phien, khong co probe nao.
>>> NHOM CHUNG CUU 1 KET-LUAN SAI: _lf-probe THUAN LF (0 byte CR) cung chet y het => nguyen-nhan
KHONG PHAI CRLF. Neu lam dung spec (1 probe), lead se thay _crlf-probe chet va rat de ket-luan
"CRLF-fatal" - SAI, va sai THEO HUONG CO LOI cho cau chuyen (xac nhan L3 + giu R4 nac manh).

DO DUOC (moi, S120): registry agent = ANH-CHUP luc khoi phien; KHONG hot-reload agent file MOI.
Doi-chieu memory project_harness4_two_tier_model: ghi "agent file MOI = hot-reload OK" (verified
S107) KEM canh-bao ENV-DEPENDENT (hub ra ket-qua NGUOC S110). S120 do KHONG hot-reload => canh-bao
ENV-DEP xac-nhan lan nua, lan nay ngay trong repo SE. Cau "nghi ngo -> restart" cua memory = DUNG.
=> de-nghi thu hep memory o session-end: "hot-reload agent-file-moi = ENV-DEP, SE do KHONG an @S120".

2 probe = UNTRACKED CO Y. CAM `git add` - `.gitattributes` `* text=auto eol=lf` se NORMALIZE
mat CR = giet thi-nghiem. Hook khong phu .claude/agents/ nen khong tu commit.

WAL: ghim 3 buoc sau restart (LF TRUOC -> CRLF sau -> xoa 2 probe), + verify lenh kiem 276 CR
con nguyen. Day range hien = commit thuong 92de58f => moi wal: sinh sau roi ca(3) an-toan @W6.

0 prod-code, 0 migration, 0 FE, 0 test-change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-15 11:52:01 +07:00
parent 48e0d26ee9
commit c5c68de3bb
2 changed files with 62 additions and 18 deletions

View File

@ -1,22 +1,26 @@
# WAL — auto-generated, không sửa tay
updated: 2026-07-15T11:32 | session: S120 | branch: main
updated: 2026-07-15T11:52 | session: S120 | 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 (7 broadcast + 14 file run-folder now TRACKED)
[x] S120 /tiep reconcile: ground-truth thắng WAL 3 chỗ (xem GT bên dưới) + vá v3-GAP → FIX #3-bis ghi vào v3-PATCH (4 ca, test ĐÁY range)
[!] W0 SOLO — W0.0 re-measure [đo 11:30: K=0 NONWAL=0 porcelain=0] → W0.1 gitattributes → W0.2 scoped-only → W0.3 [4-ca] reset--soft + hook-interlock + commit-chốt CÙNG 1 TURN → W0.4 README:52 → W0.5 git-log-%cI → W0.6 spawn-probe CRLF + RESTART
[ ] W1 (3 lane) + W1b spawn-model-audit.ps1 → W2 GỘP-1-COMMIT (hmw.js 5 hạng-mục + 4 cờ wrapper + 2 agent MỚI + h24_cadence + .session-counter + STATUS Sub-agents 12→14 + row Policies) + RESTART
[ ] W3 SERIAL 5 file (tiep §0 → session-start → session-end → fable-clone → agents/README) → 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 tính runtime, CẤM hardcode) → adap-report ×4 + adap-request R1-R4 + send-email AI_INFRA + stamp-mark
[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
[!] W0.6 spawn-probe CRLF — 🔴 SETUP XONG, CHỜ ANH RESTART CLI. Lượt-1 trước restart: CẢ 2 probe not-found ⇒ nhánh-3 (registry = ảnh-chụp khởi-phiên, KHÔNG hot-reload agent MỚI @S120)
[ ] W1 (3 lane) + W1b spawn-model-audit.ps1 → W2 GỘP-1-COMMIT (hmw.js 5 hạng-mục + 4 cờ wrapper + 2 agent MỚI + h24_cadence + .session-counter + STATUS Sub-agents 12→14 + row Policies) + RESTART ×2
[ ] W3 SERIAL 5 file (tiep §0 dual-accept VERBATIM C8 → session-start 0.6b+0.7 → session-end §5.2 → fable-clone → agents/README) → 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
🔴 GT (ground-truth S120 @/tiep — 3 chỗ WAL S119 đã STALE, ĐÃ reconcile):
(1) "7 broadcast UNTRACKED cố ý → GỘP vào commit-chốt W0.3" = XONG RỒI ở 4727d16 (commit+push). W0.3 KHÔNG còn việc gộp.
(2) "K trôi 10→11" = squash+push đã chạy 11:20:29 → K=0, range RỖNG, git status sạch tuyệt-đối.
(3) fix#8 tick mâu-thuẫn (dòng 13 `[ ]` vs 17 `[x]`) → owner-decisions §ACK xác nhận ĐÃ KÝ → gate-blocker=0.
🔴 v3-GAP ĐÃ VÁ (FIX #3-bis trong v3-PATCH): v2:92 rẽ nhánh bằng `NONWAL==0` = SAI THỨ; đúng = test ĐÁY range. 4 ca: (0) K=0 RỖNG → NO-OP commit thẳng [ca MỚI, v3 không liệt] · (1) đáy=wal: & NONWAL=0 · (2) đáy=wal: & NONWAL>0 → (1)+(2) CÙNG xử-lý reset--soft origin/main, CẤM rebase · (3) đáy=commit-thường → rebase+fixup OK.
🔴 Hook wal-flush.ps1:7 phủ ĐÚNG 3 path (.claude/WAL.md · agent-memory/ · workflows/runs/) — KHÔNG phủ broadcasts/ · KHÔNG phủ .gitattributes/scripts/docs. ⇒ MỖI lần ghi WAL = +1 `wal:` ở ĐÁY range ⇒ W0.3 PHẢI re-đo NGAY trước reset (K=0 lúc 11:30 là ảnh-chụp, KHÔNG phải hằng-số).
🔴 RESTART ×2 (W0.6 + post-W2) ⇒ wave trải ≥3 phiên CLI ⇒ nối bng /tiep (fix #9j).
🔴 W0.6 SAU RESTART — 3 bước, ĐỪNG ĐẢO:
(1) spawn `_lf-probe` TRƯỚC (nhóm chứng, thuần LF 0 CR). Vẫn not-found ⇒ KHÔNG phải CRLF, KHÔNG phải hot-reload ⇒ nghi tiền-tố `_` ⇒ đổi tên bỏ `_` đo lại. 🔴 CẤM kết-luận CRLF khi nhóm chứng chưa xanh.
(2) `_lf-probe` xanh ⇒ spawn `_crlf-probe` ⇒ verdict {CRLF-tolerant | CRLF-fatal}.
(3) ghi verdict vào W0-evidence §7 + cập-nhật ngược §1.C(L3) + R4-nấc ⇒ XOÁ CẢ 2 probe ⇒ git status sạch.
🔴 2 probe = UNTRACKED CỐ Ý. CẤM `git add``.gitattributes` `* text=auto eol=lf` sẽ NORMALIZE mất CR = giết thí-nghiệm.
🔴 Nhóm chứng LF CỨU 1 kết-luận SAI: probe LF (0 byte CR) cũng chết y hệt ⇒ nếu theo spec 1-probe sẽ kết "CRLF-fatal" SAI, và sai theo hướng CÓ LỢI cho câu chuyện (xác nhận L3 + giữ R4 mạnh). Ghi vào adap-report.
🔴 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: bng 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: W0.1 `.gitattributes` (+`* text=auto eol=lf` + khai binary THẬT, GIỮ 2 rule cũ broadcasts/**+*.sh; CẤM vá theo đuôi-file-vừa-cắn) → W0.2 scoped-only (CẤM mass rm+checkout 188) → W0.3 [4-ca + interlock + commit-chốt CÙNG TURN] → W0.4 → W0.5 → W0.6 RESTART
verify: K=$(git rev-list --count origin/main..HEAD) ; NONWAL=$(git log --format='%s' origin/main..HEAD | grep -vc '^wal:') ; git log --format='%s' origin/main..HEAD | tail -1 [đáy range → quyết ca 0/1/2/3] ; git check-attr text eol -- .claude/agents/reviewer.md [W0.1 → text:auto eol:lf] ; ls .git/rebase-merge [PHẢI absent]
next: 🔴 ANH RESTART CLI → /tiep → W0.6 3-bước (LF trước, CRLF sau, xoá probe) → W1/W1b → W2 (+RESTART) → W3 → W4 → W5 → W6
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] ; git status --porcelain [PHẢI thấy ?? _crlf-probe.md + ?? _lf-probe.md — MẤT = thí-nghiệm hỏng, dựng lại từ W0-evidence §7.1] ; tr -cd '\r' < .claude/agents/_crlf-probe.md | wc -c [PHẢI 276, =0 đã bị normalize]