wal: flush 20260807T1606

This commit is contained in:
pqhuy1987
2026-08-07 16:06:25 +07:00
parent 8479ce3f05
commit 3fdc43692e
3 changed files with 267 additions and 1 deletions

View File

@ -12,7 +12,15 @@ chain:
- [x] N3 fable-clone 6 lane (OD-1 lai): A 57KB · B 47KB · C 72KB · D 44KB · E 38KB · F
- [x] N4 wave-plan: 7 wave + 3 sub gated, 2 chạy-ngay, 5 chờ-anh, 0 loại (50KB)
- [x] **W0 ĐÓNG — nghiệm thu ĐẠT** (lead verify độc lập): fitmap 11.697B 7/7 dòng 0-ô-trộn · tracking 17.890B 20/20 khoản · _index.md 45->69 dòng (23 se + 46 all), 24 dòng bù (17+7), 7/7+17/17 hash OK 0 tamper, 5/5 bất-biến, VẮNG=0, residual-write ngoài phạm vi = 0
- [!] W1 GĐ-1 chuẩn-tên (chốt MỞ KHOÁ) — lane a KIỂM KÊ MÁY đang chạy; lane b ký-chuẩn CHỈ chạy SAU (lane A: ký trước khi biết = ký ra thứ không áp được mà không làm vỡ)
- [x] **W1-a XONG** — kiểm kê 14 đoạn máy (11 VỠ-CÂM · 3 vỡ-ồn · 0 tự-thích-nghi), 9 nhóm tên / 28 họ, 44.914B. BÁC HẲN 2 mục lane A (`detectors:1716`+`:1679` = dòng CHÚ THÍCH không phải mã; `applied-eval-nokey` = 0 file-IO)
- [!] W1-b ký chuẩn + `naming-scan.ps1` INFORM-only + 3 vá kèm — ĐANG CHẠY
LUẬT THIẾT KẾ W1-a đo được (ràng buộc mọi wave sau):
"một nhóm tên sạch CHÍNH XÁC tới độ sâu máy của nó KIỂM, không sâu hơn một nấc"
=> vế "phải STOP-HARD" ĐỔ (session-<N> sạch 12/12 dưới máy chỉ INFORM); vế "phải có máy TỪ CHỐI" ĐỨNG
=> CẤM ký chuẩn sâu hơn máy
BẪY-4 giải bằng ĐỔI TẬP ĐO: quét .md = 1.545, miễn trừ 1.131 (73,2%), 90,7% chỗ lệch NẰM TRONG vùng miễn trừ => 0-hit vô nghĩa.
Thay bằng quét 231 tên VẬT-BỘ-MÁY: 0 miễn trừ, 23 lệch thật => có răng ngày đầu.
- [ ] W2 GĐ-2 · W3 GĐ-3 · W5 GĐ-5 (tự chạy) · W3b/W4/W4b/W5b/W6 chờ anh
next: W0 xong -> W1; hỏi P3/P5/P7/P8 khi chạm W3b/W4b/W5b

View File

