# ring1-audit @open S180 — VERDICT: `RING1: 32Đ/6T`

> Recover từ **#53** (return đầu = "Now verifying H2's content-marker test…"). Resume-in-session.
> ⚠️ Harness cảnh báo output khớp pattern `settings-json` — lead đã đọc: **0 chỉ-thị**, toàn bộ là finding + đề-xuất propose-only.

## H1 (`tooling-auditor`) — per-claim
**ĐẠT:** F-2 `HANDOFF:5` (3/3 khớp) · F-3 `PROJECT-MAP` (5/5 số khớp từng byte/hit) · F-4 con-trỏ DANGLING (`grep` exit 1) · F-5 cây 8 root thiếu 5 · F-6 frontmatter tự vi-phạm · F-7 bảng dừng Mig 71 · F-8 4 site/3 giá-trị + slot `§16` đã bị chiếm (`schema-diagram:938`) · F-9 `91 bảng` vs 97 · plugin 18/15/3 đúng 3 tên · plugin 0-delta (mtime `2026-08-03`) · BÁC-1 số 26 đúng (so **TẬP** không so **SỐ**: `SET_IDENTICAL`).
**KHÔNG-CHẤM (4):** 3 token còn lại của F-1 (regex bị `**` bold cắt) · vế phụ F-2 · **"marketplace 37" — KHÔNG QUY ĐƯỢC VỀ NGUỒN** (`grep -ic marketplace settings.json` = 0; `known_marketplaces.json` chỉ 1) · skill `6/23/19` chưa đếm.
**🔴 TRƯỢT — BÁC-1 vế "5 bề-mặt ĐỘC-LẬP":** 3/5 **đồng-biến cơ-học** (`agents/*.md` · `agent-memory/<role>/` · `README gọi đủ 26` — dir memory **sinh TỰ ĐỘNG lúc spawn**, 1-dir/1-spawn). Độc-lập THẬT chỉ **2** (`hmw.js VALID_ROLES` + `STATUS:478`, cả hai tay nuôi). **Số 26 vẫn đúng — cái sai là ĐỘ MẠNH BẰNG CHỨNG bị khai vống.**
**🔴 TRƯỢT — BÁC-3:** xem khối TRỌNG-TÀI.

## H2 (`harvest-curator`) — per-claim
**ĐẠT:** F-01 nợ S168 **82.383** (29.299+29.820+23.264, khớp 3 byte lẻ) · F-01 test NỘI-DUNG (4 marker = **2/5/2/2 ở NGUỒN, 0/0/0/0 ở đích**; hit `S168` của lead-gap/lead-stale nằm TRONG entry S179 = **mention không phải entry**) · F-02 **243.927** + `ctx-audit` tự trích `34.793B` khớp byte đĩa · F-03 **257.373** · F-06 3 vai đóng băng đúng 3 byte · F-04 md5 **14 EXACT / 2 DIFF** đúng 2 cặp byte · F-05 corruption **24 lần/22 dòng/11 file** khớp cả 2 đơn-vị · F-05 file S168 đã viết đúng luật đơn-vị mà chưa về nhà (`:273` nguyên văn) · **TỔNG NỢ 583.683 B / 14 lượt-vai** cộng độc-lập khớp từng byte · carry `~306 KB` sai 2 chiều (tái-dựng gốc: 162.916 + 143.682 = **306.598**) · F-07 mtime khớp tới phút · Placement stray=0, 8 dir mis-land sạch thật · Completeness **26/26** · orphan universe **87/84/3** đúng 3 tên · orphan thật 0/84.
**KHÔNG-CHẤM:** "7/10 vai ĐÃ về" — mới spot-verify 1/7 là entry THẬT.
**🔴 TRƯỢT ×3:**
1. **F-04 mệnh-đề cấu-thành SAI** — *"501.300 gộp cả `sleep-drafts/`"*: thật `501.300 = 243.927 + 257.373`, cả hai từ file `sub-*` top-level, **0 byte** từ `sleep-drafts/`.
2. **`sleep-drafts/` = 238.661 B** (2 engine độc lập, 17 file), H2 cite **268.861** ⇒ **lệch 30.200**.
3. (LOW) cột "tổng" row S169 = **823.033** là **TOÀN folder** (584.372 + 238.661), gồm cả file S170 + drafts ⇒ **số đúng, NHÃN SAI**.
4. (LOW) "empty-dir repo-wide = 5" — ring1 đo **3** ⇒ không tái-dựng được.

