wal: flush 20260810T0152

This commit is contained in:
pqhuy1987
2026-08-10 01:52:51 +07:00
parent 718d59a825
commit 7b1ac2cd46
7 changed files with 440 additions and 8 deletions

View File

@ -1,5 +1,8 @@
# Tooling-Auditor Agent — Persistent Memory
- [Máy mồ-côi + addendum lệch vế](method_orphan_machine_audit.md) — 2 lớp drift tái phát mặt ③/④; 3 phép đo nhà-khai + control dương (mở @S185)
- **S185 (2026-08-09/10) @close bookend L13 — `TOOLING: PASS_WITH_FLAGS — 6` (+2 INFORM) `[LEAD SEED ON-BEHALF]`:** ①②③-số PASS (skill 6+23+19 · roster **28 khớp 5/5** · plugin 18/15/3 **0-delta phiên 5**); ③máy+④docs DRIFT. F-2 HIGH = máy mồ-côi **thứ 3** ngay phiên sau khi `(k-ter)` dựng để diệt bệnh đó. F-3 addendum đóng 4.2 bỏ 4.4. F-6: run.md tick 0/11 ⇒ luật ONE-SHOT vừa land **mất la-bàn ngay lượt đầu**. Nguồn `runs/2026-08-09-S185-bookend-close/sub-tooling-auditor.md`.
- **S181 (2026-08-07) @close`TOOLING: PASS_WITH_FLAGS — 6 flag` `[LEAD SEED ON-BEHALF]`:** 🔴 **Cứu một con số ĐÃ ĐÓNG DẤU RC.** Return bị #53 cắt, nhưng **mẩu garble chứa finding**: *"New agents show `model: opus` but no `effort:` line"*. Lead đo lại: 28 vai · 28 `model: opus` · chỉ **26** `effort: max`, thiếu đúng 2 vai W4b. Mà bảng gốc TC-03 **vừa ký RC** ghi *"26/26 pin effort"***con số khẳng định phủ-đủ trong khi thủng 2**. Vá cả persona lẫn số. ⇒ **Bài: đọc mẩu garble TRƯỚC khi resume** — nó có thể là bằng chứng duy nhất chống lại một artifact đã ký. F-1/F-4 cùng một lượt sinh vai sót **2 khoá** (`effort` + `memory: project`), không phải 1. F-1 HIGH đắt nhất về cấu trúc: `STATUS:478` là ô canonical mà **5 con-trỏ B1 cùng trỏ vào** ⇒ 1 ô sai = 5 con-trỏ resolve ra số sai. 🔸 Tự bác 2 ứng-viên flag: `naming-baseline.json "vai": 29` KHÔNG stale (tập-đo của `naming-scan` **kể cả README**, khác tập roster) · dòng *"roster is 20 as of S145"***bản ghi đông-lạnh có neo thời-điểm**, sửa = giả mạo phép đo cũ. Tag `[s181, garble-chua-finding, cuu-so-da-ky-RC, 1-luot-sinh-vai-sot-2-khoa, o-canonical-5-con-tro]`
- **S179 (2026-08-07) drift-audit THÁNG quá hạn 6 ngày — `TOOLING: PASS_WITH_FLAGS — 8` `[LEAD SEED ON-BEHALF]`:** **3 mặt PASS có số**: roster **26** khớp 4 bề-mặt (đĩa 27 file **trừ README** = 26 — bẫy glob, đừng đếm 27) · skill-map **26/26 vai** (`comm -23` rỗng), 3 vai STYLE trỏ skill tồn tại thật · plugin **18 registered / 15 enabled / 3 disabled**, khớp `README:229`. **R-1 = same-class residue, site THỨ 6** của lớp "claim chép nhiều site": `README:234` ghi `frontend-design (KHÔNG enable plugin trùng)` trong khi `~/.claude/settings.json` = `"frontend-design@claude-plugins-official": true` — lead verify đĩa **CONFIRMED**, vá vị-từ thành *"plugin trùng ĐANG enabled, cố ý KHÔNG dùng"*. Đây là lần **thứ 3** lớp này tái phát trong cùng file (S153 → S172 → nay). **F-6** bắt đúng bẫy tự-sinh: `CLAUDE.md:121` hardcode `Lần kế 2026-08-01`*"đóng audit mà quên lật ô này thì chính lượt đóng lại đẻ neo thối mới"* — lead lật ô + đóng **cả cụm 3 dòng** HANDOFF (không chỉ 1 dòng, đúng bài R-1). **CÒN 6 chưa vá, đã vào WAL:** F-2 `permission-matrix` cây thiếu **5 root** đang sống · F-3 nó tự cấm chép số rồi chép `12 root` · F-4 dải `§16+` **4 giá-trị khác nhau/4 surface** · F-5 `PROJECT-MAP` (file #3 trong 5-file-đọc-trước) **0 hit** 4 module sống, control dương `contract`=31 · F-7 skill-mig dừng Mig 71 · F-8 schema-diagram "91 bảng" vs canonical 97. 🔴 #53 garble, resume vớt trọn. 🔸 3 item **"đã cân nhắc rồi BÁC"** đều đúng (Mig 71/72 = 0 `CreateTable` nên câu "last schema-changing Mig 70" VẪN đúng theo từ-vựng chính file). Tag `[s179, drift-audit-thang, same-class-residue-site-6, dong-audit-de-neo-thoi, roster-26-bay-glob, con-6-chua-va]`

View File

@ -0,0 +1,25 @@
---
name: method-orphan-machine-audit
description: Cách bắt "máy mồ-côi" (script dựng xong nhưng 0 cửa nghi-thức gọi) và bắt "addendum lệch vế" — 2 lớp drift tái phát ở mặt ③/④
metadata:
type: feedback
---
**Máy MỚI sinh trong phiên = ứng-viên mồ-côi số 1. Đo nhà-khai bằng 2 bề-mặt + control dương, đừng đọc "script chạy tốt" thành "script sống".**
**Why:** `session-end §L.b(k-ter)` ra đời @S181 chỉ để vá đúng bệnh này cho 2 máy (`naming-scan` + `artifact-integrity`) — nó tự khai *"cả 2 máy có 0 cửa nghi-thức gọi … chỉ sống khi có người gõ tay ⇒ hết phiên là hết chạy"*. Ngay phiên kế (S185) bệnh tái phát trên máy mới nhất `loi-hua-may-scan.ps1` (30 KB, chạy tốt, self-test xanh, **0 cửa gọi**). Máy đúng + fault-inject có răng + 0 đường gọi = **chết câm** — cùng họ `feedback_guard_built_but_never_called``feedback_dryrun_finds_promised_but_unlanded`.
**How to apply:** mỗi @bookend-close, `ls scripts/*.ps1` so phiên trước; với mỗi máy MỚI chạy đúng 3 phép:
1. `grep -rn "<tên-máy>" .claude/commands/` — cửa nghi-thức nào gọi?
2. `grep -rn "<tên-máy>" docs/` — có nhà khai (engine doc / STATUS) không?
3. **Control dương bắt buộc:** cùng 2 lệnh trên với một máy ĐÃ có cửa (`naming-scan` → ~9 file). 0-hit không kèm control = không phân biệt được *vắng thật* với *thước hỏng* (bài `feedback_prod_db_verify_integrated_auth`).
Đề-xuất rẻ nhất luôn là **thêm 1 dòng vào cửa ĐÃ CÓ** (`(k-ter)`), không đẻ cửa/vai mới. Kiểm cả `git status` — máy còn `??` untracked thì nằm ngoài cả git-diff backstop.
---
**Lớp anh em: ADDENDUM LỆCH VẾ — đóng vế treo này mà bỏ vế treo kia trong CÙNG file.**
**Why:** @S185 lead đóng vế 4.2 của `adap-reports/2026-07-19-…` bằng khối `ADDENDUM @S185` (đúng doctrine *block mới, không sửa dòng cũ*), nhưng vế **4.4** trong chính file đó vẫn khai *"máy quét … CHƯA CÓ"* — trong khi máy đã được dựng **cùng phiên**. Tài-liệu duy nhất nói về máy vẫn khai nó không tồn tại.
**How to apply:** thấy một file có addendum mới ⇒ liệt **mọi vế treo** trong file (`grep "4\.[0-9]"` hoặc enum tương ứng) rồi hỏi từng vế *"phiên này có chạm không?"*. Vá = **addendum thứ 2**, 🔴 CẤM sửa row cũ (row đúng lúc viết — sửa = giả-mạo phép đo cũ, luật S143/S172). Đây là biến-thể của `được-chỉ-1-chỗ ⇒ grep CẢ LỚP` áp cho *vế treo trong 1 file* thay vì *site trong 1 lớp*.

View File

@ -0,0 +1,16 @@
# harness-audit-return — @bookend-close S185 (lead scribe §2.1.9(c))
> Vai trả 2026-08-10 ~01:5x (2 nhịp resume #53 — artifact-first cứu trọn) · label `Vòng-3 harness-audit close s185` · artifact `sub-harness-audit.md` 23.855 B kết `END`
AUDIT: 40-ĐẠT/4-TRƯỢT per-claim · falsify 12-HELD/5-BROKE · re-chạy 5 instrument/183 số — 180 khớp byte-exact (3 lệch TRUY ĐƯỢC, 0 bịa)
1. **PIN GATE PASS** — eval 7.495 B · refine 6.861 B non-empty; mtime-chain 22:17→22:30→01:33→audit ⇒ tuần-tự HELD. F14@S162 KHÔNG tái phát: `git diff 93173099 HEAD -- .claude/agent-memory` RỖNG ⇒ cây đóng băng từ 22:18, 3 nấc đo CÙNG MỘT CÂY (Mirror C1 giữ).
2. 🔴 TRƯỢT nặng nhất — **eval §3 tái phạm đúng lớp S173 nó đang viện dẫn**: nhãn "7 MỐC — liệt đủ" nhưng đĩa có **8** — sót **S154 = 176.696** (stdout máy `…S154-bookend-open/harness-eval-return.md:163`); bước S153→S159 trình 1 bước thật là 2 (4.532/4.449). ✅ Nhẹ hơn S173: "đơn-điệu giảm" vẫn ĐẠT trên cả 8 mốc + eval tự khai bước cuối GỘP.
3. 🔴 **eval T24 sai NGƯỢC hướng**: S173 đã là 12/13=92% (2 nguồn) — 85% là S172. Thật = **impl-fe ĐỨNG YÊN 12 phiên, mục MISS vẫn vô danh** ⇒ CỦNG CỐ E1 (refine không nhại "tốt lên" — giữ đúng nấc).
4. 🔴 **BẺ refine — xác-minh vòng-tròn**: "8.679 = khớp máy TỪNG BYTE" là tautology (`gate:186` afterEst = bytes moved). Đo đĩa: **8.638**41 = `:163` `+2 ~ CRLF est` trên file thuần-LF ⇒ +1 B/dòng × 41 dòng; chứng 3 lần độc lập 41/6/4). Kéo `638→634`. Cả 2 lệch NHỎ, cùng chiều, KHÔNG lật kết luận. ⚠️ Hệ quả lan: mọi `after-est` của gate OVERSTATE lượng drain ⇒ after-est thật CAO HƠN ⇒ kết luận "vẫn > cap" CÀNG VỮNG (lệch hướng an-toàn).
5.**Nấc ĐO 0 bịa số**: 140/140 ô JSON EXACT · A7 429/429 · T9 top-5 drift 5/5 EXACT · audit tự stat 6 file hotload dựng lại 134.573 & 75.427 khớp · `pull-cach 4→5` = đồng-hồ (`:207 Now.Date`) — HELD eval trong sạch.
6.**Nấc ĐỀ-XUẤT 18/20 ĐẠT**: `:104`=431 B EXACT · `Runs`=8.463 EXACT · khối-trên-heading-đầu 6/6 BYTE-EXACT (% làm tròn XUỐNG = bảo thủ) · parser `:153/:159/:177` khớp nguyên văn · span≠nhãn 4/4 verify (impl-be+lead-stale ruột tới S185) ⇒ **cú tự-bác A1 đã chặn một action PHÁ thật**.
7. 🔴 **Audit bỏ giả-thuyết bênh máy, kết ngược**: `value_protect` **0/10 pattern phủ hợp-đồng-vai** ⇒ máy ĐÚNG LUẬT CỦA NÓ khi rủ drain `Role baseline`**luật mới mù**. E5 đứng, root-cause SÂU HƠN refine nói. **CHÍNH SÁCH — chỉ owner phán**; audit cố ý không đề-xuất đổi (tiền-lệ S173).
8. **2 tự-nghi đều HELD** (bịa-S154? — không, stdout máy; verdict-tổng-che-TRƯỢT? — liệt từng dòng 44 claim). **5 trục NHƯỜNG** ghi §8: harvest→H2 · hot-feed→H24 · **doc-stale MỚI: `nhip-no-probe.ps1:22` khai "4 vế" trong khi code `:264` in 5 vế → tooling**.
Chi tiết: `sub-harness-audit.md` (§2 phép bẻ · §3 bảng 8 mốc · §4 T24 · §5 bảng 44 claim · §6 falsify 17 phép · §7 re-chạy · §8 nhường · §9 containment).

View File

@ -7,13 +7,13 @@
| vòng | vai | label | trạng thái |
|---|---|---|---|
| gom-harvest (uỷ-quyền 71) | harvest-curator | `Core harvest-curator gom s185` | [ ] |
| script-arm đo (SAU gom — bài-4/f-bis) | máy ×5 | — | [ ] |
| V3 trio ĐO | harness-eval | `Vòng-3 harness-eval close s185` | [ ] |
| V3 trio ĐỀ-XUẤT | harness-refine | `Vòng-3 harness-refine close s185` | [ ] |
| V3 trio KIỂM | harness-audit | `Vòng-3 harness-audit close s185` | [ ] |
| V2 H24 DEEP (19/15) | lead-stale-auditor | `Vòng-2 lead-stale deep s185` | [ ] |
| V2 H24 DEEP | lead-gap-auditor | `Vòng-2 lead-gap deep s185` | [ ] |
| gom-harvest (uỷ-quyền 71) | harvest-curator | `Core harvest-curator gom s185` | [x] 11 vai/16 entry + 7 tệp + 7-lane-placed · 698.109B · GATE-FAIL-2-trục→lead APPEND trọn |
| script-arm đo (SAU gom — bài-4/f-bis) | máy ×5 | — | [x] script-arm-output.md 22.950B · f-bis lần đầu: 4 vai over-30KB SAU-append |
| V3 trio ĐO | harness-eval | `Vòng-3 harness-eval close s185` | [x] MIXED 36-trục/11-signal · provenance 4/4 byte-exact |
| V3 trio ĐỀ-XUẤT | harness-refine | `Vòng-3 harness-refine close s185` | [x] 3 action + 15 BÁC + 5 ESC · tự-bác A1-phá (span≠nhãn) |
| V3 trio KIỂM | harness-audit | `Vòng-3 harness-audit close s185` | [x] 40Đ/4T · falsify 12H/5B · 183 số/180 exact · value_protect-mù=owner |
| V2 H24 DEEP (19/15) | lead-stale-auditor | `Vòng-2 lead-stale deep s185` | [x] 10 FLAG (3H) SÀN + 6 CLEAN · canonical-poison 645-vs-668 |
| V2 H24 DEEP | lead-gap-auditor | `Vòng-2 lead-gap deep s185` | [x] 6 FLAG (3H) · 12/23 carry vắng · tally ghi máy deep+light @59 |
| V2 ring2 AUTO sau cặp | ring2-audit | `Vòng-2 ring2 close s185` | [ ] |
| V1 H1 tooling-chốt @close | tooling-auditor | `Vòng-1 tooling-auditor close s185` | [ ] |
| V1 ring1 KIỂM (SAU H1+H2) | ring1-audit | `Vòng-1 ring1 close s185` | [ ] |

View File

@ -93,3 +93,176 @@ TRUE span1+span2 = 8.638 B · máy/refine = 8.679 B · Δ = 4
⚠️ Hệ quả LAN RỘNG (mọi `after-est` đều lệch cùng dấu): mọi con `~after-est` của gate **nhỏ hơn thực-tế nên OVERSTATE lượng drain được** → after-est THẬT còn cao hơn. Cụ thể lead-stale: máy ~30.214, mà kết luận "vẫn > cap" ⇒ **kết luận CÀNG đứng vững** (sai số đẩy ngược hướng an-toàn). Không lật signal-3/A2.
**Lần thứ 2 cùng cơ-chế (độc-lập):** refine `:9` nói nháp A1 = span `## S152` **2.502 B**. Đo thật span L103→EOF = **2.496 B**, span đó **6 dòng** ⇒ dư đúng **6 B**. Hai ca (41 dòng→+41 B · 6 dòng→+6 B) khớp luật `+1 B/dòng` tuyệt đối ⇒ cơ-chế đã CHỨNG, không phải trùng hợp.
**Lần thứ 3:** refine `:10` `30.852**638**(## Role baseline)=30.214`. Span `## Role baseline` lead-stale đo thật = **634 B** (4 dòng ⇒ dư 4 B). Sau-drain THẬT = **30.218**, không phải 30.214. Kết luận ">cap" **KHÔNG đổi** (30.218 > 25.600).
---
## 3. 🔴 CHUỖI HEADROOM — eval VẪN THIẾU 1 MỐC (tái phạm lớp S173, nhẹ hơn)
Eval `§3` tự dán nhãn *"**7 MỐC (liệt đủ** trước khi trừ — **luật sau erratum S173**)"* — tức nó **viện dẫn chính cái luật do audit S173 của tao đẻ ra**. Nên tao áp đúng phép đã bắt nó lần trước: **liệt MỌI `measured_headroom` máy in trên đĩa**, không tin danh sách vai đưa.
Lệnh: `grep -rn "measured_headroom" .claude/workflows/runs/`
| # | phiên | headroom | nguồn máy | eval cite? |
|---|---|---|---|---|
| — | S144 07-22 | 199.759 | `…S144…/harness-eval-return.md` | ngoài cửa-sổ (chuỗi bắt đầu S153) |
| — | S152 07-25 | 184.502 | `…S152…/machine-baseline.md` | ngoài cửa-sổ |
| 1 | S153 07-26 | **181.228** | `…S153…/instrument-backfill.txt` | ✅ |
| 2 | **S154 07-26** | **176.696** | 🔴 `…S154-bookend-open/harness-eval-return.md:163` — stdout `measured_headroom : 176696 tok`, phiên đó tự xác nhận **BYTE-EXACT 6/6** (`:169`) | ❌ **BỎ SÓT** |
| 3 | S159 07-29 | **172.247** | `…S159…/harness-eval-return.md` | ✅ (mốc DUY NHẤT eval để **trống nhãn phiên** — đúng chỗ kề lỗ hổng) |
| 4 | S162 07-30 | **165.767** | `…S162…/harness-audit-return.md:47` RC-3 byte-exact 6/6 | ✅ |
| 5 | S163 07-30 | **160.924** | `…S163…/harness-eval-return.md` + `run.md` | ✅ |
| 6 | S169 08-01 | **152.968** | `…S169…/harness-eval-return.md` | ✅ |
| 7 | S173 08-05 | **148.183** | `…S173…/harness-eval-return.md` | ✅ |
| 8 | S185 08-09 | **134.573** | `script-arm-output.md:399` | ✅ |
⇒ Trong cửa-sổ S153→S185 đĩa có **8 mốc**, eval liệt **7**. **Thiếu S154 = 176.696.**
**Bảng bước THẬT (8 mốc):**
```
S153→S154 -4.532 S154→S159 -4.449 S159→S162 -6.480 S162→S163 -4.843
S163→S169 -7.956 S169→S173 -4.785 S173→S185 -13.610 (GỘP, eval tự khai)
```
Eval trình S153→S159 như **một bước 8.981**; thật là **hai bước** 4.532 và 4.449.
**PHÁN 2 vế (không gộp):**
- **"đơn-điệu giảm, chưa đảo chiều" = ĐẠT** — chèn S154 vào: 181.228 > **176.696** > 172.247 ⇒ đơn-điệu **vẫn giữ trên cả 8 mốc**. Kết-luận KHÔNG đổ.
- **"7 mốc — liệt ĐỦ" = TRƯỢT** — chữ *liệt đủ* là claim đo-được, và nó sai. Cùng LỚP lỗi S173 (bỏ mốc máy-in giữa chuỗi), **nhẹ hơn nhiều**: S173 sót 2 mốc và **đảo dấu đạo-hàm**; S185 sót 1 mốc và **kết luận không đổi**.
- Eval khai trung-thực bước cuối là **GỘP** (S179 không có số máy) ⇒ không tái phạm lỗi "đọc bước gộp thành gia-tốc" của S173. Ghi nhận.
---
## 4. 🔴 EVAL T24 — so-sánh lịch-sử SAI (số hiện-tại thì đúng)
Eval `T24`: *"MFE impl-fe **12/13 = 92%** (**S172/S173 = 85%** ⇒ hướng TỐT LÊN)"* · signal-10 lặp lại *"(S172: 85%), refine đừng đọc ngược"*.
Đối chứng ĐĨA (nguồn sơ-cấp, không dùng trí nhớ):
| phiên | số | neo |
|---|---|---|
| S172 | **11/13 = 85%** | `…S172-bookend-close/sub-harness-audit-close-S172.md:120` |
| **S173** | **12/13 = 92%** | `…S173…/harness-eval-return.md:203` · `run.md:28` · `harness-audit-return.md:132,142` |
| S185 | **12/13 = 92%** | `script-arm-output.md` |
**S173 KHÔNG phải 85% — nó đã là 92%.** Chính `sub-tooling-auditor-open-S173.md:223` gắn nhãn *"SỐ ĐÃ STALE — đo tươi phiên này 12/13 = 92%"*, và eval S173 `:399` xếp hạng **MIXED** (*"hồi 1, chưa về 13/13"*).
**Verdict:** con số **12/13 = 92% ĐẠT** · mệnh-đề **"S173 = 85%" TRƯỢT** · nhãn **"hướng TỐT LÊN" TRƯỢT theo** — đúng thật là **ĐỨNG YÊN 12 phiên** (S173→S185, 92%→92%), và **mục MISS vẫn chưa ai gọi tên**. Đọc "tốt lên" làm **giảm** áp-lực lên đúng chỗ đang tắc.
🔴 Hệ quả **NGƯỢC hướng eval nghĩ**: sự đứng-yên này **CỦNG CỐ E1 của refine** (lane ① mù vì không ai chạy `-Detail`), chứ không làm E1 yếu đi. Refine **không** nhại lại chữ "tốt lên" ⇒ refine giữ đúng nấc.
---
## 5. VERDICT PER-CLAIM — 44 claim: **40 ĐẠT / 4 TRƯỢT**
### 5A. harness-eval — 24 claim: **22 ĐẠT / 2 TRƯỢT**
| # | claim | verdict | bằng-chứng tao tự dựng |
|---|---|---|---|
| E1 | §0 PIN-vs-LIVE 4/4 + control đĩa 8/8 | **ĐẠT** | 8/8 stat khớp; `pull-cach` lệch hôm nay do đồng-hồ, KHÔNG phải lỗi eval |
| E2 | §1 tự-cộng 12+9+8+4+1+2 = 36 | **ĐẠT** | cộng lại = 36 |
| E3 | T1/T4 roster 28 vai đo đủ | **ĐẠT** | re-run: `n_agents 28` |
| E4 | **T5** 5 vai > 25.600 (5 số %) | **ĐẠT** | re-run: OVER_25600 = 5, cả 5 tên + % khớp |
| E5 | **T6** 4 vai > 30.720 | **ĐẠT** | re-run: OVER_30720 = 4 |
| E6 | **T7** impl-be 99,7% còn **85 B** · 10/28 ≥80% cap | **ĐẠT** | 25.60025.515 = **85** ✓; đếm ≥20.480 = **10** ✓; 4 số cận-cap còn lại khớp |
| E7 | **T9** baseline `measured` **16/17** lệch + top-5 % | **ĐẠT** | 19 row 2 seed-0 = 17; khớp đúng 1 (office-document 3323) ⇒ 16/17 ✓; +998,6/+899,9/+836,0/+825,9/+556,8 **cả 5 EXACT** |
| E8 | **T10** 17 số-thật + 2 seed-0 + 9 vai 0-row = 28 | **ĐẠT** | 9 tên thiếu **trùng khít** danh sách eval |
| E9 | **T11** hẹn re-sync 2026-08-01 trễ 8 ngày · row harness-eval `1547` + "first-run pending" | **ĐẠT** | `measured['harness-eval'].l1_hot = 1547`; rollout chứa cả 2 chuỗi |
| E10 | **T12** l2_index MAIN-only max **68,1%** · cicd split 9.682+13.906=23.588 | **ĐẠT** | cap 20.480; reviewer 1 file 13.941 = 68,07%; cicd đúng 2 file cộng khít |
| E11 | **T13** A7 **429/429** PASS | **ĐẠT** | re-run gate: `total pointers 429, resolved 429, failed 0` |
| E12 | **T16** 1 PROPOSE (ring2 strike-2 ~23.102) + 4 WARN | **ĐẠT** | re-run DRY in y hệt 5 dòng |
| E13 | T22 FIT 2,71% worst-case | **ĐẠT** | `script-arm:247` |
| E14 | T23 per-role **22/23 = 100%** + 5 N/A | **ĐẠT** | đếm tay: 28 dòng 5 N/A = 23; đúng 1 dòng < 100% |
| E15 | T24 số hiện-tại impl-fe **12/13 = 92%** | **ĐẠT** | khớp |
| E16 | **T24 "S172/S173 = 85%" ⇒ hướng TỐT LÊN** | 🔴 **TRƯỢT** | §4 S173 **đã là 92%**; thật = **đứng yên 12 phiên** |
| E17 | **T27** hotload **736.281** + 6 file | **ĐẠT** | tao **tự stat 6 file**: 6/6 EXACT, tổng EXACT |
| E18 | **T28** headroom **134.573**, thiếu **75.427** | **ĐẠT** | tự dựng: 380.000 736.281/3,0 = **134.573** ✓; 210.000134.573 = **75.427** |
| E19 | T31 deep **19/15** OVERDUE | **ĐẠT** | re-run probe |
| E20 | T32 run-chua-gom **1** | **ĐẠT** | re-run probe |
| E21 | T34 vế-5 `so-yc treo 5 / nhac2+ 2` | **ĐẠT** | re-run probe; **+bổ**: `nhip-no-probe.ps1:22` (SYNOPSIS) **chỉ khai 4 vế** còn code `:264` in vế 5 "brief nói 4" **nguồn máy**, không phải brief sai |
| E22 | §4 erratum: `nhip-no-probe.ps1:115` đọc `autoinject_cap_bytes` 25.600, bản `c2d01f0d` y hệt | **ĐẠT** | `:115` khớp **nguyên văn**; `git show c2d01f0d` khối 110-120 **byte-identical** eval tự bắt lỗi diary mình = ĐÚNG |
| E23 | §3 chuỗi **đơn-điệu giảm, chưa đảo chiều** | **ĐẠT** | giữ trên **cả 8** mốc |
| E24 | **§3 "7 MỐC liệt đủ (luật sau erratum S173)"** | 🔴 **TRƯỢT** | §3 đĩa **8**; sót **S154 = 176.696** |
### 5B. harness-refine — 20 claim: **18 ĐẠT / 2 TRƯỢT**
| # | claim | verdict | bằng-chứng |
|---|---|---|---|
| R1 | **A1** dòng `:104` = **431 B đo tươi** | **ĐẠT** | đo byte thật: `L104 = 431 B` **EXACT** |
| R2 | **A1** `:103`=S152 · `:106`=S182 · `:108`=S185, span chạy tới EOF | **ĐẠT** | 4/4 vị-trí đúng; span cuối L103EOF |
| R3 | A1 caveat "còn 98,0%" | **ĐẠT** | 25.515431 = 25.084 **97,98%** |
| R4 | **A2** `## 📅 Runs` lead-stale = **8.463 B**, 27,4% file | **ĐẠT** | đo thật **8.463 EXACT**; 8.463/30.852 = **27,43%** |
| R5 | A2 neo `:201` máy tự in "SPLIT/condense by hand" | **ĐẠT** | `:201` khớp nguyên văn |
| R6 | **A3** diary harness-refine "59% cap, an toàn" | **ĐẠT** | 15.126/25.600 = **59,1%** |
| R7 | **span ≠ nhãn 4/4 file** | **ĐẠT** | đọc ruột: impl-be→**S185** · lead-stale→**S185** · ring2→**S182** · tooling→**S182**. 4/4 |
| R8 | khối TRÊN heading đầu, **6 file** | **ĐẠT** | **6/6 BYTE-EXACT** (15.309/17.505/16.008/13.713/11.398/10.183); % làm tròn **xuống** bảo thủ |
| R9 | parser `:153` cắt `^#{2,3}\s` · `:159` span cuối tới EOF | **ĐẠT** | 2/2 khớp nguyên văn |
| R10 | `keep_floor` giả định **bottom=newest** (`:177`) | **ĐẠT** | `:177` comment **verbatim** *"bottom = newest, append-to-end convention"* |
| R11 | **"8.679 = đúng 2 span khớp máy TỪNG BYTE"** | 🔴 **TRƯỢT** | §2 thật **8.638** (Δ41); phép **tautology** (`:186` định nghĩa `afterEst = bytes moved`) |
| R12 | `30.852 638 (Role baseline) = 30.214` | 🔴 **TRƯỢT** | span thật **634 B** sau-drain **30.218**. Kết-luận ">cap" **vẫn ĐẠT** |
| R13 | **E5** 2 span = `Role baseline`+`Runs`, là 2 span DUY NHẤT ngoài last-5 vì file chỉ **7 span** | **ĐẠT** | 7 heading ✓ (cột `entries`=7); keep_floor 5 ⇒ floorStart = 75 = **2** ✓ |
| R14 | **E5** `Role baseline` ring2 chứa nội-dung tới **S182****value-scan lead bác ĐÚNG** | **ĐẠT** | span1 chứa token **S182** (dòng FLAG-SÓT) + trọn hợp-đồng vai |
| R15 | **E1** `-Detail` **0 call-site**, `:32`, comment `:285-286`, **12 phiên** sau S173 | **ĐẠT** | `:32` + `:285-286` khớp **nguyên văn** (comment nêu đích danh *"reinject lane"*); 185173 = 12 ✓. Grep repo: hit **duy nhất** = `eval/mfe/README.md:25`**doc-home, KHÔNG phải call-site** (đúng "1 home" chốt @S152) ⇒ claim ĐỨNG |
| R16 | **E2** `measure-agent-memory.ps1` print-only 0-writer ⇒ là **phép CHÉP** | **ĐẠT** | đọc trọn 41 dòng: chỉ `ConvertTo-Json` ra stdout, 0 `Set-Content` |
| R17 | **E3(i)** 36-60% byte nằm trên heading đầu ⇒ **ngoài pool** | **ĐẠT** | vòng lặp chỉ chạy từ `headIdx[0]` ⇒ byte trước đó **không thuộc span nào**. Dải đo: 36,3%→60,0% ✓ |
| R18 | **E3(ii)** keep_floor ngược corpus | **ĐẠT** | = R10 |
| R19 | caveat 2: `low_watermark_bytes` nay đọc **None** | **ĐẠT** | key **KHÔNG tồn tại**; key thật `low_watermark_ratio` 0.85 ⇒ 25.600×0,85 = **21.760** (giá-trị diary vẫn đúng, TÊN KHÓA thì chết) |
| R20 | BÁC (2)(5)(9)(10) — reviewer vừa harvest · tự-bác "S185=0" · nhường lead-gap · nhường deep | **ĐẠT** | reviewer mtime **22:16** ngay trước PIN 22:17 ✓; (5) tự bác suy-luận CỦA CHÍNH MÌNH + nhường lane H2 = đúng ranh; (9)(10) nhường đúng vai |
---
## 6. FALSIFY-LOG — 17 phép: **12 HELD / 5 BROKE**
| # | phép thử (cố BẺ) | kết |
|---|---|---|
| F1 | "5 vai >25.600" — re-chạy instrument độc-lập, so 140 ô | **HELD** |
| F2 | "impl-be còn 85 B" — 25.60025.515 | **HELD** |
| F3 | "span ≠ nhãn 4/4" — mở ruột từng file, quét token phiên | **HELD** (4/4) |
| F4 | **"8.679 = đúng 2 span, khớp TỪNG BYTE"** — đo span thật trên đĩa | 🔴 **BROKE** (8.638) |
| F5 | "keep_floor giả định bottom=newest `:177`" — đọc source | **HELD** (verbatim) |
| F6 | "2 span đó là 2 span duy nhất drain được" — dựng lại floorStart | **HELD** |
| F7 | **"chuỗi 7 mốc — liệt đủ"** — grep MỌI `measured_headroom` trên đĩa | 🔴 **BROKE** (8 mốc; sót S154) |
| F8 | "đơn-điệu giảm, chưa đảo chiều" — chèn mốc bỏ sót rồi thử phá | **HELD** (vẫn đơn-điệu) |
| F9 | **T24 "S172/S173 = 85%"** — tra artifact S172 + S173 | 🔴 **BROKE** (S173 = 92%) |
| F10 | refine "0 call-site `-Detail`" — grep toàn repo | **HELD** (README = doc-home ≠ call-site) |
| F11 | **"638 B = Role baseline lead-stale"** — đo span thật | 🔴 **BROKE** (634 B) |
| F12 | **F14@S162 tái phát?** cây agent-memory trượt giữa lượt ⇒ tao báo sai cho cả 2 con | **HELD** (`git diff 93173099 HEAD` **RỖNG**, `git status` rỗng ⇒ đóng băng từ 22:18) |
| F13 | "trio chạy song song ⇒ tao chấm bản cũ" | **HELD** (mtime-chain 22:17→22:30→01:33→tao) |
| F14 | **"eval bịa `pull-cach 4`"** (tao đo ra 5) | **HELD**`:207` dùng `[datetime]::Now.Date`**đồng-hồ**, không phải bịa. Eval **trong sạch** |
| F15 | 🔴 **TỰ NGHI: "tao bịa mốc S154 để bắt lỗi oan?"** | **HELD** — S154 là **stdout máy** `harness-eval-return.md:163`, chính phiên đó tự xác nhận **byte-exact 6/6** `:169`; và **không tiêu-chí nào** loại S154 mà vẫn giữ S163/S169 |
| F16 | "`value_protect` che chở `Role baseline`" (⇒ máy sai khi đề-xuất move) | 🔴 **BROKE****0/10** pattern khớp (`gotcha #`,`anti-pattern`,`recurring`,`guard`,`root-cause`,…). Máy **đúng luật của nó**; luật **mù** với span hợp-đồng-vai ⇒ **củng cố E5** |
| F17 | 🔴 **TỰ NGHI: "verdict tổng của tao gộp để che TRƯỢT lẻ?"** | **HELD** — liệt **từng dòng** 44 claim, 4 TRƯỢT nêu **đích danh**, không tuyên "ĐẠT tổng" |
---
## 7. RE-CHẠY SỐ — 5 instrument · **183 ô đối-chứng · 180 khớp byte-exact**
| # | instrument / phép | ô | kết |
|---|---|---|---|
| I1 | `measure-agent-memory.ps1` (exit 0) vs khối JSON trong PIN | **140** | **140/140 EXACT** |
| I2 | `nhip-no-probe.ps1` (exit 0) vs PIN dòng `:422` | 5 vế | 4 char-exact · **1 lệch đồng-hồ** (`pull-cach 4→5`, truy `:207`) — **không tính lỗi vai** |
| I3 | `memory-archive-gate.ps1` DRY (exit 0) | ~20 | 5 dòng over-cap + after-est + strike + **A7 429/429** đều khớp |
| I4 | tự stat 6 file hotload + dựng lại số-học headroom | 8 | **8/8 EXACT** (736.281 · 134.573 · 75.427) |
| I5 | đo tay span/khối trên đĩa (python byte-exact) | 10 | **8 EXACT** (6 khối + `:104`=431 + Runs=8.463) · **2 LỆCH** = `8.679→8.638`, `638→634` |
🔴 Kết: **nấc ĐO không bịa số nào** (mọi số eval cite đều tái dựng được). **2 số lệch duy nhất đều thuộc nấc ĐỀ-XUẤT**, cùng **một cơ-chế** (`+1 B/dòng` do gate giả định CRLF trên file thuần LF), **cùng chiều**, **biên độ nhỏ**, **không lật kết-luận nào**.
---
## 8. NGOÀI-TRỤC / NHƯỜNG (nêu verbatim, KHÔNG tự chấm)
1. **NHƯỜNG `harvest-curator` (H2):** eval §6 chênh "13 file mtime hôm nay vs 6 chứa S185" + refine BÁC (4)(5) — **thao-tác harvest, không chấm lại**.
2. **NHƯỜNG `lead-gap`/`lead-stale` (H24):** T27/T28 hot-feed + target 210.000 = số OWNER; tao chỉ **tái dựng số học**, không phán chính sách.
3. **NGOÀI TRỤC → lead:** `nhip-no-probe.ps1:22` SYNOPSIS khai **4 vế** trong khi code `:264` in **vế 5** (`so-yc`) ⇒ **doc-trong-script stale**, không phải brief sai. Sửa doc = lane tooling.
4. **NGOÀI TRỤC → OWNER (tao KHÔNG đề-xuất đổi):** `archive_gate.value_protect.patterns` (10 mẫu) toàn hướng **bug/lesson**; **0 mẫu** phủ **hợp-đồng-vai / Role baseline**. Vì vậy máy hợp-lệ đề-xuất drain đúng phần **không được phép mất**. Đây là **quyết định CHÍNH SÁCH** (tiền-lệ S173: đổi quy-ước hình-dạng diary = quyền owner).
5. **Cảnh báo Goodhart (nhắc lại từ S173, vẫn sống):** MFE khớp theo "token có mặt BẤT KỲ ĐÂU trong file" ⇒ **file dài thì dễ khớp hơn**; đẩy 92%→100% bằng cách nhồi chữ = **Goodhart thuần**. CẤM "vá" mục MISS bằng nhồi nội dung.
## 9. CONTAINMENT (khai thẳng)
- Vai không Write/Edit lên `agent-memory`; file này nằm ở **run-folder** (run-trace), KHÔNG phải agent-memory.
- Lệnh tao chạy: **4 read-only** (`measure`, `nhip-probe`, `gate` DRY mặc định `-Apply:$false` `:30`, `git`) + đo python read-only. **0 lệnh ghi** vào `.claude/agent-memory`.
- 🔴 Lead soát `git status` **và** `git log` wal-commit sau lượt (Stop-hook auto-commit agent-memory — caveat S173 còn hiệu lực).
- Tao **PHÁN**, lead **single-writer** ghi verdict.
END

View File

@ -90,4 +90,129 @@ Infra : Failed 0, Passed 623, Skipped 0 => TỔNG 668 / 0
**Bài (lặp lần 4 của lớp "bộ lọc chuỗi nuốt nhầm đối tượng"):** cùng lớp với CAVEAT của chính vai stale lượt này (`grep -v Snapshot` nuốt `AddPeApprovedBudgetSnapshot`). Tao dính đúng lớp đó trong cùng một lượt đi soi nó ⇒ **nghi THƯỚC của mình trước khi buộc tội vai-đo.**
### R-5 · Số underfill của gap-F6 — đọc thẳng từ máy in trong chính phiên
`script-arm-output.md` `:397/:399/:400/:401` — tao mở đúng dòng:
`hotload measured = 736281 B` ✅ · `measured_headroom = 134573 tok` ✅ · `target (owner) = 210000 tok`
· `:401` máy tự in **`headroom binds (target exceeds room)`** ⇒ **chính máy phát biểu điều-kiện `target > headroom`** mà carry `underfill-mau-so` treo. Bước ROT: `session-start`=1 · `session-end`=2 · **`tiep.md`=0** ✅ khớp tuyệt đối.
---
## §2 — VERDICT PER-FLAG (nghĩa-vụ (ii)) — 16/16, mở source đối chiếu từng cái
### A. `lead-stale-deep` — 10 FLAG
| # | class | phán | neo bằng-chứng tao TỰ mở |
|---|---|---|---|
| F-1 | `view-stale-status` | **ĐẠT** | `STATUS:8` = `🔥 CURRENT (S161→S168 … L9` ✅verbatim; `:488`=L12 · `:500`=L11 · `:508`=L10 ✅cả 3; `WAL:2`=`S185/L13`. 🔴 Vế phụ *"đứng yên qua 3 closeout"* tao **kiểm riêng**: `3a6eb92`·`57e672f`·`d291879`**3/3 đều chạm `docs/STATUS.md`** ⇒ không phải "tụt một nhịp" |
| F-2 | `view-stale-header` | **ĐẠT** | `STATUS:6` = *"mốc SỐNG hiện tại = S179, phiên-LOGIC L11, window 7"* ✅verbatim vs `WAL:2` S185/L13 |
| F-3 | `view-stale-count` | **ĐẠT** ⭐ | `STATUS:474` = `645 PASS \| 45 Domain + 600 Infra` ✅verbatim · `:8`=644. **Tao CHẠY LẠI suite: 668/0** (R-3) ⇒ canonical thiếu **23**, trọn 23 ở Infra |
| F-4 | `view-stale-header` | **ĐẠT** | `HANDOFF:5` nhãn `2026-08-07 (S180→S181 … L12 windows 1-2)` ✅ vs ruột CÙNG segment `:6` *"ĐÓNG 4/4 **@S185**"* ✅ |
| F-5 | `view-stale-count` | **ĐẠT** | `HANDOFF:11` + `:24` đều `OVERDUE:deep` **15/15** ✅verbatim; sự thật **19/15** — chứng bằng bản **HEAD** `deep_at=40` (R-1), KHÔNG bằng bản đĩa đã bị máy ghi |
| F-6 | `view-stale-count` | **ĐẠT** | `HANDOFF:12` = *"20 carry còn mở"* ✅ vs tao đếm `:13`=**23** + `:14`=**2** = **25**. Vế *"lane-4 đã nêu"* ✅ có thật tại `:16(i)` verbatim |
| F-7 | `view-stale-status` | **ĐẠT** | sổ `:50` `YC-017` cột trạng-thái = **mở** ✅ vs `WAL:15` `[x] YC-017 **ĐÓNG @S185**` ✅ — hai sổ SỐNG nói ngược |
| F-8 | `view-stale-status` | **ĐẠT** | sổ `:44` `YC-011` = **mở**, con-trỏ `WAL next:` ✅; vế (2) `HANDOFF:7` *"DUYỆT + ĐÃ GỬI @S181"* ✅ |
| F-9 | `view-residual-asym` | **ĐẠT** ⭐ | Tách CỘT mới thấy chuẩn: `YC-013` col-4 = `**mở** *(code+deploy XONG — còn acceptance-mắt-anh + bookend @close rồi lật đóng; TASK → WAL)*``YC-016` col-4 = `**mở**` **trần**. Cùng bảng, cùng cột, cùng trạng-thái — một bên có lý-do, một bên không ⇒ đúng nghĩa `residual-asym` |
| F-10 | `view-stale-count` | **ĐẠT** | `lead-stale-auditor.md:47` = ``CLAUDE.md ghi "~60 menu key" khi canonical `STATUS.md:19` = 54`` ✅verbatim. Đối chứng: canonical THẬT `STATUS:473` = **113**; `STATUS:19` = *"④ Vòng kiểm chặn lead 3 lần…"* = **0 liên quan** ⇒ sai đủ **3 tầng** |
### B. `lead-gap-deep` — 6 FLAG
| # | class | phán | neo bằng-chứng tao TỰ mở |
|---|---|---|---|
| G-1 | `gap-carry-dropped` | **ĐẠT** ⭐ | Tái-dựng **từng phần-tử** (R-4): 23 slug → 11 còn / **12 vắng**, set **giống hệt** 12 tên gap liệt. `:232` tự khai *"GIỮ re-stamp **23 slug**"* ⇒ mẫu-số là **tự-khai của chính sổ**, không phải gap tự đặt |
| G-2 | `gap-carry-dropped` | **ĐẠT** | `YC-002` `:35` = **mở**, nhắc **4**, con-trỏ ``WAL chain W5 + W4b`` ✅verbatim; `grep 'W5\|W4b' WAL` = **0** · `grep 'push 42\|42 commit'` = **0**; **control-dương `VK-5` = 1 hit** ⇒ grep sống, con-trỏ CHẾT thật |
| G-3 | `gap-decision-sunk` | **ĐẠT** | Nguồn `checklist-final.md:52` ✅verbatim gồm cả cụm *"câu RƠI khỏi surface từ 07-25"*; đo 6 sổ bền = **0/0/0/0/0/0**. **Control-dương dấu tiếng Việt**: `ngưỡng`/`dừng` = 9/6 · 5/2 · 1/1 · 0/3 ⇒ grep có dấu SỐNG, 0-hit là thật |
| G-4 | `gap-decision-sunk` | **ĐẠT** | 4 slug owner-quyết (`carry-age-vacuous`·`hook-vs-budget-cap`·`pull-warn-threshold`·`underfill-mau-so`) — **cả 4 nằm trong tập 12 VẮNG tao tự dựng** ở R-4 ⇒ vế *"mất CẢ HAI đường sống"* có chân |
| G-5 | `gap-owner-specifics` | **ĐẠT** | `find broadcasts -iname '*2026-08-08*'` = **0** ✅; inbox mới nhất theo tên = **2026-08-04** ✅ (3 tệp `upgrade-pack-phased`) ⇒ nguồn SPECIFICS của `YC-018` không tra được, đúng |
| G-6 | `gap-underfill` | **ĐẠT** | R-5: 3/3 số byte-exact + máy tự in `headroom binds (target exceeds room)` + `tiep.md` = **0** bước ROT trong khi phiên vào bằng `/tiep` ×3 |
> 🔴 **16/16 ĐẠT nghĩa là mọi FLAG đều TRÚNG VẬT THẬT — KHÔNG nghĩa 2 vai đã bắt HẾT.** Đây là độ **CHÍNH XÁC**, không phải độ **PHỦ**. Chính vai stale khai coverage **THỦNG** (`STATUS` chỉ đọc ~3 vùng/875 dòng · `HANDOFF` 40/598 · **CHƯA chạm** gotchas · migration-todos · ACTIVE-MARKS · 27/28 persona) ⇒ **10 là SÀN**, tao **GIỮ NGUYÊN NẤC ĐÓ, cấm làm tròn thành TỔNG**.
---
## §3 — FALSIFY-LOG (nghĩa-vụ (iii)) — 6 phép: **4 HELD / 2 BROKE**
**F-1 · HELD — bẻ stale-F3 (canonical-poison 645 vs 668).** Phép bác mạnh nhất có thể: **không đọc lời ai, tự chạy `dotnet test SolutionErp.slnx`**. Nếu ra 645 thì FLAG sập. Kết quả `45 + 623 = **668/0**` ⇒ **không bác được**, và mạnh hơn khai báo: delta 23 **nằm trọn ở Infra** (623600), Domain khớp tuyệt đối. Số 668 ở `WAL:22` là số THẬT.
**F-2 · HELD — bẻ gap-F1 (12/23 carry vắng).** Dựng lại độc lập bằng python. 🔸 **Lượt đầu THƯỚC CỦA TAO SAI** (regex `[carry:…]` ra 6) — suýt phán gap bịa. Đọc `:232` verbatim mới thấy 23 slug ở dạng backtick trần. Sửa extractor ⇒ **11 còn / 12 vắng, set trùng khít từng tên**. Không bác được.
**F-3 · BROKE (nhắm vào CÁO-BUỘC CỦA CHÍNH TAO) — "hai vai bịa số counter".** Đĩa lúc tao chấm ghi `deep_at=59` ⇒ theo bản này thì `19/15` và `deep_at=40` **đều sai** ⇒ đủ để quật cả stale-F5 lẫn §0 của gap. Kéo `git show HEAD:` ⇒ **`deep_at=40`, `counter=59`, `signal_session=S182`, `reset=false`, `kind=light`** — **6/6 khớp lời khai**. ⇒ **Nghi-vấn của tao SẬP.** Thủ phạm là `h24-signal-write` ghi **SAU** khi cặp đo. Bài lặp lần 3 (S162·S166·S185): **cây bẩn giữa phiên ⇒ chấm vai-đo phải kéo bản đúng-thời-điểm.**
**F-4 · BROKE (nhắm vào GAP, và cứu STALE khỏi tiếng "sót") — turf §7(1).** Coordinator gợi ý tìm SÓT-chéo, tao **suýt viết FLAG SÓT**. Mở đĩa: `HANDOFF:260` gạch `~~⚑ tools-whitelist no-teeth~~ ✅ ANH CHỐT (a) GIỮ NGUYÊN @S148` **nhưng NGAY SAU đó, cùng dòng, cùng cụm**: *"**CÒN MỞ 1 vế:** chờ hub xác nhận cơ-chế này có cố-ý không (đã báo §3(b))"* + slug dán trực tiếp vào vế ấy; `:259` nói rõ carry **THU HẸP** còn **DUY-NHẤT** vế chờ hub, *"KHÔNG còn vế chờ anh"*. ⇒ Carry **sống là ĐÚNG LUẬT**, không phải dư-lượng. **gap §7(1) = dương-giả**, và **stale IM LÀ ĐÚNG** — không phải bỏ sót. (Trớ trêu: đây đúng bẫy proximity mà chính gap cảnh báo ở §1 và đã tự loại 5 ca — lần này nó dính ở khối §7.)
**F-5 · HELD — thách-CLEAN VC-4** (chi tiết §5).
**F-6 · HELD — vế phụ của stale-F1** (*"3 closeout chạm STATUS mà không advance"*): `git show --name-only` cả 3 commit ⇒ **3/3 đều chạm** `docs/STATUS.md`. Không bác được.
---
## §4 — ENUM NIÊM-PHONG (nghĩa-vụ: 2 vai KHÔNG tự chế class)
Đọc LIVE `memory-budget.json` → `lead_self_audit.flag_classes` = **12 phần-tử** (6 `view-*` + 6 `gap-*`), có khoá `_sealed_P3B_S181` ghi *"Từ nay LỚP LỖI MỚI KHÔNG được thêm vào đây… đo lại bằng độ dài flag_classes"*.
- **16/16 FLAG dùng class ∈ enum. 0 tự chế.** stale dùng 4 tên (`view-stale-status`·`-header`·`-count`·`view-residual-asym`); gap dùng 4 tên (`gap-carry-dropped`·`-decision-sunk`·`-owner-specifics`·`-underfill`). Tất cả có mặt trong 12.
- **Hai chiều:** `set(class_repeat.counts)` = **12** ≡ `set(flag_classes)` = **12**, 0 khoá thừa/thiếu.
- Cả 2 vai **tự khai `0 escalate`** và **đọc đúng độ dài 12** (stale `:7` · gap `:20`) ⇒ tuân thủ đúng cách seal yêu cầu (đo độ dài, không chép tên).
- 🔴 Đúng luật `h24_cadence`: `light_every=6` · `deep_every=15` · `jump_on_class_repeat=3` — đọc từ **single-source**, cả hai vai không chép số.
---
## §5 — THÁCH-CLEAN (bắt buộc): mở **VC-4** — cái CLEAN dễ dối nhất
Chọn VC-4 vì nó tự nhận *"vá đúng chỗ hỏng, **0 dư-lượng một-phía**"* — tức nó tự chứng-nhận mình **không** thuộc class `view-residual-asym`. CLEAN kiểu này là loại nguy nhất.
Phép bác: tìm **bất kỳ site nào còn chép tay danh-sách class**.
```
grep -rln 'view-stale-count' .claude/commands/ .claude/agents/
-> session-end.md · lead-stale-auditor.md · ring2-audit.md (3 file "khả nghi")
```
Soi từng cái:
- `session-start.md:165` (stale) **và** `:166` (gap) — **CẢ HAI** ghi *"Class nhánh … **KHÔNG liệt-kê ở đây** — đếm từ khoá `lead_self_audit.flag_classes`"* ⇒ **đối xứng thật**, đúng lời VC-4.
- `session-end.md:69` — `view-stale-count` xuất hiện làm **ví-dụ trong một ghi-chú**, không phải bản sao enum ⇒ không phải dư-lượng.
- `lead-stale-auditor.md` **CÓ** bảng liệt 4 class (`:47-50`) < 6 của enum — **nhưng `:41` ngay trên bảng đã rào**: *"ĐỌC KHOÁ, **đừng đếm theo bảng dưới** — bảng dưới là bản-đồ ngữ-nghĩa, không phải nguồn đếm"* ⇒ bảng thiếu là **có khai**, không phải bẫy đếm.
- `lead-gap-auditor.md:31` cùng con-trỏ ⇒ hai vai đối xứng.
⇒ **VC-4 = CLEAN THẬT, tao thử bác và KHÔNG bác được.** (Đây chính là nhánh vá cho ca `:25` persona ring2 tao tự FLAG @S181-S182 — nay khép kín cả hai phía.)
---
## §6 — TURF §7 của gap (3 ca nhường `lead-stale-auditor`) — stale có bắt không?
| ca gap nhường | stale có bắt? | phán của tao |
|---|---|---|
| (2) `HANDOFF:12` header "20 carry" vs thân 23 | ✅ **CÓ** — chính là **F-6** | giao-nhận **KHỚP**, 0 rơi khe |
| (3) `STATUS:8` khối CURRENT còn `(S161→S168)` | ✅ **CÓ** — chính là **F-1** | giao-nhận **KHỚP** |
| (1) `[carry:tools-whitelist-no-teeth]` "sống sau khi owner đã phán" | ❌ không bắt | 🔴 **KHÔNG PHẢI SÓT — ca này là DƯƠNG-GIẢ của gap** (F-4): carry đã **thu hẹp có khai** còn 1 vế *chờ hub*, nên nó **phải** còn sống. **stale im là ĐÚNG.** |
⇒ **Khe giữa 2 vai lượt này KÍN**: 2/2 ca thật được vai nhận turf bắt trúng; ca thứ 3 lẽ ra **không nên được phát ra**. Khác hẳn seam-thủng S149 (honest-zero đẩy-turf rồi không ai ôm).
---
## §7 — ERRATA + FLAG-SÓT (ngoài tập 16, INFORM cho lead)
**TRƯỢT-1 (ngoài tập FLAG) — gap §7(1) dương-giả.** Xem F-4. Không tính vào TOTAL 6 của gap (gap đã tự loại §7 khỏi TOTAL — **đúng luật**), nhưng nếu lead cầm §7 đi vá thì sẽ **gỡ một carry đang có vế mở** ⇒ đúng lớp *"vá bằng cách xoá chứng-nhân"*. **Đề nghị lead KHÔNG thi hành §7(1).**
**SÓT-1 — `lead-stale-auditor.md:33` mang **cùng con số chết** với F-10.** stale chỉ FLAG `:47`. Nhưng `:33` (bảng *"Máy làm được / Máy MÙ"*) ghi ``"doc ghi 60 menu nhưng canonical 54"`` — **cùng cặp số đã chết** (canonical thật **113**; tiền-đề *"CLAUDE.md ~60 menu key"* đo @S173 = **0 hit**). Nấc thấp hơn `:47` (không mang con-trỏ dòng, và nằm trong ngoặc kép như *mẫu câu của máy* ⇒ ranh use⟂mention). 🔴 **Hại thật nằm ở chỗ khác:** nếu lead thi hành resolve của F-10 **đúng chữ** (chỉ sửa `:47`), thì **`:33` sống tiếp cách đó 14 dòng** ⇒ **chính bản vá đẻ ra `view-residual-asym` mới**, và F-10 sẽ tái phát **lần 4**. ⇒ **vá thì vá CẢ HAI site trong cùng lượt.** (Trùng hình dạng ca tao bắt @S181: bản vá tự đẻ residual-asym.)
**ERRATA-1 — stale-F2 vế *"3 window"*:** `STATUS:6` ghi `window 7` (thuộc L11) vs `WAL:2` `window-4` (thuộc L13). Hai bộ đếm **khác gốc**, trừ nhau không có nghĩa. Vế *"6 nhãn phiên + 2 phiên-LOGIC"* thì **đúng**. ⇒ **giữ FLAG, bỏ vế window.**
**ERRATA-2 — gap §4 đếm inbox:** gap ghi `ls broadcasts/inbox/**` = **70 tệp**; tao `find broadcasts/inbox -type f` = **76**. Hai tập-đo khác nhau (glob vs đệ-quy). **Không đụng kết luận** (0 tệp `2026-08-08`, mới nhất `2026-08-04` — cả hai khớp). Ghi để số không đi tiếp thành canonical.
**ERRATA-3 — pin lệch 19.589 → 19.903 B:** xem §0. Tao chấm bản đầy đủ.
**INFORM — `signal_last_kind` = `"light"` sau một vòng DEEP.** Máy đã set `light_at=deep_at=59` (ĐÚNG, deep bao hàm light) và `signal_session=S185`, nhưng `signal_last_kind` vẫn `"light"`. Không thuộc lỗi 2 vai H24 (đây là **lượt ghi của máy/lead**) ⇒ **escalate lead**, không tính vào verdict.
---
## §8 — TỔNG
**`RING2: 16 ĐẠT / 0 TRƯỢT trên 16 FLAG` (+1 TRƯỢT ngoài tập FLAG · 1 SÓT · 3 ERRATA · 1 INFORM).**
- falsify **6 phép: 4 HELD / 2 BROKE** — 🔴 **cả 2 BROKE đều bắn vào phía "dễ ăn" nhất nếu tao lười**: một vào **cáo-buộc của chính tao** (F-3), một vào **giả-thuyết coordinator gợi ý sẵn** (F-4 — được mớm "sót thì FLAG SÓT-chéo", đo ra thì ngược).
- tái-dựng **5 họ số: 5/5 KHỚP** (counter 6 khoá · `class_repeat` 12 khoá ×2 bản · `dotnet test` 668 · tập carry 23/11/12 từng phần-tử · headroom 3 số).
- enum: **16/16 trong 12 class niêm phong, 0 tự chế**; `counts` ≡ `flag_classes` **12/12 hai chiều**.
- thách-CLEAN: mở **VC-4** → **CLEAN thật**, không bác được.
🔴 **Câu dặn cho lead:** *16/16 ĐẠT = mọi FLAG **trúng vật thật**. Cái tao **KHÔNG** chứng được là **đã bắt hết** — coverage vai stale tự khai THỦNG (`STATUS` ~3 vùng/875 dòng · `HANDOFF` 40/598 · 27/28 persona chưa chạm). **10 là SÀN. Cấm đọc thành TỔNG.***
END — `RING2: 16Đ/0T per-FLAG · falsify 4H/2B · tái-dựng 5/5 khớp · enum 16/16 sealed` <!-- TOTAL=16 -->

View File

@ -41,6 +41,96 @@
---
## 2. FINDING
## 2. FINDING — 6 FLAG + 2 INFORM
### F-1 | ② vai-trò | **MED** | skill-matrix phủ **26/28** — HỞ SANG PHIÊN THỨ 2
- **View:** `.claude/agents/README.md:190-231` bảng "🛠️ Skill assignment" = **26 row**. **Source:** đĩa **28 vai**.
- **Thiếu đúng 2:** `score-counter` · `score-count-auditor` (sinh @S181 W4b). Tái-lập: `comm -23 <(đĩa) <(cột-1 bảng)` → 2 tên.
- 🔴 **Đã FLAG @S182 (F-1), chưa vá** ⇒ 5/5 bề-mặt roster khớp 28 nhưng **bề-mặt thứ 6 vẫn 26**. Cùng lớp drift @S143 (vá 15→17) — lớp này tái phát mỗi lần đẻ vai.
- **Đề-xuất:** thêm 2 row `ref-only` (2 vai này = tầng-2/tầng-3 chấm-điểm, không dùng domain skill).
### F-2 | ③ máy | **HIGH** | máy MỚI `loi-hua-may-scan.ps1` = **MỒ-CÔI**, đúng lớp mà `(k-ter)` vừa dựng @S181 để diệt
- **Vật:** `scripts/loi-hua-may-scan.ps1` **30.223 B** + `scripts/loi-hua-may-baseline.json` **13.460 B** (30 entry) — dựng @S185 lane-7, cả 2 còn `??` untracked.
- **Đo nhà-khai:** `grep -rn "loi-hua-may" .claude/commands/` = **0 hit** · `grep -rn "loi-hua-may" docs/` = **1 hit DUY NHẤT**, và hit đó (`adap-reports/2026-07-19-…:21`) nói máy **"CHƯA CÓ"**.
- **Control dương:** `naming-scan`**9 file** trong `docs/`+`.claude/commands/` (có cửa `(k-ter)` gọi). ⇒ thước sống, 0-hit của máy mới là **vắng thật**.
- 🔴 **Đây là máy mồ-côi thứ 3.** 2 con trước (`naming-scan` + `artifact-integrity`) phải chờ tới **S181** mới có cửa — `session-end.md:163` `(k-ter)` tự khai lý do: *"đo @S181 … cả 2 máy có **0 cửa nghi-thức gọi** … chỉ sống khi có người gõ tay ⇒ hết phiên là hết chạy"*. **Bệnh tái phát ngay phiên kế, trên máy mới nhất.**
- **Đề-xuất (rẻ→đắt):** (a) thêm 1 dòng vào `(k-ter)` — cửa đã có, 0 kiến-trúc mới; (b) **hoặc** cắm ở `adap-apply` BƯỚC 0 — đúng ý gốc khoản 4.4 *"chặn từ lúc VIẾT"* (doc governance mới sinh ở cửa đó); (c) git-add 2 file (untracked = ngoài cả git-diff backstop).
### F-3 | ④ docs | **MED** | cùng file, cùng phiên: **4.2 có ADDENDUM, 4.4 KHÔNG** — trong khi máy 4.4 vừa ra đời
- `docs/governance/adap-reports/2026-07-19-Governance-goi-chot-owner-nam-khoan.md:21` row 4.4 khai `máy-quét = DỰ-ĐỊNH, chưa có` + 🔴 *"Máy quét tự động cho chính class lời-hứa-máy: **CHƯA CÓ**"*.
- @S185 lead ĐÃ viết khối `ADDENDUM @S185 — ĐÓNG vế treo 4.2` vào **chính file này** (đúng doctrine *block MỚI, không sửa dòng cũ*) — nhưng `grep "4\.4"` cả file = **4 hit, 0 hit nào trong addendum**.
- ⇒ Tài-liệu **duy nhất** trong repo nói về máy này vẫn khai nó không tồn tại, sau khi nó đã tồn tại **cùng phiên**.
- 🔴 **Vá đúng cách = ADDENDUM THỨ 2, CẤM sửa row `:21`** — row đó **đúng lúc viết (25-07)**; sửa = giả-mạo phép đo cũ (luật S143/S172). Cùng khuôn 4.2 vừa dùng.
### F-4 | ④ docs | **MED** | adap-report 08-08 **0 con-trỏ sống** — chỉ WAL trỏ, mà WAL reset ở §6.4
- `grep -c "2026-08-08" docs/STATUS.md` = **0** · `docs/HANDOFF.md` = **0**.
- Con-trỏ duy nhất ngoài chính nó: `.claude/WAL.md:16` — nhưng WAL = **sổ TASK**, và `session-end §6.4` **xoá/reset WAL ở bước CUỐI** ⇒ đóng phiên xong, report này thành **mồ-côi hoàn toàn**.
- **Control dương:** run-folder `2026-08-09-S185` **CÓ** trong `docs/HANDOFF.md` ⇒ không phải lỗi thước.
- **Đề-xuất:** 1 dòng trong HANDOFF (hoặc row STATUS Recently-Done) trỏ `docs/governance/adap-reports/2026-08-08-Governance-quy-trinh-hai-dau-phien-may-diem-danh-va-6-bai-hoc.md` **TRƯỚC** khi chạy §6.4.
### F-5 | ③ máy | **LOW-MED** | 4 detector mới (C13 · C14 · C15 · L7-bolt) **0 nhà khai ngoài script** — nhưng đây là **gap CŨ**, không phải lỗi S185
- Đo: `grep "C13|C14|C15|L7-bolt"` trong `docs/governance/harness-11-engine.md` + `docs/STATUS.md` = **0 hit**.
- 🔸 **TỰ BÁC một nửa:** control C10/C11/C12 (detector CŨ) **cũng 0 hit** trong engine doc ⇒ repo **chưa từng** có registry detector; script **tự-mô-tả** (có khối `# NAMING: script-local C-numbering` ngay trong code, và `C13/C14/C15` đều `INFORM-only, NOT folded into TOTAL baseline` = **đúng bài anti-Goodhart owner-set**). ⇒ **KHÔNG** hạ verdict S185 vì cái này.
- **Đề-xuất:** đóng CẢ LỚP 1 lượt (bảng detector-registry C6→C15 + L7-bolt) hoặc **cố ý không đóng, khai là chủ-đích** — đừng vá lẻ 3 con mới rồi 12 con cũ vẫn câm.
### F-6 | ④ run-trace | **LOW-MED** | `run.md` S185: **6 vòng đã có artifact trên đĩa, checkbox tick 0/11** + tên artifact khai **lệch đĩa**
- Đĩa đã có: `sub-harvest-curator.md` 43.771 B · `harness-eval-return.md` · `harness-refine-return.md` · `sub-harness-audit.md` · `sub-lead-stale-deep.md` · `sub-lead-gap-deep.md` — nhưng bảng `run.md` **11 row đều `[ ]`**.
- **Lệch tên:** `run.md` "Artifact chờ" khai `harness-{eval,refine,audit}-return.md`; đĩa có con thứ 3 tên `sub-harness-audit.md` ⇒ grep theo tên **đã khai** = 0-hit.
- 🔴 **Vì sao đắt hơn vẻ ngoài:** luật **ONE-SHOT vừa land cùng phiên** quy định *đứt bất-khả-kháng ⇒ lượt-nối chạy HẾT phần §L.b còn thiếu*. `run.md`**thứ duy nhất** nói "phần còn thiếu" là gì. Checkbox không tick = **luật mới mất la-bàn ngay lượt đầu áp dụng**. (Cùng họ bài owner S165 *"pause phải nhớ kỹ plan-progress"*.)
### INFORM-1 | vocab-collision | `PA-2` mang **HAI nghĩa rời nhau**, và S185 thêm site mới cho nghĩa-2
- Nghĩa ①(H23, owner O1 @S119): *"PA-2a hằng-số `TIER2_EXPECTED_FULL_ID` + PA-2b `spawn-model-audit.ps1`"* — sống ở `session-start.md:57`, `fable-clone.md:105`.
- Nghĩa ②(P1, owner @S180): *"hai mã thoát trong MỘT máy"* (W3b) — sống ở `_context-s-12.md:55`, **+MỚI @S185** `adap-apply.md:20` và header `tien-kiem-cua.ps1`.
- Không câu nào sai; nhưng `grep "PA-2"` trả lẫn 2 họ quyết-định. Đúng lớp `vocab-collision-check on adopt` đã có trong sổ.
### INFORM-2 | ① command | `(f-bis)` chỉ có con-trỏ **NGƯỢC**, không có con-trỏ **XUÔI** từ (c)
- `(f-bis)` (`session-end.md:121`) trỏ đúng `(c)`/`(d)`/`(f)` — 3 nhãn đều tồn tại thật (`:72`/`:83`/`:85`), thứ tự vật-lý `121 > 85` ✓, nhãn `f-ter``f-bis` đúng (không nhảy nấc).
- Nhưng `(c)` — nơi **chạy phép đo và người ta chép số****0 chữ** báo có bước re-measure phía sau. Người thi hành đọc (c), ghi số vào HANDOFF ngay tại đó, rồi mới gặp (f-bis) ⇒ đúng chế-độ hỏng mà (f-bis) sinh ra để diệt.
- **Đề-xuất:** 1 mệnh-đề trong (c): *"số khối này là **chụp-trước-harvest** — CHƯA được mang vào HANDOFF/STATUS trước khi (f-bis) chạy lại"*.
---
## 3. ĐÃ CÂN NHẮC → **BÁC** (không flag)
| Ứng-viên | Vì sao KHÔNG flag |
|---|---|
| `lead-stale-auditor.md:47` neo chết (`post Session 6 — 2026-04-30`) | **Cặp H24 deep đã FLAG hôm nay (stale-F10)** — vai tôi lấn = double-touch. Chỉ ghi nhận, không đếm vào n. |
| Persona `lead-stale`/`lead-gap` còn **chép tay bảng class** | Đo: **6 `view-*` + 6 `gap-*` = 12** = **KHỚP** `flag_classes` canonical (`memory-budget.json`, gồm `view-claim-broader-than-sample` mở @S179). Bảng chép tay nhưng **ĐÚNG** ⇒ flag = vu oan. (Site chép tay ở `session-start.md:163-164` đã được gỡ @S185 — đúng hướng.) |
| Header `tien-kiem-cua.ps1` khai P1=PA-2 | **Tái-lập 4/4:** `grep -c "OVERDUE:jump"` = **0** · control `grep -c "OVERDUE"` = **6** · `harness-11-engine.md:587` khớp nguyên văn vế soak · `_context-s-12.md:55` khớp. Và **cố ý KHÔNG trích lại câu cũ** (tránh citation-trap use⟂mention) = đúng bài S123. **PASS mẫu mực.** |
| 2 site ONE-SHOT "có đối xứng không" | **Đối xứng ĐỦ:** mỗi bên 4 vế CẤM + trỏ chéo 2 chiều + `CLAUDE.md` **chỉ TRỎ, 0 chép giá-trị** (B1 đúng). Bất-đối-xứng còn lại là **có lý**: bookend có `closing:` sentinel (Sàn-2) nên nói thêm về nó; bookstart giữ carve-out H22 cho `/pause`·`/tiep`. |
| `run.md` thiếu cột label | **CÓ** cột `label` 4-thành-phần (khoản-④ C-7 vừa land @S185 trong `fable-clone.md`) — **áp ngay cùng phiên**, không đợi phiên sau. PASS. |
| 7 memory-file `reviewer` mới | **7/7 đều có pointer** trong `agent-memory/reviewer/MEMORY.md` (đo từng tên, 1 hit mỗi tên). PASS. |
| `docs/STATUS.md`/`HANDOFF.md` stale nói chung | **Cặp H24 deep đã soi hôm nay (10+6 FLAG)** — không lặp việc, đúng phân-vai. |
---
## 4. NEW-ALLOC AUDIT @close (skill/plugin/máy MỚI chưa phân-bổ)
| Loại | Mới phiên này | Đã phân-bổ? | Đề-xuất |
|---|---|---|---|
| Skill project | **0** (6 giữ) | — | 0-action |
| Skill user-global | **0** (23 giữ) | — | 0-action |
| Plugin | **0** (18/15/3, **0-delta phiên thứ 5**) | — | 0-action |
| Vai mới | **0** (28 giữ) | — | 0-action |
| 🔴 **Máy mới** | **1**`loi-hua-may-scan.ps1` | ❌ **CHƯA** (F-2) | Cửa `(k-ter)` (rẻ) **hoặc** `adap-apply` BƯỚC 0 (đúng ý 4.4); vai đọc = **lead**, KHÔNG đẻ sub mới |
| Detector mới | **4** (C13/C14/C15/L7-bolt) | ⚠️ chỉ trong script | F-5 — đóng cả lớp hoặc khai chủ-đích |
🔸 **Không có skill/plugin nào cần gán cho 28 vai** — new-alloc lượt này **thuần lớp MÁY**, khác 4 lượt trước.
---
## 5. VERDICT
**`TOOLING-CHOT: PASS_WITH_FLAGS — 6`** (+2 INFORM)
| Mặt | Chốt | Một chữ |
|---|---|---|
| ① skill/command | 6+23+19 **0-delta**; 4 command SỬA nhất-quán (ONE-SHOT đối xứng, f-bis nhãn đúng, khoản-④ áp ngay) | **PASS** |
| ② vai/persona | roster **28 khớp 5/5** bề-mặt; class-table persona khớp enum 12 | **PASS** (F-1 = bề-mặt thứ 6) |
| ③ plugin/máy | plugin 0-delta 18/15/3; **máy MỚI mồ-côi** + 4 detector không nhà | **DRIFT** |
| ④ docs | 4.4 chưa addendum · report 08-08 0-con-trỏ · run.md 0-tick | **DRIFT** |
🔴 **G-015:** vai này **propose-only** — mọi mục trên là ĐỀ-XUẤT, lead single-writer VERIFY→APPEND (B3). `Bash` còn mở ⇒ **KHÔNG** khai "read-only enforced"; containment thật = lead single-writer + git-diff.
**END TOTAL = 6 FLAG (1 HIGH · 3 MED · 2 LOW-MED) + 2 INFORM · 7 BÁC có lý-do · new-alloc 1 máy chưa cắm.**