@ -8,6 +8,7 @@ Read-only INTERNAL audit SOLUTION_ERP. Tools: Read/Grep/Glob/Bash + 5 RAG MCP. O
- NOT: external docs/CVE/lib investigator-api · write implementer · test test-specialist · architecture decision em main
## 📌 Recent invest (1-line digest; verbatim → archive + runs)
- **S180-W1a (08-07) kiểm-kê MÁY-ĐỌC-TÊN [`runs/2026-08-07-S180-adap-upgrade-pack-phased/sub-w1a-mayd-octen.md` 44.9KB]:** 14 đoạn máy (11 vỡ-CÂM · 3 ồn · **0 tự-thích-nghi**) · BÁC 2 (`detectors:1716`+`:1679` = CHÚ THÍCH không phải ; `applied-eval-nokey.ps1` = 0 file-IO, control-dương mfe-eval=14). **Luật rút ra: nhóm tên sạch CHÍNH XÁC tới độ sâu máy KIỂM, không sâu hơn 1 nấc** STOP-HARD KHÔNG cần (`detectors:1639` chỉ INFORM `session-<N>` sạch 12/12); cần **máy TỪ CHỐI**, *đọc-rồi-liệt* (`$unmapped:1109`) + *chấp-2-tên* (`-or :1660`) + *[skip] not found* đều để tên trôi. 🔴 `memory-selfimprove-audit.ps1:298` còn dùng `-Filter 'sub-*.md'` = ĐÚNG bug C11(b) đã @S159 `detectors:1102` **vá tệp A quên tệp B**. Bất biến ngầm 0-máy-kiểm: `agents/<role>.md`.BaseName `agent-memory/<role>/`. Miễn-trừ 5 vùng đóng băng nuốt **73,2% kho .md (1131/1545) + 90,7% lệch đã biết (225/248)** máy soi quét .md trả 0-hit nghĩa; đường thoát = quét **231 tên vật-bộ-máy, 0 miễn trừ**. `CLAUDE.md:151` khớp 64/159=40,3% đĩa, 0 máy chặn, sống nhiều tháng. Tag `[s180, sach-toi-do-sau-may-kiem, va-tep-A-quen-tep-B, mau-so-sau-mien-tru]`
- **S180 (08-07) ×Fable fit-map 4-thư upgrade-pack 7GĐ [`runs/2026-08-07-S180-adap-upgrade-pack-phased/sub-invest-fitmap-S180.md`]:** PHỦ-ĐỦ 7GĐ/12TC/9LỖI. Nghề: hash mesh CHỈ tin máy canonical `scripts/stamp_verify.py` (tự chế MISMATCH cả 4 = suýt phán tamper sai) · TÔI = vai 7/7 dính #53 + bị bắt LỚP-7 tự-giẫm (202K đọc/7KB đĩa) "đổ ruột TRƯỚC đo SAU" cứu; tỉ-lệ byte-đĩa/token-đọc = tín hiệu giám sát · xung đột duy nhất gói: SE exit-0-advisory (`governance-detectors.ps1:1963`) hub cổng-chặn-mã-lỗi VƯỢT-KHUNG · GĐ-5 gần xong nhất / GĐ-4 hổng nhất (0 sổ-yêu-cầu-anh, 0 chấm-điểm) · bác-một-phần lead: `pull_warn_days` trống = CỐ Ý owner khai (`check-email.md:48`) ghost-wire. Tag `[s180, stamp-verify-canonical-only, lop7-tu-giam, exit0-vs-gate]`
- **S175 (08-05) ×Fable cột DỰ ÁN ma-trận NS [seed on-behalf; `runs/2026-08-05-S175-duan-budget-column/`]:** BÁC 2 tiền-đề lead cột = CHỖ-CHỪA-SẴN (`e33481e` cùng-commit comment `PeWorkItemBudget.cs:19`, KHÔNG phải di-chứng Mig50) · `—` = 11 ô/app không phải 3; phả-hệ đo bằng commit-sinh-ra + comment cùng commit, đừng suy từ khoảng-thời-gian-gần. `Project.BudgetTotal` sống từ Mig-2 nhưng Dev 61/69 NULL = "cơ-chế đúng dữ-liệu không có" lần 7. Spawn TASK-RỖNG cứu bằng run.md trên đĩa. Tag `[s175, pha-he-commit, artifact-dia-cuu]`
- **S171 (08-04) ×Fable KHKK-UI-mirror-PE [`runs/2026-08-04-S171-khkk-ui-mirror-pe/` 44.8KB]:** VERDICT 27-giống/6-buộc-khác/8-gap; §0 đính-chính ground-truth lead TRƯỚC §1 (nghề đúng); bị 3 lane reviewer lật: miễn-trừ 63, 6 acceptance gãy khi chạy thật **đầy-đủ ≠ đúng, invest 44KB không thay được reviewer đối-kháng**. Tag `[s171, day-du-khong-bang-dung]`

View File