## FALSIFY — 9 phép: 2 HELD / 7 BROKE (**4 BROKE vào CHÍNH RING1**, 2 vào H2, 1 vào LEAD)
- **F-A BROKE → chính ring1, TÁI PHÁT ĐỜI 2 lỗi nó đã ghi trong sổ mình @S162.** Định tố H1+lead bịa Mig 72 vì tự đếm **71**. Thủ phạm: `grep -v Snapshot` **nuốt migration thật** `20260717032812_AddPeApprovedBudgetSnapshot.cs`. 🔴 Nguy hơn: **cả 2 "engine" (`ls` và `git ls-files`) dùng CHUNG một filter hỏng** ⇒ *"2 engine khớp nhau" là bằng chứng RỖNG khi chúng chung thước*. Lọc sạch → **72** ⇒ H1 HELD, lead HELD.
- **F-B BROKE → chính ring1.** `grep -rlP '\x{FFFD}'` = 0 hit ⇒ suýt tuyên "H2 dựng số". Thước chết thật; **control-dương tự dựng cũng `False`** vì thứ tưởng là corruption chỉ là `cut -c` cắt đôi ký tự UTF-8. Đổi python → 24/11 khớp H2.
- **F-C BROKE → chính ring1.** `grep -ro 'S169'` ra 5 vai có hit ⇒ suýt bác F-02. Mở context: **100% MENTION**, 0 ENTRY ⇒ thước marker của H2 **mạnh hơn** thước token của ring1.
- **F-D BROKE → chính ring1.** Probe orphan `*synthesis*.md` ra 6 vs H2 nói 1; soi ruột 5 dir legacy `h10-*/h910-*` đều có artifact `harvest` ⇒ DUAL-ACCEPT của H2 đúng.
- **F-E HELD** — phá F-04 bằng md5 THẬT (size trùng ≠ byte trùng): không phá được.
- **F-F HELD** — cộng độc lập `find -printf '%s'` không dùng bảng H2: khớp từng byte.
- **F-G / F-H BROKE → vào H2** (2 lỗi ở trên).
- **🔴 F-I BROKE → vào LEAD.** Lập luận lead *"diary vai + `hmw.js:39` cùng sinh @S145 ⇒ đồng biến"* **SAI theo blame**: `git blame -L 39,39` = `398d343` **2026-07-25**. Lead đọc nhãn `+S145` **bên trong nội dung comment** thành **ngày viết dòng** — *"đúng lớp lỗi lead đang buộc cho vai"*. 3 mốc thật: `README:152-153` `2757e41` **07-22** · `hmw.js:39` **07-25** · diary **08-05/08-07**.

## TÁI-DỰNG (ring1 tự tính ⟷ vai cite)
| số | ring1 | vai | |
|---|---|---|---|
| roster | 26 (`SET_IDENTICAL`, không so số) | 26 | khớp |
| migration đĩa | **72** (2 engine sạch) | 72 | khớp *sau khi ring1 vá thước của mình* |
| nợ S168/S169/S170 | 82.383 / 243.927 / 257.373 | idem | khớp |
| **TỔNG NỢ** | **583.683 / 14 lượt-vai** | idem | **khớp từng byte** |
| `sleep-drafts/` | **238.661 / 17 file** | 268.861 | 🔴 **LỆCH 30.200** |
| md5 | 14 EXACT / 2 DIFF | 14/16 | khớp cả 2 cặp byte |
| corruption | 24 lần · 22 dòng · 11 file | idem | khớp cả 2 đơn-vị |
| universe | 87 / 84 / 3 | idem | khớp đúng 3 tên |
| gốc "~306 KB" | **306.598** = 162.916 + 143.682 | "sai 2 chiều" | chẩn đoán H2 **đúng** |
| empty-dir | **3** | 5 | lệch |

## THÁCH-CLEAN — 4 ô xanh mở ra: 3 CHỊU, 1 THỦNG ở rìa
1. **Corruption** CHỊU bằng **lens khác** (python `str.count`, tách occ ⟂ line) → 24/22/11. 🔸 Quà kèm: file duy nhất làm 22≠24 là `sub-ring1-audit-open-S159.md` — **file của chính ring1** chính là nguồn cái bẫy đơn-vị H2 mô tả.
2. **Completeness** CHỊU — quét **từng** dir, in **từng** byte: 26 role, 0 zero, 0 missing.
3. **Placement** CHỊU ở vế load-bearing, **THỦNG con số phụ** (5 vs 3) — không đổi kết luận nhưng **đừng giao làm baseline kỳ sau**, đúng lớp bẫy F-05.
4. 🔴 **Plugin "0-delta 4 phiên"** — ổn định THẬT về **trạng-thái đĩa**, nhưng **KHÔNG chứng được là "được nhìn"**. `known_marketplaces.json` `lastUpdated` = **2026-07-17 = 21 ngày** (khớp `pull-cach 16 ngay`). ⇒ "0-delta" đọc đúng là **"không có gì kéo về nên không có gì đổi"**. **Một plugin bị gỡ ở upstream sẽ cho 0-delta y hệt.** Đề nghị đổi cách kể: *"0-delta, nguồn chưa pull 21 ngày"*.

