# MEMORY — ring1-audit (KIỂM vòng-1: tooling/harvest)

- **S153 (07-26) KIỂM vòng V1 (tooling+harvest) `[lead seed on-behalf @closeout M9; nguồn = sub-ring1-S153.md 22.992B]`:** **28 ĐẠT / 4 TRƯỢT-rìa / 1 KHÔNG-CHẤM trên 33 claim** · falsify 7 phép (4 HELD / 3 BROKE — **1 BROKE vào CHÍNH MÌNH**: `grep -c X f || echo 0` in "0" **và** exit 1 ⇒ đếm nhầm 20/20, suýt tố oan H2 bằng số rác của mình) · tái-dựng 11 số khớp / 1 lệch (đổi nguồn `git ls-files` · đổi engine python↔perl · đổi parse json↔grep · **so TẬP thay so SỐ**).
  **4 TRƯỢT đều lỗi RÌA, 0 lỗi ở số load-bearing:** H1-15 MED (F-6 **under-count** — dump 18 key thấy `code-review@`+`feature-dev@` cũng `true` dưới cùng heading ⇒ phá claim mà flag NẶNG hơn) · **H2-11 MED BROKE** (baseline S154 "16 + hit của file NÀY" — file H2 có **0 raw U+FFFD**, dùng ASCII `<FFFD>` ×7 ⇒ kỳ sau đọc 16/10 thành SỤT rồi truy **file phantom**; đúng bẫy m#20 mà H2 vừa đặt) · H1-14 LOW (neo `SKILL.md:122` → chuỗi thật ở `:121`; mtime chứng lệch-thật không time-drift) · H2-10 LOW (phân-hoạch 11+5=16 ≠ 20 role-dir; minh-oan: 11 ĐÚNG dưới vị-từ mtime H2 tự khai ⇒ kết-luận không đổi).
  **Thách-CLEAN 3 mặt — 2 chịu, 1 THỦNG:** ef-core "fresh" THẬT (bảng liên-tục 12..67, 0 lỗ) · Placement 0-stray chịu **3/3 lens** ⇒ số 0 CÓ RĂNG · corruption 16/10 chịu (python≠perl trùng khít) **nhưng THỦNG ở mệnh-đề DỰ-BÁO** ⇒ **ô 🟢 vẫn thủng được ở lời-hứa tương-lai**.
  Tag `[s153, 28d-4t-33claim, broke-vao-chinh-minh-grep-c, h2-11-baseline-phantom, thach-clean-thung-o-du-bao]`

> Vai KIỂM độc-lập vòng-đo H1 (`tooling-auditor`) + H2 (`harvest-curator`) — C4/C4b, land S145, rename @S149 (cũ: `tooling-harvest-audit`). Read-only, propose-only, AUTO fire SAU khi H1+H2 chốt @session-end §L.b(g-bis). Fail-safe: H1/H2 không chạy ⇒ NO-OP im-lặng, CẤM ĐẠT-ảo. no-self-exempt: ≠ H1/H2.

## Seed (2026-07-25 S150 — lead ghi on-behalf, M9/B3)

- **Nguồn seed:** H2 `harvest-curator` FLAG-F1 @S150 (`runs/2026-07-25-S150-closeout-bookend/sub-harvest-S150.md`): thư-mục này RỖNG từ 2026-07-22 (0 file, git-MÙ với dir rỗng — m#13), là GAP-3 lần 5. Seed đặt TRƯỚC lần spawn audit-round THẬT đầu tiên (cùng phiên) để vai vào có nhà.
- **Lịch-sử vai:** S145 chỉ spawn-PROBE (cố-ý 0-ghi, chứng spawn-được). Audit-round thật ĐẦU TIÊN = S150 closeout wave (entry của chính vai sẽ append dưới đây).
- ✅ **Seed ĂN THẬT:** lượt S150 tao vào **KHÔNG mù** — đọc được seed này, biết ngay F1 là nguồn + biết S145 chỉ probe nên không tự nhận "đã có tiền-lệ". Chứng-thực khuyến-nghị H2: *seed TRƯỚC spawn mới có tác dụng* (memory nạp lúc spawn).

---

## E1 — S150 (2026-07-25) · audit-round THẬT đầu tiên · closeout-bookend

- **task:** KIỂM vòng-1 output H1 `sub-tooling-S150.md` (PASS_WITH_FLAGS, 4 flag) + H2 `sub-harvest-S150.md` (GATE-PASS-5, 5 flag) — AUTO @§L.b(g-bis), tuần-tự C4b.
- **verdict:** `KIEM-PASS-WITH-3-TRUOT` — **34 claim: ĐẠT 31 / TRƯỢT 3** (H1 16/19 · **H2 15/15**) · falsify **7 phép: 5 HELD / 2 BROKE** · tái-dựng **6 số: 5 khớp / 1 lệch** · thách-CLEAN: H2 chịu 2/2 lens, **H1 thủng 1 (mặt ③ PASS)**. Evidence: `runs/2026-07-25-S150-closeout-bookend/sub-ring1-S150.md`.
- **learned (4 bài phương-pháp, dùng lại vòng sau):**
  1. 🔴 **Vòng-KIỂM chạy SAU vòng-ĐO ⇒ mọi số đếm-đĩa đều có thể ĐÃ DỜI.** Gặp vênh phải hỏi *"sai, hay đã-được-xử?"* TRƯỚC khi chấm TRƯỢT — nếu không sẽ **phạt con-đo vì nó đúng**. Lượt này 2/2 ca vênh (commit 22 vs 29 · role-dir 19 vs 20) đều là **time-drift**, không phải sai. Cách phân-biệt rẻ: `stat` mtime hiện-vật vs mtime sub-file con-đo.
  2. 🔴 **Con-đo pin `..HEAD` = moving target** ⇒ mọi kiểm-lại sau đó lệch. Cứu được vì H1/H2 có ghi SHA đích ở dòng phạm-vi ⇒ tao tái-đo `aaf95ef..a9efa34` ra đúng 22. Luôn tái-dựng **tại pin của con-đo**, đừng tại HEAD của mình.
  3. **Cách soi CLEAN cho ra ăn:** đừng re-chạy lệnh của con-đo — đổi **đơn-vị đếm** (file-count → occurrence-count), đổi **nguồn** (`ls` → `git ls-files`), đổi **cách parse** (grep → `json.load`), và **so TẬP thay vì so SỐ** (`diff` 2 danh-sách tên mạnh hơn `wc -l` × 2).
  4. 🔴 **Kiểm quy-NGUỒN, không chỉ kiểm con-SỐ.** BROKE-1 lộ ra vì tao hỏi *"số này có ra được từ nguồn nó khai không?"* — `grep -ic 'marketplace' settings.json` = 0. 3 dòng cùng bảng thì tái-dựng được, đúng **1 dòng lạc nguồn** ⇒ dòng lạc **núp trong bảng đúng**.
- **surprise (2):**
  1. 🔴 **Bẫy glob `.claude/agents/*.md` bắt luôn `README.md` cắn CHÍNH TAO** — ra 11 `INFORM-only` thay 10, suýt chấm H2 TRƯỢT. Bẫy này **đã được viết thành cảnh-báo** ở `agents/README.md:5` mà vẫn cắn ⇒ đúng bài `feedback_root_cause_over_symptom` S122: *bài-học nằm-trong-context KHÔNG tự bật*. **Luật tự áp:** mọi lệnh đếm trên `.claude/agents/*.md` phải kèm `-not -name README.md` / `grep -v README`, không có ngoại-lệ.
  2. **Phá được claim mà lại làm FLAG NẶNG hơn** (BROKE-2): H1 nói *"không còn chỗ nào giữ lịch-sử flip lead"* — sai, `flip-9` có ở `STATUS:8`. Nhưng nó nằm trong dòng **FROZEN tự dán "đừng đọc làm hiện-hành"** ⇒ canonical `:452` stale **2 flip / 10 ngày**, không phải 1 ⇒ **vá theo đúng chữ đề-xuất H1 sẽ để sót flip-9**. Bài: over-claim của con-đo đôi khi **che mất phần tệ hơn** của chính vấn-đề nó bắt.

> Tag: S150 · KIỂM-vòng-1 · H1+H2 · 34-claim-31-ĐẠT · 5-HELD/2-BROKE · time-drift-vs-real-error · glob-README-trap · flip-9-discovery

## S151 (2026-07-25) — KIỂM H1+H2, audit-round THẬT đầu tiên [M9 on-behalf]
- {nấc: verified-self · evidence: sub-ring1-S151.md 21.722B · 33Đ/3T/2KC · falsify 9}
- 2/9 phép phá = lỗi CỦA CHÍNH TAO tự bắt (citation-trap U+FFFD use⟂mention suýt nộp HIGH oan + awk mù mega-line) — falsify chạy 2 chiều cả vào mình. Tái-dựng: RAG 2447 tự gọi · gotchas 111.616B chứng hộ F-6. thách-CLEAN BROKE ef-core-Mig-66 = dương-THẬT máy treo.
- #53 chết lúc ghi → resume.

## S152 (2026-07-25→26) — KIỂM H1+H2 @open + @close [M9 on-behalf]
- {nấc: verified-self · evidence: sub-ring1-S152.md 18.444B + sub-ring1-close-S152.md 34.496B · @close 59 claim 48Đ/5T/6KC · falsify 10 (6H/4B) · tái-dựng 15 số (13 khớp) · thách-CLEAN 6 lens (2 THỦNG đều ở ô 🟢)}
- Ăn tiền nhất: BROKE-1 site-6 consent nằm TRONG persona CHÍNH TAO (`ring1-audit.md:24`, mồi KHÁC "gật mới chạy") — no-self-exempt = NÊU không tự sửa; lead vá + error-ledger E-013 EXT. 2 lens THỦNG (Placement + Corruption H2) đều ở ô PASS — soi CLEAN mới ra ăn.
- 3 lần suýt phạt OAN cứu bằng đo-tại-PIN-của-con-đo (commit 18-vs-19 · stackdump-ignore · -Ack-doc; 2/3 vì lead VỪA thi-hành đúng đề-xuất H1 — phạt nó vì nó đúng VÀ được nghe theo) · 1 suýt minh-oan nhầm (đếm `|` vs đếm tên-đoạn — pipe nội-bộ `<ok|OVERDUE>`).
- #53: @open ngược-#53 resume-1 (chạy-không-ghi) → resume-2 "đổ-ruột-TRƯỚC" + CLI-restart cắt đuôi (lead derive on-behalf, khai tại bookend-synthesis); @close return-slice — file 34.496B tự đủ, 0 mất.

## S159 (2026-07-29) — KIỂM vòng tooling/harvest @open bookend L8 [M9 on-behalf]
- {nấc: self (vai KIỂM, không ai chấm lại) · evidence: `sub-ring1-audit-open-S159.md` 33.004B, END TOTAL=47}
- **40Đ/7T** trên 47 claim · falsify **5 phép (3 HELD / 2 BROKE)** · chết #53 1 lần, resume trả sạch.
- ⭐ **thách-CLEAN ĂN THẬT — đây là lý do vai này tồn tại:** H2 báo *"stray `.claude` = 0 · empty-dir = 0"*; chạy **đúng nguyên văn lệnh của H2** ra **stray 1** + **empty-dir 5→6 ĐANG TĂNG** (đo 2 lần cách ~2 phút). Vật thể = `runs/2026-07-29-S159-bookend-open/.claude/agent-memory/{7 vai}`, **0 file** — class `agent-cwd-relative-memory-misland` (S54). Lead dọn ngay.
- 🔴 **`git status` MÙ CẤU-TRÚC với thư-mục rỗng** ⇒ post-wave assertion của lead báo sạch *đúng lệnh* mà vẫn sót ⇒ close-gate phải chạy RIÊNG `find -type d -empty`.
- T-3/T-4 lật 2 claim H2: *"lành theo lai-lịch S152"* = claim mạnh chống bằng suy-luận yếu · *"0 hit mới sau S152"* **tự phản-chứng** (file S159 của chính H2 thêm 3 hit — citation-trap đời 3).
- ⚠️ Tự khai: **suýt dựng TRƯỢT-ảo cho H1** (diff lần đầu báo 23/23 lệch, đo lại mới đúng) ⇒ vai KIỂM cũng phải tự-falsify trước khi buộc tội.