@ -241,3 +241,260 @@ elseif ($s.Name -match '^(.+)-return\.md$') { $cand = $Matches[1] }
**Sửa số so lane A:** lane A khai **11 đoạn**; đo lại ra **14 xác minh + 2 bác**. Chênh vì: lane A gộp 5 kịch bản chưa đo vào **một dòng số 10**, và tính 2 dòng chú thích (`:1679` `:1716`) thành 2 đoạn máy. Cộng thêm 1 đoạn lane A không liệt (`detectors:1771`, bản sao thứ hai của bộ lọc).
---
## §2 — BẢN ĐỒ 9 NHÓM TÊN × HỌ (đo lại, **mọi con số kèm MẪU SỐ**)
🔴 **Luật đơn-vị tự áp** (phiên này đã 6 ca bẫy): mỗi dòng ghi rõ đang đếm **thư mục** hay **tệp** hay **mục trong mảng**. Ba thứ khác nhau.
### N1 · Tên vai — **1 họ · SẠCH TUYỆT ĐỐI** ✅ (xác nhận lane A)
| Nguồn | Đơn vị | Số |
|---|---|---|
| `.claude/agents/*.md` bỏ `README.md` | **tệp** | **26** |
| `.claude/agent-memory/*/` | **thư mục** | **26** |
| `hmw.js:22-51` `VALID_ROLES` | **phần tử mảng** | **26** |
Đối chiếu **3 chiều bằng `comm`**: `only-in-agents` = ∅ · `only-in-memdir` = ∅ · `only-in-hmw` = ∅ · `agents-not-in-hmw` = ∅. Hình dạng: `grep -vE '^[a-z0-9]+(-[a-z0-9]+)*$'` = **0** ⇒ 26/26 kebab thuần. **Lane A ĐÚNG.**
### N2 · Tên lệnh — **1 họ · SẠCH** (mẫu số **19 tệp**)
19/19 kebab-case. `tiep.md` là **ngoại lệ NGÔN NGỮ** (tiếng Việt) chứ không phải ngoại lệ **hình dạng** ⇒ 1 họ hình dạng, không phải 2. Danh sách: `adap-{apply,report,request}` · `check-email` · `fable-{clone,real}` · `pause` · `send-email` · `session-{end,start}` · `sleep-recovery-memory-l2` · `snapshot` · `tiep` · `ultra-{on,off}` · `user-mark-{active,active-high,medium,disable}`.
### N3 · Thư mục lượt chạy — **2 họ** (mẫu số **88 thư mục**) ✅ xác nhận lane A y hệt
- khớp `^YYYY-MM-DD-S<n>` = **70/88 (79,5%)**
- không khớp = **18/88 (20,5%)**, tất cả họ `YYYY-MM-DD-<chủ-đề>`: `2026-06-18-h10-{implement,invest,review}` · `2026-06-18-h11-{audit,checklist-verify,doublecheck,implement,review}` · `2026-06-18-h910-{curate,finalize}` · `2026-06-18-harness-{audit-invest,fix-implement,fix-review}` · `2026-06-18-mig54-pe-review` · `2026-07-11-h21-mtv3-adopt` · `2026-07-12-h22-wal-adopt` · `2026-07-13-pe-negative-quote` · `2026-07-13-presence-not-age-adopt`
🔴 **Hệ quả chưa ai nói:** `closeout-sentinel.ps1:165` lọc thư mục lượt chạy bằng **mã phiên trong tên** ⇒ **18/88 thư mục này VÔ HÌNH với sentinel ngay hôm nay**, không cần ai đổi tên gì.
### N4 · Tệp con trong lượt chạy — **5 họ, không phải ≥3** (BÁC lane A) — mẫu số **719 tệp .md**
🔴 **Mẫu số phải khai 2 lần** (bẫy-6 đo-giữa-chừng): tính cả thư mục S180 đang ghi = **743**; **loại nó ra = 719**. Dưới đây dùng **719** (ổn định).
| Họ | Số | % / 719 |
|---|---|---|
| `sub-*.md` | **395** | 54,9% |
| `*-synthesis.md` | **90** | 12,5% |
| `run.md` | **84** | 11,7% |
| `*-return.md` | **38** | 5,3% |
| **ngoài cả 4** | **112** | **15,6%** |
Mẫu 12 tên ngoài-họ (không nén): `C14-disposition-per-khoan.md` · `C15-resume-model-override.md` · `C4-design-3-vai-kiem.md` · `C6-cua-loi-hua-may.md` · `W0-evidence-15-07-2026.md` · `W4-detector-fire-15-07-2026.md` · `_lienfile-notes-batchB.md` · `b3-b4-owner-gated-proposals.md` · `cicd-monitor--2026-05-q2.gist.draft.md` (+3 chị em `q3/q4/runs`).
**Bác lane A:** lane A khai *"≥3 họ · 706 tệp: 402 `sub-`, 219 ngoài 2 họ"*. Đo lại: **5 họ đếm được**, và con số "219 ngoài 2 họ" **gộp lẫn** `-return` + `-synthesis` (là 2 họ **máy CÓ đọc**) với 112 tệp **không họ nào**. Gộp như vậy làm mất đúng con số quan trọng nhất: **112 tệp (15,6%) máy KHÔNG nhìn thấy dưới bất kỳ mẫu nào**.
### N5 · Nhật ký phiên — **5 họ** ✅ xác nhận lane A trọn vẹn — mẫu số **159 tệp**
| Họ | Số | % |
|---|---|---|
| (a) `YYYY-MM-DD-HHMM-S<n>-` | **19** | 11,9% |
| (b) `YYYY-MM-DD-S<n>-` | **78** | **49,1%** ← đông nhất |
| (c) `YYYY-MM-DD-s<n>-` (chữ `s` **thường**) | **13** | 8,2% |
| (d) `YYYY-MM-DD-HHMM-<slug>` không số phiên | **45** | 28,3% |
| (e) `YYYY-MM-DD-<slug>` trần | **4** | 2,5% |
Tổng 19+78+13+45+4 = **159** ✓ khớp mẫu số.
🔴 **Ca sống bẫy-1, đo lại và XÁC NHẬN:** `CLAUDE.md:151` quy định `docs/changelog/sessions/YYYY-MM-DD-HHMM-{topic}.md`. Đĩa khớp `^\d{4}-\d{2}-\d{2}-\d{4}-` = **64/159 = 40,3%**. **Quy ước thành văn DUY NHẤT trong kho đang sai với 59,7% đĩa, và 0 máy chặn.** Họ đông nhất (b, 78 tệp = 49,1%) **không khớp cách đọc nào**.
### N6 · Tệp mốc phiên — **2 TẦNG, phải tách** (BÁC "2 họ" của lane A)
**Tầng 1 — thư mục phiên: 1 họ, SẠCH 12/12** (mẫu số **12 thư mục**). `^session-\d+$` khớp **12/12 = 100%**.
**Tầng 2 — tệp bên trong: 7 họ tiền-tố + 2 tệp lẻ** (mẫu số **90 tệp**):
| Tiền tố | Số |
|---|---|
| `_tiep-*` | 24 |
| `_pause-*` | 22 |
| `_snapshot-*` | 14 |
| `_context-s-*` | 11 |
| `_end` | 10 |
| `_mind-s-*` | 6 |
| `pause-*` (legacy) | **1** |
| lẻ: `closed.md` · `resume-S146-20260722T2334.md` | 2 |
**Bác lane A:** lane A khai nhóm này *"2 họ"* — đó là đếm **đúng một cặp fork** (`_pause` ⟂ `pause`). Đo thật: **7 họ tiền-tố đang sống** và **HAI cặp fork**, không phải một:
- cặp 1: `_pause-*` (22) ⟂ `pause-*` (1) — máy `session_ctx.py:357-358` **đọc cả hai** 🟢
- 🔴 **cặp 2 lane A BỎ SÓT:** `_end` (10) ⟂ `closed.md` (1) — dấu-đóng-phiên **hai tên**, `governance-detectors.ps1:1660` chấp cả hai bằng `-or`. Máy **tha thứ** ⇒ fork **sống mãi**. Đây là fork **chưa ai ghi vào bảng dịch**.
### N7 · Kịch bản — **BÁC "3 họ"; thật là 2 quy ước + 1 trục tiền-tố** — mẫu số **53 mục** trong `scripts/`
| Đo | Số |
|---|---|
| kebab-case | 46 |
| snake_case | **6** (= `__pycache__` + **5 tệp**) |
| tiền tố phiên/kế hoạch `^(s\d+-\|plan-)` | 16 |
| đuôi | `.ps1` 32 · `.sql` 14 · `.py` **5** · `.md` 1 · `__pycache__` 1 |
🔴 **Bác lane A (điểm này quan trọng cho lane b):** 5 tên snake_case là `parse_forms` · `parse_workflow` · `session_ctx` · `session_scaffold` · `stamp_verify` — **CHÍNH XÁC 5/5 là tệp `.py`**. Đây **KHÔNG phải trôi tên**, đây là **PEP-8, quy ước bắt buộc của ngôn ngữ**, và nó **kỷ luật 100%** (5/5, 0 ngoại lệ hai chiều: 0 tệp `.py` kebab, 0 tệp `.ps1` snake). Gọi nó là "họ thứ hai đang trôi" là **đếm nhầm kỷ luật thành hỗn loạn**.
⇒ Kịch bản thật sự có: **1 quy ước cho ngôn ngữ shell/SQL (kebab)** + **1 quy ước cho Python (snake)**, cả hai sạch; cộng **1 trục ĐỘC LẬP** là tiền tố `s<n>-`/`plan-` (16/53 = 30,2%) — trục này mới là chỗ chưa có luật. **Fork thật duy nhất** = cặp `session-scaffold.ps1` ⟂ `session_scaffold.py` (M-10), và nó **hợp lệ theo luật ngôn ngữ** nhưng **trùng khái niệm**.
### N8 · Tên sổ — **2 họ** ✅ xác nhận — mẫu số **15 mục** `docs/governance/`
- HOA-GẠCH = **5/15 (33,3%)**: `BROADCAST-OUT-SOLUTION-ERP-2026-05-29-INFRA-RETRO.md` · `BROADCAST-OUT-SOLUTION-ERP-2026-05-29.md` · `BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md` · `RAG-AUDIT-RESPONSE-2026-05-29.md` · `README.md`
- kebab thường = **10/15 (66,7%)**
🔸 Nhưng **4/5 tên HOA là thư đã gửi mang ngày tháng** ⇒ chúng là **vật lịch sử**, không phải sổ đang bảo trì. `README.md` HOA là **quy ước phổ quát**. ⇒ Nếu tách "sổ đang sống" khỏi "vật lịch sử", nhóm này **gần như 1 họ**. Lane A đúng về **số họ**, nhưng cách đọc "2 họ đang trôi" hơi nặng tay.
### N9 · Nhãn lớp kiểm — **2 họ nấc-1 · 8 họ nấc-2** (BÁC "4 họ con") — mẫu số **12 lớp**
Nguồn sống: `.claude/agent-memory/memory-budget.json` → `lead_self_audit.flag_classes` = **12**.
- Nấc-1: `view-*` = **6** · `gap-*` = **6**
- Nấc-2 (đo bằng máy, 2 token đầu): `view-stale` 4 · `view-residual` 1 · `view-claim` 1 · `gap-carry` 2 · `gap-owner` 1 · `gap-decision` 1 · `gap-underfill` 1 · `gap-incident` 1 ⇒ **8 họ**, không phải 4.
🔴 **Bác lane A + chỉ ra lớp lỗi:** lane A đếm *"2 họ chính + 4 họ con"* bằng cách **bung `view-*` ra 3 nhánh nhưng để nguyên `gap-*` thành 1**. Đó là **đếm bất đối xứng trên hai nhánh anh em** — đúng phép thử chống-Goodhart *"áp luật cho nhánh anh em"*. Bung cân xứng ra **8**.
🔴 **Xác nhận số trôi:** `hmw.js:33` nguyên văn `(11 class: 5 view-* + 6 gap-*)`. Thật = **12 = 6 view + 6 gap**. **Sai cả tổng lẫn thành phần.** Control: `grep -n "class" hmw.js | grep -iE "[0-9]+ class"` = đúng **1 dòng** (`:33`) ⇒ chỉ 1 chỗ phải vá.
### §2-tổng
| # | Nhóm | Họ | Mẫu số | Sạch? |
|---|---|---|---|---|
| 1 | Tên vai | **1** | 26 tệp / 26 tm / 26 mảng | ✅ 100% |
| 2 | Tên lệnh | **1** | 19 tệp | ✅ 100% |
| 3 | Thư mục lượt chạy | **2** | 88 thư mục | ❌ 79,5% |
| 4 | Tệp con lượt chạy | **5** | 719 tệp | ❌ 84,4% trong 4 họ máy-đọc |
| 5 | Nhật ký phiên | **5** | 159 tệp | ❌ 40,3% theo `CLAUDE.md` |
| 6 | Mốc phiên — thư mục | **1** | 12 thư mục | ✅ 100% |
| 6b | Mốc phiên — tệp | **7** (2 cặp fork) | 90 tệp | ❌ |
| 7 | Kịch bản | **2 quy ước + 1 trục tiền-tố** | 53 mục | ✅ theo ngôn ngữ / ❌ trục tiền-tố 30,2% |
| 8 | Tên sổ | **2** | 15 mục | ⚠️ 4/5 lệch là vật lịch sử |
| 9 | Nhãn lớp kiểm | **2 nấc-1 / 8 nấc-2** | 12 lớp | ✅ nấc-1 / ❌ nấc-2 |
**Tổng: 9 nhóm · 28 họ ở nấc-1** (1+1+2+5+5+1+7+3+2+... đếm theo bảng: 1+1+2+5+5+1+7+3+2+2 = **29**, trừ 1 vì nhóm 6 tách 2 tầng đã tính riêng ⇒ **28**). Lane A khai **21 họ**; chênh vì lane A đếm nhóm 6 = 2 (thật 1 thư mục + 7 tệp) và nhóm 4 = 3 (thật 5).
---
## §3 — HAI CÂU QUYẾT ĐỊNH HÌNH DẠNG CHUẨN LANE B
### 3.1 — Giả thuyết *"sạch VÌ có máy STOP-HARD"*: **ĐỨNG Ở LÕI, NHƯNG PHÁT BIỂU SAI Ở VẾ "STOP-HARD"**
Kiểm **hai chiều** như lane yêu cầu.
**Chiều 1 — có nhóm nào CÓ máy mà VẪN lệch?** → **CÓ, hai ca, và cả hai đều dạy một điều khác nhau:**
| Nhóm | Máy | Máy làm gì | Kết quả |
|---|---|---|---|
| N4 tệp con lượt chạy | `detectors:1102/1104-1107` + `:1771` | **ĐỌC nhưng KHÔNG ÉP** — tên lạ rơi `$unmapped`, `:1109` **liệt, không cờ** | ❌ 112/719 ngoài mọi họ |
| N6b `_end` ⟂ `closed.md` | `detectors:1660` | **CHẤP CẢ HAI** bằng `-or` | ❌ fork sống vô hạn |
⇒ **Máy chỉ ĐỌC, hoặc máy THA THỨ, thì tên vẫn trôi.** Có máy là chưa đủ; máy phải **từ chối**.
**Chiều 2 — có nhóm nào SẠCH mà KHÔNG có máy STOP-HARD?** → **CÓ, hai ca — đây là chỗ giả thuyết của lane A gãy:**
| Nhóm | Sạch | Máy | Loại máy |
|---|---|---|---|
| N6 thư mục phiên | **12/12 = 100%** | `detectors:1639` `^session-(\d+)$` | **CHỈ INFORM, exit-0, không chặn gì** |
| N2 tên lệnh | **19/19 = 100%** | (không có script kiểm) | **vòng phản hồi NGƯỜI**: đổi tên = lệnh biến mất khỏi tay owner ngay lượt sau |
| N9 nấc-1 | **12/12 mang `view-`/`gap-`** | `detectors:1761` `$flagTagRx` ép **tiền tố** | flag, không throw |
⇒ **STOP-HARD KHÔNG phải điều kiện cần.** `detectors:1639` chỉ in một dòng INFORM và nhóm đó vẫn sạch tuyệt đối.
**PHÁT BIỂU LẠI, ĐO ĐƯỢC — và đây mới là luận cứ thiết kế cho lane b:**
> **Một nhóm tên sạch CHÍNH XÁC TỚI ĐỘ SÂU mà máy của nó KIỂM — không sâu hơn một nấc.**
Bốn ca hậu thuẫn, không ca nào chống:
- N1: máy ép **thành viên** (throw) ⇒ sạch ở **thành viên** (26/26/26).
- N6: máy ép **hình dạng** `^session-\d+$` (INFORM) ⇒ sạch ở **hình dạng** (12/12) — **nhưng tệp BÊN TRONG thư mục đó thì 7 họ**, vì máy không kiểm xuống tầng tệp.
- N9: máy ép **tiền tố** `view-|gap-` ⇒ sạch ở **tiền tố** (12/12) — **nhưng nấc-2 thì 8 họ**, vì máy không kiểm xuống nấc-2.
- N5: **0 máy** ⇒ **40,3%**, dù quy ước đã thành văn ở `CLAUDE.md:151` nhiều tháng.
**Hệ luận trực tiếp cho chuẩn lane b — ba câu, không thương lượng:**
1. **Chuẩn không kèm máy = tờ giấy.** `CLAUDE.md:151` là bằng chứng đắt nhất: quy ước viết rõ, sống nhiều tháng, khớp **64/159 = 40,3%**, **không ai biết**.
2. **Máy không cần STOP-HARD; máy cần TỪ CHỐI.** INFORM đủ (ca N6). Nhưng *đọc-rồi-liệt* (N4) và *chấp-cả-hai* (N6b) thì **không đủ**.
3. **Chuẩn viết tới nấc nào thì chỉ sạch tới nấc đó.** Muốn `_pause-<i>.md` đơn trị thì phải viết **và kiểm** tới tầng tệp, không dừng ở tầng thư mục.
### 3.2 — BẪY-4: số thật sau miễn trừ
**Đo trên tập `.md` của vùng bộ-máy** (`docs/` + `.claude/` + `broadcasts/`):
| | Số | % |
|---|---|---|
| **TỔNG `.md`** | **1.545** | 100% |
| `.claude/workflows/runs/**` | 745 | 48,2% |
| `docs/changelog/sessions/**` | 159 | 10,3% |
| `broadcasts/**` | 118 | 7,6% |
| `docs/governance/adap-reports/**` | 103 | 6,7% |
| `docs/_archive/**` | 6 | 0,4% |
| **TỔNG 5 vùng đóng băng** | **1.131** | **73,2%** |
| ⇒ **CÒN LẠI trong tập đo** | **414** | **26,8%** |
| *(chỉ 3 vùng lane A nêu)* | *1.022 miễn ⇒ còn 523* | *33,9%* |
🔴 **Và đây là con số quyết định — LỆCH nằm ở đâu:**
| Lệch đo được | Số | Trong vùng đóng băng? |
|---|---|---|
| Nhật ký phiên không khớp `CLAUDE.md` (15964) | **95** | ✅ ĐÓNG BĂNG |
| Thư mục lượt chạy không khớp (8870) | **18** | ✅ ĐÓNG BĂNG |
| Tệp con lượt chạy ngoài 4 họ | **112** | ✅ ĐÓNG BĂNG |
| Sổ governance HOA-GẠCH | 5 | ❌ sống |
| Kịch bản mang tiền tố phiên | 16 | ❌ sống |
| `pause-*` legacy | 1 | ❌ sống |
| `closed.md` | 1 | ❌ sống |
| **TỔNG** | **248** | **225 (90,7%) NẰM TRONG VÙNG MIỄN TRỪ** |
⇒ **LANE A ĐÚNG, VÀ ĐÚNG NẶNG HƠN LANE A TƯỞNG.** Một máy soi tên áp-về-phía-trước, quét `.md`, tôn trọng 5 vùng đóng băng: **73,2% kho biến mất khỏi mẫu số** và **90,7% chỗ lệch đã biết cũng biến mất cùng**. Nó sẽ in `0 hit` ngày đầu, và **số 0 đó không chứng minh gì**.
🟢 **NHƯNG có đường thoát, và nó nằm ở việc CHỌN TẬP ĐO — không phải ở việc nới miễn trừ.** Nếu máy soi quét **tên VẬT-BỘ-MÁY** thay vì quét `.md`:
| Tập | Đơn vị | Số | Miễn trừ |
|---|---|---|---|
| `.claude/agents/*.md` | tệp | 27 | 0 |
| `.claude/agent-memory/*/` | thư mục | 26 | 0 |
| `.claude/commands/*` | tệp | 19 | 0 |
| `scripts/*` | mục | 53 | 0 |
| `.claude/sessions/**` tệp | tệp | 90 | 0 |
| `docs/governance/*` (gốc) | mục | 15 | 0 |
| `.claude/hooks/*` | tệp | 1 | 0 |
| **TỔNG** | | **231** | **0** |
**231 tên, 0 miễn trừ, và 23 chỗ lệch thật vẫn nằm nguyên trong đó** (5 sổ HOA + 16 tiền-tố-phiên + `pause-*` + `closed.md`). ⇒ Máy soi **có răng ngay ngày đầu**, mẫu số **231** in ra được, và `0 hit` sẽ là `0 hit` **có nghĩa**.
---
## §4 — RÀNG BUỘC CHO LANE B (chuẩn phải thoả gì để KHÔNG rớt đoạn máy nào)
**R1 — Chuẩn phải liệt 14 đoạn máy này thành PHỤ LỤC BẮT BUỘC, và mỗi mục đổi tên phải trỏ ngược tới đoạn máy nào đọc nó.** Không có phụ lục thì TC-11 *"không được rớt bất kỳ đoạn máy nào"* là lời hứa không kiểm được.
**R2 — Cấm ký bất kỳ mục nào chạm 4 tên sau khi chưa mở đủ số chỗ:** `session-<N>` = **4 chỗ** (`detectors:1639` · `session_ctx.py:133` · `session-scaffold.ps1:116` · `session_scaffold.py:105`) · `sub-*` = **3 chỗ** (`detectors:1102` · `detectors:1771` · `memory-selfimprove-audit.ps1:298`) · tên vai = **3 chỗ** (`hmw.js:22-51` · `agents/*.md` · `agent-memory/*/`) · `.claude/agent-memory` = **5 chỗ**.
**R3 — Chuẩn PHẢI có mục cho "tên neo NGOÀI kho mã":** `.claude/settings.json:9` neo `wal-flush.ps1` bằng tên. Không ai grep JSON cấu hình khi đổi tên script.
**R4 — Chuẩn PHẢI cấm hẳn quy ước "giữ nguyên số dòng"** (`wal-flush.ps1:16-17` tự khai đang dùng). Không máy nào thi hành được nó.
**R5 — Chuẩn PHẢI viết tới ĐÚNG NẤC muốn sạch** (§3.1). Viết tới thư mục thì tệp bên trong vẫn trôi; viết tới tiền tố thì nấc-2 vẫn trôi.
**R6 — Máy soi phải TỪ CHỐI, không được LIỆT-RỒI-THÔI.** Ba lối làm câm hiện có, cấm tái dụng: `$unmapped` liệt-không-cờ (`detectors:1109`) · `-or` chấp-hai-tên (`detectors:1660`) · `[skip] … not found` (`detectors:1622` · `:1882` · `mfe-eval:265`).
**R7 — Máy soi phải quét tập 231 tên vật-bộ-máy, KHÔNG quét 1.545 `.md`** (§3.2). Và **luôn in mẫu số** cạnh mọi con số hit.
**R8 — Tập giá trị hợp lệ của nhật ký phiên phải chứa CẢ 5 HỌ ĐANG SỐNG** (19+78+13+45+4), nếu không bài kiểm sẽ **xanh hôm nay, đỏ vào ngày quy ước có hiệu lực** (bẫy-1). Đồng thời `CLAUDE.md:151` phải được sửa hoặc khai là **chỉ áp về sau** — hiện nó đang **sai với 59,7% đĩa**.
**R9 — Chuẩn phải MIỄN TRỪ TƯỜNG MINH quy ước theo ngôn ngữ** (`*.py` = snake). 5/5 tệp Python hiện đúng PEP-8; một chuẩn "mọi tên kebab" sẽ **cờ 5 tệp đang đúng** = dương-giả ngày đầu.
**R10 — Hai xung đột phải KHAI, KHÔNG được vá âm thầm:**
- `detectors:1104-1109` cố ý **không đoán tên** (luật S122 *"đo NỘI DUNG không đo TÊN"*). Chuẩn đòi "tên lệch phải kêu" là **đi ngược luật đang có**. ⇒ khai xung đột, để owner chọn.
- Siết máy sang lái-mã-thoát (`G1-B7`) đụng doctrine exit-0 — **VƯỢT-KHUNG**, đã treo ở P-question.
**R11 — Ba VÁ ĐI KÈM, đo được, không thuộc phần "ký chuẩn":**
1. 🔴 `memory-selfimprove-audit.ps1:298` `-Filter 'sub-*.md'` → mirror bản vá S159 (`^(sub-.+|.+-return)\.md$`). **Bệnh đã vá ở tệp A, còn sống ở tệp B.**
2. `hmw.js:33` `(11 class: 5 view-* + 6 gap-*)` → câu trỏ khoá `lead_self_audit.flag_classes` (thật **12 = 6+6**). Control trước-vá = **1 hit**.
3. Bất biến ngầm `agents/<role>.md`.BaseName ≡ `agent-memory/<role>/` — **2 chỗ, 0 nguồn chung, 0 máy kiểm**; lệch ⇒ im lặng ở `mfe-eval:264` và `$unmapped` ở `detectors:1109`.
---
## §5 — KHAI THẲNG NHỮNG CHỖ CHƯA ĐO
1. **Mã thoát thật khi `wal-flush.ps1` bị đổi tên** — không chạy được hook trong lượt read-only. Cần: đổi tên trên **cây tạm**, chạy hook, đọc `$LASTEXITCODE`.
2. **`.claude/settings.json`** — tôi chỉ grep khối `hooks`; **chưa đọc toàn tệp**, có thể còn neo tên khác. Cần: `cat .claude/settings.json`.
3. **Tôi chỉ quét `scripts/` + `.claude/hooks/` + `hmw.js`.** Chưa quét `.claude/commands/*.md` (19 tệp) và `.claude/agents/*.md` (26 tệp) xem chúng neo tên gì — persona/lệnh **có thể neo đường dẫn** và chúng là "máy" theo nghĩa vận hành. Cần: `grep -nE "sub-|_context|session-|runs/|agent-memory" .claude/commands/*.md .claude/agents/*.md`.
4. **Con số 248 "lệch"****cận dưới** — nó chỉ đếm lệch **theo mẫu tôi kiểm**; tên lệch theo trục tôi chưa nghĩ ra thì không có trong đó.
5. **N4 mẫu số 719 loại thư mục S180** — nhưng các thư mục lượt chạy khác vẫn có thể đang được ghi bởi lane khác cùng phiên. Con số là **ảnh chụp lúc 2026-08-07**, không phải hằng số.
---
**END sub-w1a-mayd-octen — VERDICT: 14 đoạn máy xác minh (11 vỡ-câm · 3 vỡ-ồn · 0 tự-thích-nghi) · 2 BÁC HẲN · 9 nhóm tên / 28 họ · giả-thuyết "sạch VÌ STOP-HARD" ĐỔ Ở VẾ STOP-HARD, ĐỨNG Ở VẾ CÓ-MÁY-TỪ-CHỐI · bẫy-4 XÁC NHẬN NẶNG (73,2% kho + 90,7% lệch bị miễn trừ) với 1 đường thoát đo được (tập 231 tên, 0 miễn trừ) · 11 ràng buộc cho lane b.**