wal: flush 20260807T1701

This commit is contained in:
pqhuy1987
2026-08-07 17:01:30 +07:00
parent 62d1a072a6
commit 09c6002667
12 changed files with 332 additions and 0 deletions

View File

@ -76,3 +76,225 @@ git show c7248b5:.claude/workflows/runs/2026-08-07-S180-…/sub-invest-fitmap-S1
🔴 **KHAI THẲNG chỗ V-1 YẾU — đây là kết luận quan trọng hơn cả con số K:**
Skeleton N1 ở **2,70**, tức **phân vị 3,6** của họ `sub-*` (16/446 tệp lịch sử còn thấp hơn nó). Nó lọt lưới K=3,00 **sát nút**: thêm ~3 dòng ruột là ratio vượt 3,0 và **V-1 tha**. ⇒ **V-1 KHÔNG phải lưới bắt ca N1; nó là lưới PHỤ.** Vị từ bắt ca N1 là **V-2** (6 hit, không cần ngưỡng nào). Tôi **không** hạ K xuống 2,7 cho vừa ca — đó là chỉnh thước theo ca đã biết (Goodhart), và nó sẽ mù với ca tiếp theo.
🔸 Hệ quả phải in ra: mỗi lần V-1 kêu, máy in kèm `K=3.00 (p5 ho sub-*, mau so 446, do 2026-08-07)` để người đọc biết **4,5% kho lịch sử cũng nằm dưới ngưỡng này** — con số cờ **không** đọc thành "hỏng".
---
## §3 — Máy đã dựng: `scripts/artifact-integrity.ps1`
**Vật:** `scripts/artifact-integrity.ps1` — 23.575 B. **Pure-ASCII đo bằng byte, có control 2 chiều:**
```
artifact-integrity.ps1 byte>127 = 0 (tong 23575) <- dat
naming-scan.ps1 byte>127 = 0 <- control AM (tep biet la sach)
naming-standard.md byte>127 = 9238 <- control DUONG (thuoc con song)
```
🔴 **Bẫy thước bắt được tại chỗ:** lệnh đầu tôi dùng `grep '[^\x00-\x7F]'` cho **268 hit trên `naming-scan.ps1`** — tệp mà W1 đã chứng là 0 byte ngoài ASCII. **Control âm sai ⇒ hỏng THƯỚC, không phải hỏng tệp** (grep của Git Bash không nuốt escape `\x` trong ngoặc vuông). Đổi sang đọc byte thẳng bằng .NET mới ra số đúng. Ghi lại vì đây đúng bài `feedback_prod_db_verify_integrated_auth`: *mỗi phép đo kèm control dương; control sai = hỏng thước*.
**4 vị từ ⟂ 4 vị từ hub — khai ánh xạ, vì hai bộ tên KHÔNG trùng nhau:**
| Hub đòi | Cài bằng | Ghi chú |
|---|---|---|
| **VẮNG** | V-3 (2 nguồn) + kiểm `run.md`/`*-synthesis.md` | tên nêu trong `run.md` mà đĩa không có |
| **RỖNG** | nhánh 0-byte của V-1 | 🔴 0 byte ⇒ head=0 ⇒ **cấm rơi vào `KHONG-AP-DUNG`**, phải là cờ `RONG` |
| **CỤT** | **V-2 chính** (nhãn treo neo heading) + **V-1 phụ** (ruột/khung) | V-2 không cần ngưỡng, không cần cấu hình |
| **NÉN QUÁ TAY** | V-4 | so ký tự với bản trước **CÙNG ĐƠN VỊ** |
🔴 **Tôi chệch đề xuất lane B ở V-4, có lý do đo được — khai thẳng:** lane B (và lệnh lead) viết `git show HEAD~1:<file>`. **Tôi KHÔNG dùng `HEAD~1`.** Hook `wal:` chèn commit vào giữa (`0367daf wal: flush 20260806T2237` nằm ngay trong 5 commit gần nhất), nên `HEAD~1` **thường không phải bản trước CỦA TỆP ĐÓ** — phép so sẽ thành *so bản mới với chính nó*, và kết quả `1.0x` **trông y hệt một phép đo hợp lệ**. Tôi dùng `git log --format=%H -2 -- <file>` rồi lấy phần tử thứ 2 = **commit trước ĐÍCH DANH đã chạm tệp**. Đây đúng bài `feedback_absence_looks_like_clean` (+S177). Không đủ lịch sử ⇒ in `KHONG DO DUOC`, **không đoán**.
**Chệch thứ hai, cũng khai:** V-1 **chỉ áp họ `sub-*`/`*-return`**, không áp `*-synthesis.md`/`run.md` (§2). Lane B đề xuất áp chung.
**Bằng chứng máy có RĂNG NGAY trên kho thật — nó bắt nợ của chính phiên dựng ra nó:** cờ `VANG *-synthesis.md` trúng **cả hai run-folder S180** (`S180-bookend-open` · `S180-adap-upgrade-pack-phased`) — ~620 KB artifact, **0 bản gộp**. Lead tự chạy, xác nhận đúng. Đây là vị từ đo **đúng thứ cần đo**, không phải cờ trang trí.
🔴 **Tác dụng phụ đã lường TRƯỚC, không tự vá vì bị cấm chạm tệp:** `scripts/naming-scan.ps1:174` hard-code `-Expect 54` cho `scripts/`. Thêm `artifact-integrity.ps1` ⇒ 55 ⇒ dòng `[!] lech ky vong 54` sẽ bắn, và `TONG` 233 → 234.
- Baseline **TRƯỚC** khi tôi thêm tệp (đã chạy, dán nguyên): `mau so: 54 muc`**không** có dòng `[!]`; `mau so TONG: 233`.
- Đây là **LỚP-5 (chép số tay) nằm ngay trong máy W1 vừa ký để chống LỚP-5**: chính `naming-standard.md` L3 cấm neo bằng số, mà máy soi của nó lại neo mẫu số bằng số hằng. **Mọi wave sau cũng sẽ bắn dòng này.** Tôi bị cấm sửa `naming-scan.ps1`**báo, không vá** (kèm mốc: nó đã đúng lúc W1 ký, và hỏng đúng ở wave kế tiếp).
---
## §4 — FAULT-INJECT: ba chiều + ca chuẩn N1. Chạy thật, dán nguyên output.
**Cây tạm:** `scratchpad/sbx-w2/`**git repo riêng** (bắt buộc, vì V-4 cần lịch sử git thật; không giả lập được bằng tệp phẳng). Kho thật **không bị chạm** (`-RepoRoot` trỏ cây tạm).
Vật cấy trong `2026-08-07-SBX-skeleton/`: `run.md` (nêu tên **6** artifact) · `sub-invest-fitmap-S180.md` = **bản 7.049 B rút thẳng từ `git show c7248b5:`** · `sub-empty-lane.md` = **0 byte** · `sub-good-lane.md` (vật ĐÚNG, có `[ĐANG ĐO]` **trong câu văn**) · `sub-nen-qua-tay.md` (nén, **không khai**) · `sub-nen-co-khai.md` (nén, **có khai nơi-đi**) · `invest-synthesis.md`.
### Chiều A — cấy vật HỎNG ⇒ phải FLAG từng cái. **4/4 BẮT.**
```
[RONG ] sub-empty-lane.md <- tep 0 byte
[CUT ] sub-invest-fitmap-S180.md <- V-2: 6/10 heading con nhan treo <=== CA N1
[CUT ] sub-invest-fitmap-S180.md <- V-1: ruot/khung 2.7 < K=3 (body 27 / head 10)
[NEN ] sub-nen-qua-tay.md <- V-4: con 0.015x so voi f0c1fef (4195 -> 65 ky tu)
VA so muc giam 60 -> 2, KHONG thay dong khai noi-di
[VANG ] sub-lane-khong-bao-gio-ha-canh.md <- V-3: run.md co neu ten, DIA KHONG CO
```
🔴 **CA CHUẨN N1 = BẮT, và bắt bằng HAI vị từ độc lập** (V-2 `6/10 heading` + V-1 `2,70 < 3`). Con số **6** khớp đúng con số lead đưa. Ô nghiệm thu 4 của hub — thứ mà **0/5 máy SE hiện tại trượt****đóng được**.
### Chiều B — cấy vật ĐÚNG ⇒ phải IM. **0 dương-giả.**
- `sub-good-lane.md` chứa `[ĐANG ĐO]` **trong câu văn** (*"Muc nao chua xong se mang nhan `[ĐANG ĐO]`"*) ⇒ **máy IM TUYỆT ĐỐI**, không một dòng nào. Đây đúng ca **citation-trap** mà W1-b dính ở vòng vá đầu.
- **Control-dương bắt buộc cho claim "IM"** (im lặng và thước hỏng trông giống hệt nhau) — đổi **duy nhất 1 thứ**: dời đúng cái nhãn đó **vào heading** `## §3 — Ket luan [ĐANG ĐO]`:
```
doi vao heading -> [CUT(V-2)] sub-good-lane.md <- 1/5 heading treo (1 hit)
tra lai nguyen trang -> grep -c good-lane = 0 (0 hit)
```
**Thước SỐNG.** Im lặng ở trên là im lặng THẬT, không phải máy mù.
- `sub-nen-co-khai.md` (nén 0,04x **nhưng có khai** *"đã dời verbatim sang `archive/…` (moved-not-cut)"*) ⇒ **`NEN-MIEN`, không phải cờ**. Miễn-trừ **hiện hình** đúng chữ AS-19.
- 🔸 **Khai một vết bẩn của chính chiều B, không giấu:** `sub-nen-co-khai.md` vẫn nhận cờ `KHONG-KHAI` (V-3) — **đúng**, vì tôi tạo nó bằng `cp` mà quên thêm tên vào `run.md`. Đó là **dương THẬT**, không phải dương-giả. Và nó tỉ lệ ruột/khung **đúng 3,00**, tức **thoát V-1 sát nút** — thêm 1 dòng ruột nữa là nó bị đánh oan. **Bằng chứng thứ hai cho kết luận §2: V-1 độ phân giải kém, chỉ dùng làm lưới phụ.**
### Chiều A2 (anti-Goodhart) — làm CẢ TẬP biến mất ⇒ số 0 phải mất quyền đọc thành "sạch". **2/2 ĐẠT.**
```
A2-a runs/ khong ton tai:
CO : 0/0 vat
[!] 0 co CHI co nghia khi mau so tren khac 0 VA so THIEU-TAP ben duoi = 0.
THIEU-TAP : 1 <- dem TACH khoi so co tren. Moi tap vang lam mot phep do BIEN MAT.
- [(goc)] thu muc runs/ vang mat
A2-b thu muc luot chay CON nhung 0 vat .md:
[2026-08-07-SBX-rong-tuot] FLAG THIEU-TAP: 0 vat .md
CO : 0/0 vat | THIEU-TAP : 1
```
`THIEU-TAP` in **RIÊNG, cạnh** số cờ, **không cộng vào** nó. Không có nhánh `[skip]` im lặng nào.
**Mã thoát cả 4 lượt chạy: `EXIT=0`** — đúng hợp đồng INFORM-only. Không lái mã thoát (W3b, sau khi anh chốt PA-2).
---
## §5 — Mục lục `runs/`: ĐO trước, rồi mới dựng
**Nguồn-1 (đĩa):** `88` **THƯ MỤC** lượt chạy. `ls` cho `90` **ENTRY** — chênh 2 = `README.md` + `_ledger.md`. *(Bẫy đơn-vị thứ 9 của phiên; lane B đã bắt N1 dính đúng chỗ này.)* Mới nhất: `2026-08-07-S180-bookend-open`.
**Nguồn-2 (`_ledger.md`):** `15` dòng dữ liệu, ngày lớn nhất **2026-06-18**. Khoảng chết **06-18 → 08-07 = 50 ngày**.
🔴 **Đối chiếu bằng KHỚP TÊN, không bằng phép trừ — và ra số KHÁC lane B:**
```
thu muc CO dong trong so : 14/88
thu muc KHONG co dong : 74/88
```
Lane B ghi **73** (= 88 15, suy từ số dòng). Số đúng là **74**, vì **15 dòng ↔ 14 thư mục**: `2026-06-18-mig54-pe-review`**hai** dòng (bản gốc + `(R2)`). ⇒ *"số dòng sổ" ≠ "số thư mục được sổ phủ"***bẫy đơn-vị thứ 10**, và nó nằm ngay trong phép đo dùng để kết luận sổ đã chết. Kết luận của lane B **không đổi**; chỉ con số đổi.
**`README.md` có phải tầng-B không? KHÔNG.** Nó nhắc **7** tên thư mục lượt chạy, và cả 7 là **ví dụ minh hoạ C8/C1** (5 folder cũ giữ `sub-md/`+`harvest/` + 2 ví dụ FLAT), không phải mục lục. Control-dương: `grep -c 'run-id' README.md` = **11** ⇒ lệnh chạy đúng, README **là tầng-A (quy ước) đang sống**, không phải tầng-B.
**Phán quyết: tầng-B CHẾT** (nghỉ-hưu-CÓ-KHAI, nhưng chức năng mục lục = 0). **Dựng lại thành DERIVE-VIEW.**
**Vật:** `.claude/workflows/runs/_index.md`**6.822 B, 88 dòng dữ liệu, 0 byte ngoài ASCII**, sinh bằng `artifact-integrity.ps1 -BuildIndex`. Header ghi thẳng **CẤM SỬA TAY / CẤM DÙNG LÀM NGUỒN** + lý do (sổ chép tay = nguồn-đôi, đúng bệnh đã giết `_ledger.md`) + câu **"tệp này KHÔNG được dùng làm nguồn-2"** (nó đọc thẳng đĩa ⇒ nó CHÍNH LÀ nguồn-1 — đúng cảnh báo lane B B-04). **KHÔNG đụng `_ledger.md`** (vật lịch sử, luật L1).
🟢 **Chứng KHÔNG làm vỡ máy cũ — đo trước/sau, cùng một lệnh:**
```
TRUOC SAU
nhip-no-probe kiem light 1/6 deep 14/15 | run-chua-gom 2 -> Y HET (chuoi trung khop)
detectors TOTAL FLAGS: 50 | dong cham runs/: 22 -> TOTAL FLAGS: 50 | 22
```
Lý do cơ học (đọc mã, không đoán): `nhip-no-probe.ps1:163` duyệt `-Directory`**tệp** ở gốc `runs/` vô hình với nó; `detectors:1102` lọc `^(sub-.+|.+-return)\.md$``_index.md` không khớp. **0/14 đoạn máy bị chạm.**
---
## §6 — Quét TOÀN KHO: hai lớp dương-giả tự lộ ra. Khai TRƯỚC khi vá.
Chạy trên 88 thư mục / **720 vật .md**:
```
CO : 294/720 CUT 21 | VANG 28 | KHONG-KHAI 245
THIEU-TAP : 35 (run.md khong neu ten tep nao => NGUON-2 rong)
```
🔴 **Lớp dương-giả 1 — `KHONG-KHAI` = 245/720 (34%).** Đây là *"có trên đĩa mà `run.md` không nêu tên"*. Vấn đề: **chưa từng có luật nào bắt `run.md` phải nêu tên tệp.** 245 cờ cho một luật không tồn tại = **dương-giả ngày đầu**, đúng thứ `naming-standard.md §8` gọi là *"cách nhanh nhất để người ta tắt máy soi"*.
🔸 **Nhưng con số ấy là CHỨNG NHÂN**, không phải rác: nó chứng minh **nguồn-2 mỏng tới mức nào**. ⇒ Xử theo phép thử *"cái mất đi là dương-giả hay chứng-nhân?"*: **hạ `KHONG-KHAI` từ CỜ xuống hạng mục ĐẾM RIÊNG kèm mẫu số** — y hệt cách `naming-scan.ps1` xử `MOT-LAN`. **Giữ số, bỏ cờ.** Không xoá thông tin nào.
🔴 **Lớp dương-giả 2 — `VANG` trỏ CHÉO lượt chạy.** Ví dụ `2026-06-18-h10-review/invest-synthesis.md`: `run.md` nêu tên đó vì `runs/README.md:39` (C2 bước 3) **BẮT** nó trỏ `input spec:` sang synthesis của **lượt chạy TRƯỚC**. Tệp có thật — **ở thư mục khác**. Máy tôi so trong **một** thư mục ⇒ đọc thành "vắng". **Đây là lỗi của máy, không phải nợ của kho.** ⇒ Vá đúng bản chất: phân giải tên trên **toàn cây `runs/`**; tìm thấy ở thư mục khác ⇒ **`TRO-CHEO`** (thông tin), không phải `VANG`.
🟢 **Hai cái KHÔNG được đụng — chúng là dương THẬT:**
- `run.md` **VẮNG** ở đúng **3** thư mục: `S117-pe-approve-minmax-range` · `S117-pe-luyke-finalize` · `S144-bootstrap`**khớp CHÍNH XÁC 3 tên `wave-plan-S180.md:69` liệt**. Xác nhận độc lập.
- `*-synthesis.md` vắng ở **2** thư mục S180 — **khớp CHÍNH XÁC `run-chua-gom 2`** của `nhip-no-probe`. **Hai máy độc lập, cùng một con số** ⇒ vị từ đo đúng thứ cần đo.
- **21 cờ `CUT`** trên kho thật (toàn V-1, ratio 0,672,94). Đây là 4,5% đã báo trước ở §2 — **không bất ngờ, đã khai mẫu số từ đầu**.
### §6-bis — Sau khi vá 2 lớp: số TRƯỚC → SAU, và cái gì mất đi
```
TRUOC SAU cai mat di la gi
CO tong 294 31 -
CUT 21 21 (giu nguyen - khong dong toi)
VANG 28 10 18 con tro CHEO hop le -> hang muc TRO-CHEO
KHONG-KHAI 245 0 245 -> hang muc DEM RIENG, van in kem mau so
THIEU-TAP 35 35 (giu nguyen)
```
🔴 **Tự soi theo phép thử Goodhart *"cái mất đi là dương-giả hay CHỨNG-NHÂN?"*:**
- 18 `TRO-CHEO`: **dương-giả thuần** — tệp CÓ THẬT, chỉ nằm thư mục khác, và `README.md:39` **bắt** phải trỏ như vậy. Bỏ khỏi cột cờ là **sửa máy cho đúng**, không phải giấu.
- 245 `KHONG-KHAI`: **là chứng-nhân****KHÔNG xoá, chỉ đổi hạng mục.** Con số vẫn in mỗi lượt, vẫn kèm mẫu số `/720`, kèm câu *"chưa hề có luật bắt run.md nêu tên tệp"*. Ai muốn biến nó thành luật thì **vẫn còn nguyên con số để đứng lên**.
- 21 `CUT`: **không đụng một dòng** — đây là vị từ lõi, hạ nó mới là Goodhart.
🟢 **10 cờ `VANG` còn lại — soi từng cái, cả 10 đều là dương THẬT:**
- **3** thiếu `run.md`: `S117-pe-approve-minmax-range` · `S117-pe-luyke-finalize` · `S144-bootstrap`**khớp chính xác 3 tên `wave-plan-S180.md:69`**.
- **2** thiếu bản gộp: 2 run-folder S180 — **khớp chính xác `run-chua-gom 2`** của `nhip-no-probe` (máy độc lập).
- **4** ở `2026-06-18-harness-audit-invest`: `run.md` nêu `sub-audit-{partA,partB,partC,h8hmw}.md`, **cả 4 chưa từng hạ cánh**. 🔸 **Khai công bằng, không thổi phồng:** đây **không phải phát hiện mới**`runs/README.md:31` đã kể chuyện đó (*"1 auditor fail-no-StructuredOutput + 2 truncated"*). Cái mới là: **lời giải thích nằm ở README, KHÔNG nằm trong `run.md`** — nên với người chỉ mở lượt chạy đó ra đọc, 4 lane này **vô hình suốt 50 ngày**, và **0/5 máy cũ** nêu tên chúng. Đó đúng chức năng điểm-danh-2-nguồn: **biến nợ vô hình thành nợ CÓ TÊN**.
- **1** `S134/sub-reviewer-precommit.md` — nêu tên, không có, không giải thích ở đâu cả.
---
## §7 — Khoản sàn GĐ-2(v) "Khai luôn điểm mù" — đã viết
**Vật:** `.claude/workflows/runs/README.md` — thêm **1 gạch đầu dòng thứ 5** vào **C7 (CAVEAT trung-thực)**, đúng chỗ lane B chỉ (§1 B-09 điểm 3: *"chi phí ≈ 1 đoạn văn"*). C7: 4 → 5 gạch.
Nội dung đóng cả 3 vế hub đòi: **(v-1)** thừa nhận thành văn *"vật chứng sinh SAU khi vai chạy ⇒ vai không nằm trong phạm vi tự soi của chính nó"* — và nói rõ điều đó áp cho **cả `artifact-integrity.ps1` vừa dựng**, không tự miễn cho mình; **(v-2)** trỏ `closeout-sentinel` cặp vô-điều-kiện + `ring2-audit` **pin đích danh, cấm glob-latest**; **(v-3)** trỏ bookend `@open`.
🔴 **Và khai luôn chỗ (v-3) YẾU — tôi tự đo lại, không chép lane B:**
```
grep -cE 'run-folder|runs/' .claude/agents/lead-stale-auditor.md -> 0
control-duong cung tep: grep -c 'FLAG' -> 4 (lenh chay dung)
grep -cE 'run-folder|runs/' .claude/agents/lead-gap-auditor.md -> 1
hit do la gi? :39 = dong MO TA lop `gap-incident-unrecorded`, KHONG phai chi thi doc run-folder
```
**Nhịp CÓ, chỉ thị KHÔNG.** Đoạn văn ghi thẳng câu *"tới khi nợ đó đóng, đừng ghi (v) là đã phủ trọn"* + giao nợ về **gói-B persona của W3** (đúng chỗ `wave-plan-S180.md:85` đã xếp). **Tôi KHÔNG tự sửa persona** — 2 tệp đó thuộc gói restart lớp B/C, sửa lẻ ở đây là ăn lẹm wave sau.
---
## §8 — CHỐT
### 8.1 — Không làm vỡ 14 đoạn máy: đo TRƯỚC/SAU, cùng lệnh
```
TRUOC SAU
nhip-no-probe ...deep 14/15 ok | run-chua-gom 2 | ... -> chuoi TRUNG KHOP tung ky tu
detectors TOTAL FLAGS: 50 | cham runs/: 22 -> TOTAL FLAGS: 50 | 22
```
**0/14 đoạn máy bị chạm.** Cơ học: `nhip-no-probe:163` duyệt `-Directory` (tệp gốc `runs/` vô hình) · `detectors:1102` lọc `^(sub-.+|.+-return)\.md$` (`_index.md` không khớp).
### 8.2 — Tác dụng phụ ĐÃ DỰ BÁO rồi VERIFY (không phải phát hiện sau)
Dự báo ở §3, chạy lại sau khi land — khớp:
```
scripts/ mau so: 54 muc (khong co dong [!]) -> 55 muc [!] lech ky vong 54
TONG 233 ten -> 234 ten
```
`naming-scan.ps1:174` neo mẫu số bằng **số hằng****mọi wave sau đều bắn dòng này**. Đây là **LỚP-5 nằm trong chính máy W1 ký để chống LỚP-5** (`naming-standard.md` L3 cấm neo bằng số). **Tôi bị cấm sửa tệp đó ⇒ BÁO, không vá.**
### 8.3 — Đối chiếu 13 khoản lane B (mẫu số 13, khai từng dòng, cấm nén thành số tổng)
| Khoản | Trước W2 | Sau W2 | Bằng chứng |
|---|---|---|---|
| B-04 mục lục 2 tầng | tầng-B CHẾT | ✅ **ĐÓNG** | `_index.md` derive-view 6.822 B / 88 dòng |
| B-06 máy 4 vị từ | 2/4, sai tầng | ✅ **ĐÓNG** | 4 vị từ, fault-inject 3 chiều |
| B-08 điểm danh 2 nguồn | THIẾU trọn (không có vế phải) | ✅ **ĐÓNG** | V-3 đọc `run.md`, in TÊN không in số tổng |
| B-09 khai điểm mù (v) | 1 trọn + 2 nửa | ✅ **ĐÓNG** | C7 gạch thứ 5 (4→5) |
| B-13 đối chứng dương | **TRƯỢT (đã chạy)** | ✅ **ĐÓNG** | tệp 0 byte → `RONG`, chiều A |
| B-05 vai cấm sửa | ĐÃ-CÓ | giữ | không đụng |
| B-11 ghi trước khi bắn | ĐÃ-CÓ | giữ | không đụng |
| B-07 ba nhịp | 2/3 | 🟡 **NỬA** | máy chạy được ngay sau lượt đắt (`-RunId`) nhưng **chưa cắm vào cửa nào** |
| B-12 ghi ngay khi kết luận về | luật có, máy không | 🟡 **NỬA** | máy có rồi, **chưa tự động** |
| B-01 liệt từng cửa | NỬA | ❌ chưa | ngoài 4 deliverable |
| B-02 khuôn tối thiểu thành văn | NỬA (END-line ghost-wire) | ❌ chưa | ngoài 4 deliverable → W3 |
| B-03 `secrets_sweep` phủ `runs/` | THIẾU | ❌ chưa | rider-6, ngoài 4 deliverable |
| B-10 nghiêm trọng theo chi phí | THIẾU (đang ngược chiều) | ❌ chưa | rider, ngoài 4 deliverable |
**7/13 đứng** (5 đóng MỚI + 2 sẵn có) · **2 nửa** · **4 chưa chạm**.
### 8.4 — 6 ô nghiệm thu hub (mẫu số hub dùng để cấp nấc)
| Ô | Trước | Sau |
|---|---|---|
| 1 liệt từng cửa + đích ghi | nửa | nửa |
| 2 vai điểm danh cấm sửa | đạt | đạt |
| 3 máy 4 vị từ | **trượt** | ✅ **đạt** |
| 4 đối chứng dương (gài tệp rỗng → phải bắt) | **trượt** | ✅ **đạt** |
| 5 sổ tồn tại + **trần dung lượng khai** | nửa | 🟡 nửa — sổ dựng lại rồi, **trần chưa khai** |
| 6 điểm danh 2 nguồn, in chênh | **trượt** | ✅ **đạt** |
**1,5/6 → 4,5/6.** 🔴 `wave-plan-S180.md:69` đặt acceptance **6/6****tôi đạt 4,5/6, KHÔNG phải 6/6.** Ô 1 + ô 5 nằm ngoài 4 deliverable lead giao lượt này. **Không tick ô chưa chạy.**
### 8.5 — Tệp tôi động (chỉ 4; git status còn tệp khác là của lane W1/W0b, KHÔNG phải tôi)
`scripts/artifact-integrity.ps1` (mới, 25.489 B) · `.claude/workflows/runs/_index.md` (mới, 6.822 B) · `.claude/workflows/runs/README.md` (+1 gạch C7) · nhật ký này.
**KHÔNG chạm:** `STATUS.md` · `HANDOFF.md` · `CLAUDE.md` · `broadcasts/_index.md` · `naming-standard.md` · `naming-scan.ps1` · `adap-upgrade-pack-*.md` · `_ledger.md` (vật lịch sử, L1) · persona (gói-B W3).
<!-- END sub-w2-luoi-ghi-dia — VERDICT: 4/4 vi tu · fault-inject 3/3 chieu (A 4/4 bat · B 0 duong-gia co control-duong · A2 2/2 THIEU-TAP) · ca-N1 BAT bang 2 vi tu doc lap (V-2 6/10 heading + V-1 2,70<3) · muc luc DUNG LAI (derive-view) · 7/13 khoan dung + 2 nua · 6 o nghiem thu 1,5/6 -> 4,5/6 (KHONG 6/6) · 0/14 doan may vo · exit 0 -->