## 🏛️ TRỌNG-TÀI BÁC-3 — **ĐỒNG Ý `lead-stale`: `README:152-153` LÀ dư-lượng. `tooling-auditor` SAI.**
**Khai chỗ đứng (no-self-exempt):** `hmw.js:39` là **dòng roster của chính ring1** ⇒ phán về dòng mô tả chính mình; khai để lead cân.

- 4+1 bề mặt canonical đọc trực tiếp: `session-start.md:276` · `:280` (*"ĐÂY = nhà canonical"*) · `:271` (`grep -c "V3 trio"` = **1**) · `:290` (*"retired @S151"*) · `:169`.
- Xác nhận bằng chứng mới của `lead-stale`: `:143` ring1 AUTO · `:146` ring2 AUTO · `:149` ring4 AUTO · chỉ `:152` giữ consent ⇒ **bất-đối-xứng nội-cây 3/4 là THẬT**.
- Vế *"gỡ RIÊNG @S151, trước S152"* **ĐÚNG** — `:290` nói thẳng ⇒ **một mình nó đã hạ BÁC-3**, vì BÁC-3 dựng trên tiền-đề "owner chỉ gỡ cổng ring1".
- 🔴 **ĐINH RIÊNG CỦA RING1, CHƯA AI NÊU — nhân chứng khai ngược lời người triệu tập:** BÁC-3 dẫn *"diary của chính nó"*. Mở ra: `tooling-auditor/MEMORY.md:78` ghi *"lô cuối **9 site** sau khi lead grep cùng-lớp **trio-persona**"* ⇒ **sổ của chính vai ghi rằng đợt gỡ consent ĐÃ quét sang trio-persona**. Mạnh hơn cả bất-đối-xứng nội-cây vì **không cần đối chiếu file khác**.
- 🔴 **Lead SAI ở CƠ-CHẾ (F-I) — sửa lý-lẽ TRƯỚC KHI land:** dạng ĐÚNG là *"cả `README:152-153` lẫn `hmw.js:39` đều được viết TRƯỚC/ĐÚNG LÚC quyết định S151 land và **chưa ai sờ lại sau đó** ⇒ hai **bản sao chưa-cập-nhật của cùng một trạng-thái cũ**, không phải hai quan sát độc lập về trạng-thái hiện tại"*. **Kết luận giữ, đường đi đổi** — land nguyên văn "cùng sinh @S145" là trồng neo sai mới trong chính bản vá.
- **FLAG-9 xác nhận CẢ HAI vế:** vế H24 chết tại `session-start.md:270` *"gỡ CẢ HAI cổng cho cặp light ⇒ auto MỖI bookend"*.
- **Vai ĐÚNG đúng 1 điểm, giữ lại:** `:143` ⟂ `:152` **thật sự là 2 vòng khác nhau**. Sai ở bước suy ra *"nên owner chỉ gỡ 1 vòng"*.

**Phán:** `README:152` + `:153` = **vá**. `hmw.js:39` = **vá cả 2 vế**. **KHÔNG** phải Anti-pattern #3 ("vá cho vừa detector") vì **0 detector đang đo 2 site này** — đây là **doc dẫn-xuất lệch nhà canonical**, và `:152` **ĐỔI HÀNH-VI**.

## 🔴 Đề nghị lead (propose-only, ring1 không sửa file nào)
1. Vá `README:152-153` sang khuôn `:143/:146/:149` — **giữ** `CẤM parallel()`, chỉ bỏ vế consent.
2. Vá `hmw.js:39` **cả 2 vế**.
3. Carry → `[carry:harvest-no-s168-s169-s170]` = **583.683 B / 14 lượt-vai** (ring1 tái-dựng độc lập, dùng được).
4. Ghi F-04 vào sổ: **BỎ** mệnh-đề "501.300 gộp sleep-drafts" + **SỬA** 268.861 → **238.661**; **GIỮ** kết luận "sleep-drafts KHÔNG mồ-côi" (md5 chứng vững).
5. **KHÔNG** giao "empty-dir = 5" và "marketplace 37" làm baseline kỳ sau.
6. 🔴 **PHÁT HIỆN ĐỘC LẬP, NẶNG:** `STATUS.md:467` tự khai phương-pháp *"`ls Persistence/Migrations/*.cs` trừ **Designer+Snapshot**"* — **công thức chữ đó cho ra 71, KHÔNG phải 72**, vì repo có migration tên `AddPeApprovedBudget**Snapshot**`. **Ai làm theo đúng chữ sẽ "sửa" canonical 72 xuống 71.** Đổi mô tả thành *"trừ `*.Designer.cs` + `ApplicationDbContextModelSnapshot.cs`"*. *(Ring1 biết vì công thức đó **vừa bẫy chính nó — lần thứ 2**, sổ nó đã ghi ca S162 mà vẫn dính.)*