View File

@ -106,6 +106,8 @@ Sổ tất-cả run, 1 bảng. Mỗi run **2 lần ghi (2-nhịp)**:
- **Cấu trúc phẳng giảm fragile từ 2 → 1, KHÔNG triệt-tiêu.** Bỏ subfolder xoá được điểm-hay-quên "dựng sẵn `sub-md/`+`harvest/`" (engine giờ ghi 1 cấp, **no subfolder-to-forget**). NHƯNG còn **dư-lượng**: em-main VẪN phải nhớ ghi `<stage>-synthesis.md` mỗi run (close-gate L3 bắt nếu thiếu). Điểm-yếu **giảm 1-trong-2**, chứ không biến mất → C2 vẫn bắt-buộc.
- **3-layer = LƯỚI, KHÔNG khoá-cứng-cùng-lúc-fire.** L1/L2/L3 bắt lỗi **sau khi** việc đã xảy ra (post-hoc) hoặc nhắc **dựa-trên-input em-main-bơm** — giảm xác-suất sót, KHÔNG chặn tại-đúng-thời-điểm-fire. Phòng-thủ-nhiều-lớp, KHÔNG bảo-đảm tuyệt-đối.
- **G-015 no-overclaim — TRACKED ≠ read-only-ENFORCED.** Run-folder git-tracked KHÔNG biến sub thành read-only: sub **vẫn giữ Bash** (write-channel mở — ghi-ngoài-repo git-diff mù / curl Qdrant). Containment THẬT (model dưới) = em-main single-writer + git-diff(in-repo) + chunk-count(RAG), defense-in-depth — KHÔNG sandbox cứng, KHÔNG claim "ENFORCED".
- 🔴 **ĐIỂM MÙ CỦA CHÍNH VAI ĐIỂM DANH — vai điểm danh KHÔNG tự soi được mình** (khoản sàn GĐ-2(v), adopt S180/W2). Vật chứng của một vai **sinh ra SAU khi vai đó chạy xong**; nên bất kỳ vai nào đi điểm danh vật chứng — kể cả `scripts/artifact-integrity.ps1`, kể cả `ring2-audit` — đều **không nằm trong phạm vi tự soi của chính nó**. Một lượt soi đơn độc **luôn** để hở đúng phần cuối cùng nó vừa đẻ ra. Phủ chỗ hở đó cần **hai chân, thiếu chân nào cũng hở**: (a) **vai thứ hai CÙNG PHIÊN**`closeout-sentinel.ps1` chạy cặp `{harvest-curator, tooling-auditor}` vô-điều-kiện, và `ring2-audit` **PIN đích danh run-folder tươi (cấm glob-latest)**, chính chữ "pin đích danh" là thứ cho phép vai-sau soi vật-chứng-của-vai-trước; (b) **lượt soi ở ĐẦU PHIÊN SAU** — bookend `@open` (`session-start.md`) bắt phần lọt qua đêm.
🔸 **Khai thẳng chân (b) đang YẾU, đo được, đừng đọc thành đã-đủ:** nhịp thì có, **chỉ thị thì không**. Đo 2026-08-07: `grep -cE 'run-folder|runs/' .claude/agents/lead-stale-auditor.md` = **0** (control-dương cùng tệp: `grep -c FLAG` = **4** ⇒ lệnh chạy đúng, 0 là 0 THẬT); `lead-gap-auditor.md` = **1** hit, mà hit đó là dòng mô tả lớp `gap-incident-unrecorded` (`:39`), **không phải** lệnh đọc run-folder phiên trước. ⇒ cặp bookend **có chạy đúng nhịp** nhưng **spec của cả hai vai không hề bảo chúng soi RUỘT vật chứng lượt chạy phiên trước**. Cái đang phủ (b) trên thực tế chỉ là `closeout-sentinel` M5 (delta thư mục vai) + `nhip-no-probe` `run-chua-gom`**cả hai đều không đọc ruột tệp**. Nợ này có tên, giao gói-B persona của W3; tới khi nó đóng, **đừng ghi (v) là đã phủ trọn**.
---

View File

@ -0,0 +1,106 @@
# `runs/_index.md` - MUC LUC SONG (DERIVE-VIEW, sinh tu dia)
> **CAM SUA TAY. CAM DUNG LAM NGUON.** Tep nay duoc SINH LAI tron ven bang
> `powershell -File scripts/artifact-integrity.ps1 -BuildIndex`. Moi dong deu doc thang tu dia.
> Sua tay o day = de ra nguon-doi, dung benh da giet `_ledger.md` (so chep tay, RETIRED H18-B S100:
> 15 dong, toan 2026-06-18, trong khi dia da di toi hom nay).
>
> **Tang-A (goi theo loai) = `README.md` canh ben** - chuc nang, ai ghi, ai doc, bo tep chuan.
> **Tang-B (muc luc song) = tep nay.** Hai tang, khong tang nao chep tang kia.
>
> [!] **Tep nay KHONG duoc dung lam nguon-2 cua diem danh 2 nguon** - no doc thang dia,
> tuc no CHINH LA nguon-1. Nguon-2 la anh chup taskList trong tung `run.md` (ghi TRUOC launch).
- **Sinh luc:** 2026-08-07 16:57
- **Mau so:** 88 thu muc luot chay (dem THU MUC, khong dem entry - `ls` con thay ca tep README/_ledger/_index)
| luot chay | run.md | vat .md | ban gom | co V-2 (nhan treo) | byte |
|---|---|---|---|---|---|
| `2026-06-18-h10-implement` | co | 2 | co | 0 | 4304 |
| `2026-06-18-h10-invest` | co | 2 | co | 0 | 6030 |
| `2026-06-18-h10-review` | co | 2 | co | 0 | 4184 |
| `2026-06-18-h11-audit` | co | 2 | co | 0 | 9487 |
| `2026-06-18-h11-checklist-verify` | co | 2 | co | 0 | 5327 |
| `2026-06-18-h11-doublecheck` | co | 2 | co | 0 | 5218 |
| `2026-06-18-h11-implement` | co | 4 | co | 0 | 32151 |
| `2026-06-18-h11-review` | co | 2 | co | 0 | 5811 |
| `2026-06-18-h910-curate` | co | 2 | co | 0 | 2928 |
| `2026-06-18-h910-finalize` | co | 2 | co | 0 | 4661 |
| `2026-06-18-harness-audit-invest` | co | 2 | co | 0 | 8120 |
| `2026-06-18-harness-fix-implement` | co | 4 | co | 0 | 6537 |
| `2026-06-18-harness-fix-review` | co | 5 | co | 0 | 7187 |
| `2026-06-18-mig54-pe-review` | co | 2 | co | 0 | 8692 |
| `2026-07-11-h21-mtv3-adopt` | co | 3 | co | 0 | 13937 |
| `2026-07-12-h22-wal-adopt` | co | 6 | co | 0 | 40600 |
| `2026-07-12-S112-pe-signoff-close-review` | co | 5 | co | 0 | 38816 |
| `2026-07-12-S112-pe-signoff-save-advance` | co | 7 | co | 0 | 58976 |
| `2026-07-12-S112-supplier-excel-import` | co | 7 | co | 0 | 54341 |
| `2026-07-12-S112-supplier-import-close-review` | co | 5 | co | 0 | 24980 |
| `2026-07-12-S113-supplier-import-v2-invest` | co | 3 | co | 0 | 23684 |
| `2026-07-12-S114-multi-ncc-per-hangmuc` | co | 3 | co | 0 | 21050 |
| `2026-07-13-pe-negative-quote` | co | 3 | co | 0 | 22504 |
| `2026-07-13-presence-not-age-adopt` | co | 9 | co | 0 | 101884 |
| `2026-07-14-S117-pe-approve-minmax-range` | **VANG** | 1 | **VANG** | 0 | 4202 |
| `2026-07-14-S117-pe-luyke-finalize` | **VANG** | 1 | **VANG** | 0 | 5828 |
| `2026-07-15-S119-adap-6-broadcast` | co | 21 | co | 0 | 363699 |
| `2026-07-15-S122-retro-harvest-7-orphan` | co | 2 | co | 0 | 14778 |
| `2026-07-15-S124-adap-wave-reply` | co | 8 | co | 0 | 71618 |
| `2026-07-16-S125-fable-real-adap-review` | co | 3 | co | 0 | 13938 |
| `2026-07-16-S126-adap-spec-execute` | co | 4 | co | 0 | 16264 |
| `2026-07-16-S127-adap-dot-16-07` | co | 23 | co | 0 | 151017 |
| `2026-07-16-S129-adap-errata-16-07` | co | 10 | co | 0 | 88060 |
| `2026-07-17-S133-pe-budget-freeze-daduyet` | co | 8 | co | 0 | 72886 |
| `2026-07-17-S134-pe-luyke-tam-tinh` | co | 8 | co | 0 | 70033 |
| `2026-07-17-S135-adap-khung-nhip-nam-vong` | co | 7 | co | 0 | 125237 |
| `2026-07-17-S136-laneB-remainder` | co | 4 | co | 0 | 25308 |
| `2026-07-17-S137-h24-light-audit` | co | 4 | co | 0 | 17822 |
| `2026-07-17-S138-adap-3-ban-17-07` | co | 8 | co | 0 | 73987 |
| `2026-07-20-S141-adap-dot-9-10-bo-ba-sub` | co | 6 | co | 0 | 45458 |
| `2026-07-22-S142-adap-9-10-vong-2` | co | 4 | co | 0 | 46610 |
| `2026-07-22-S143-closeout-audit` | co | 7 | co | 0 | 69921 |
| `2026-07-22-S144-adap-dot-11` | co | 13 | co | 0 | 159322 |
| `2026-07-22-S144-bootstrap` | **VANG** | 3 | co | 0 | 36297 |
| `2026-07-22-S144-trio-first-run` | co | 5 | co | 0 | 43378 |
| `2026-07-22-S145-apply-hub-answers` | co | 16 | co | 0 | 169033 |
| `2026-07-24-S148-h24-force-fire` | co | 3 | co | 0 | 32476 |
| `2026-07-24-S149-dong-du-5-vong` | co | 9 | co | 0 | 119969 |
| `2026-07-24-S149-hoi-tu-bookend` | co | 10 | co | 0 | 110973 |
| `2026-07-24-S149-owner-gated-3-khoan` | co | 4 | co | 0 | 33113 |
| `2026-07-25-S149-adap-backlog` | co | 11 | co | 0 | 115002 |
| `2026-07-25-S150-closeout-bookend` | co | 8 | co | 0 | 151979 |
| `2026-07-25-S151-h24-open-bookend` | co | 12 | co | 0 | 176285 |
| `2026-07-25-S151-trio-memory` | co | 6 | co | 0 | 39594 |
| `2026-07-25-S152-h24-open-bookend` | co | 17 | co | 0 | 312510 |
| `2026-07-25-S152-trio-memory` | co | 5 | co | 0 | 26394 |
| `2026-07-26-S153-bookend-close` | co | 8 | co | 0 | 134288 |
| `2026-07-26-S153-bookend-open` | co | 11 | co | 0 | 157771 |
| `2026-07-26-S153-ctx-adopt` | co | 9 | co | 0 | 107921 |
| `2026-07-26-S154-bookend-open` | co | 13 | co | 0 | 262511 |
| `2026-07-27-S155-pe-delete-approver` | co | 23 | co | 0 | 395706 |
| `2026-07-27-S156-bch-post-ceo-flow` | co | 7 | co | **2** | 99810 |
| `2026-07-28-S157-ke-hoach-ky-ket-hd` | co | 8 | co | 0 | 187255 |
| `2026-07-28-S158-bookend-close` | co | 12 | co | 0 | 133458 |
| `2026-07-28-S158-day-wake-probe-first` | co | 4 | co | 0 | 45653 |
| `2026-07-29-S159-bookend-open` | co | 12 | co | 0 | 237299 |
| `2026-07-29-S159-tong-quan-pipeline-menu` | co | 12 | co | 0 | 178291 |
| `2026-07-29-S160-khkk-dryrun-plan` | co | 20 | co | 0 | 247384 |
| `2026-07-29-S161-khkk-w1-schema` | co | 8 | co | 0 | 90801 |
| `2026-07-29-S161-khkk-w2-crud` | co | 7 | co | 0 | 57099 |
| `2026-07-29-S161-khkk-w3-duyet` | co | 8 | co | 0 | 70218 |
| `2026-07-29-S161-khkk-w6-duongong` | co | 6 | co | 0 | 35614 |
| `2026-07-29-S161-khkk-w7-bancung` | co | 6 | co | 0 | 70535 |
| `2026-07-30-S162-bookend-close` | co | 12 | co | 0 | 189038 |
| `2026-07-30-S162-cay-4-folder-gd` | co | 5 | co | 0 | 54238 |
| `2026-07-30-S163-bookend-open` | co | 12 | co | 0 | 288856 |
| `2026-07-31-S164-4gd-khkk-fanout` | co | 68 | co | 0 | 922355 |
| `2026-08-01-S166-h24-deep-midsession` | co | 5 | co | 0 | 95006 |
| `2026-08-01-S168-bookend-close` | co | 12 | co | 0 | 169956 |
| `2026-08-01-S169-bookend-open` | co | 33 | co | 0 | 823033 |
| `2026-08-04-S171-khkk-ui-mirror-pe` | co | 10 | co | 0 | 235761 |
| `2026-08-05-S172-bookend-close` | co | 12 | co | 0 | 285847 |
| `2026-08-05-S173-bookend-open` | co | 12 | co | 0 | 374098 |
| `2026-08-05-S174-khkk-style-audit` | co | 8 | co | 0 | 195666 |
| `2026-08-05-S175-duan-budget-column` | co | 3 | co | 0 | 18851 |
| `2026-08-06-S176-doi-style-3-vai` | co | 4 | co | 0 | 31615 |
| `2026-08-07-S180-adap-upgrade-pack-phased` | co | 26 | **VANG** | 0 | 618710 |
| `2026-08-07-S180-bookend-open` | co | 12 | **VANG** | 0 | 72218 |