# sub-ring2-audit-open-S159 — vai KIỂM vòng soi-lead H24, bookend @open S159 (phiên-LOGIC L8)

**Ngày:** 2026-07-29 · **Vai:** `ring2-audit` (C4 TÁCH, AUTO sau cặp H24) · **Trục:** KIỂM 2 con-đo H24, KHÔNG soi lead trực-tiếp.

**PIN ĐÍCH DANH (2 file, cấm tự đi tìm "run mới nhất"):**
- `.claude/workflows/runs/2026-07-29-S159-bookend-open/sub-lead-stale-open-S159.md` — 12.054 B, 5 FLAG (3H/2M), **KHÔNG có END-line**
- `.claude/workflows/runs/2026-07-29-S159-bookend-open/sub-lead-gap-open-S159.md` — 24.741 B, 8 FLAG (3H/5M), END TOTAL=8

**Enum ĐÓNG:** `.claude/agent-memory/memory-budget.json` `lead_self_audit.flag_classes` = **11 class** tại `:170-182` (5 `view-*` + 6 `gap-*`).

**Ghi TỪNG VERDICT NGAY khi có (anti-#53, bài AS-17 / S150-S153).** Trạng thái: ĐANG GHI.

---

## §0 — PIN + fail-safe (nghĩa-vụ (i))

- ✅ Cả 2 file PIN **TỒN TẠI** trên đĩa, đúng byte lead khai:
  - `sub-lead-stale-open-S159.md` = **12.054 B**, mtime 2026-07-29 08:46
  - `sub-lead-gap-open-S159.md` = **24.741 B**, mtime 2026-07-29 08:55
- ✅ **TƯƠI phiên này**: cùng ngày 2026-07-29, cùng run-folder `2026-07-29-S159-bookend-open`.
- ✅ **Tuần-tự C4b**: tao chạy SAU cặp (mtime output tao > 08:55).
- ✅ `.session-counter.json`: `counter=33`, `last_ticked_session="S159"` ⇒ nhịp S159 CÓ tick.
- ⇒ **KHÔNG NO-OP.** Có measure H24 tươi để chấm.

---

## §1 — Khuôn slot + enum + END-line (chống pin-bản-cắt 4-A, bài S152)

| phép | lệnh | kết quả | verdict |
|---|---|---|---|
| đếm FLAG stale | `grep -c '^## FLAG-'` | **5** | ✅ khớp lead khai (5) |
| đếm FLAG gap | `grep -c '^## FLAG-'` | **8** | ✅ khớp END TOTAL=8 **và** khớp lead khai |
| END-line stale | `grep -c '<!-- END'` | **0** | 🔴 VẮNG — lead khai đúng |
| END-line gap | `grep -c '<!-- END'` | **1** (`TOTAL=8`) | ✅ |

**Enum check — 13/13 class ∈ enum ĐÓNG, 0 tự chế:**
- stale: `view-residual-asym` · `view-stale-status` · `view-stale-count` · `view-stale-header` · `view-stale-role-desc` = **5/5 view-\*, dùng TRỌN nhánh view của enum**.
- gap: `gap-carry-dropped` ×3 · `gap-owner-specifics` ×2 · `gap-decision-sunk` ×2 · `gap-underfill` ×1 = **8/8 hợp-lệ**; 2 class còn lại (`gap-carry-aged` · `gap-incident-unrecorded`) khai **honest-zero CÓ lý-do**, không bỏ trống.
- ⇒ **0 class bịa.** Cả 2 vai gán class chuẩn header `## FLAG-N — class — SEV` ⇒ gốc-lỗi S148 (không gán class ⇒ tally đứng yên) KHÔNG tái-phát.

**🔴 Phần THIẾU của file stale (khai rõ theo lệnh):** file cụt sau FLAG-5 — **0 mục tổng-kết, 0 bảng tally, 0 END-line**. Hệ-quả đo được (không suy-diễn):
1. **Không có bảng tally class** ⇒ lead **không có số để chép** vào `class_repeat`. Đây ĐÚNG cơ-chế đã làm hỏng nửa `view-*` @S148 (xem `.session-counter.json._view_star_repair_S149`). Lần này nhẹ hơn — class VẪN gán ở header ⇒ tao đếm lại được — nhưng **kênh chép số thì vẫn đứt**.
2. **Không biết vai còn định ghi FLAG thứ 6+ hay không** ⇒ tao chấm **5 FLAG ĐÃ GHI** và **CẤM** tự suy "chỉ có 5" (đó là ĐẠT-ảo về coverage). Tập-đo tự khai ở `:5` liệt **8 nhóm bề-mặt**; 5 FLAG chạm `session-start.md` · `session-end.md` · `STATUS` ×2 · `HANDOFF` — **CHƯA chạm** `.claude/agents/README.md`, `ACTIVE-MARKS.md`, `docs/CLAUDE.md`+`CLAUDE.md` root, 2 `run.md`, và `.claude/agents/lead-*-auditor.md` (điểm-mù tự-quy-chiếu mà **chính nó** tự đặt vào tập-đo). ⇒ **coverage vai-stale phiên này KHÔNG xác định được** — ghi vào nợ, KHÔNG phán sạch.
3. Tao tái-dựng được TOTAL=5 nên rủi-ro **pin-bản-cắt 4-A** (tao tự nêu @S152) lần này **không** hiện-thực-hoá: 5 heading == 5 lead khai. Nhưng đó là **MAY**, không phải cơ-chế — file thiếu đúng dòng chốt mà chính tao đề-xuất.

---

## §2 — Verdict per-FLAG: `lead-stale-auditor` (5 FLAG)

### ✅ FLAG-1 `view-residual-asym` HIGH — **ĐẠT** (cả 2 vế đứng; 1 line-ref sai, KHÔNG đổi kết-luận)

**Vế A — 6 site view: 6/6 VERIFIED VERBATIM** (tao `sed -n Lp` từng dòng, không tin trích của vai):

| site | trích của vai | đĩa |
|---|---|---|
| `session-start.md:244` | "chạy **theo NHỊP** chứ KHÔNG mỗi phiên" | ✅ khớp từng chữ |
| `session-start.md:270` | "gỡ cổng NGƯỜI, giữ cổng NHỊP ⇒ auto khi tới nhịp, KHÔNG phải mỗi phiên" | ✅ khớp |
| `session-start.md:170` | "Nhịp = `h24_cadence` (cùng file), KHÔNG chạy mỗi phiên" | ✅ khớp — nằm **cuối** dòng `:170` |
| `session-end.md:46` | "(chạy theo NHỊP §L.b(j), KHÔNG mỗi phiên)" | ✅ khớp |
| `session-end.md:47` | như trên, vai `lead-gap-auditor` | ✅ khớp |
| `session-end.md:112` | "(j) H24 lead-self-audit — counter + spawn theo NHỊP" | ✅ khớp |

**Vế B — source đối-lập CÓ THẬT, cùng file:**
- `session-start.md:269` — tao **NGHI ref sai** vì `cut -c1-300` chỉ ra "(e) BÁO dòng-nợ 4-vế…". Chạy lại `grep -o` trên **chính dòng đó** ⇒ **CÓ THẬT**: dòng `:269` dài **1.239 ký-tự** (mega-line), chứa cả probe LẪN *"🔄 HÌNH B @S149 … spawn **VÔ-ĐIỀU-KIỆN mỗi đầu phiên** — KHÔNG còn cổng OVERDUE(light)"*. ⇒ **nghi-vấn của TAO BROKE**, ref của vai ĐÚNG. (Bẫy cũ của chính tao: `cut` ngắn trên mega-line = phép trích RỖNG đọc thành "sai" — cùng lớp `.{50}x` vs `.{0,60}x` @S146.)
- `session-end.md:113` → 🔴 **SAI SỐ DÒNG**: text HÌNH B nằm ở **`:114`**; `:113` là mục **(i)** BÁO dòng-nợ. **Trích-dẫn + nhãn mục "(ii)" ĐÚNG TỪNG CHỮ** — chỉ con số lệch **+1**. Ghi thành **D-1** (§6), không hạ FLAG.

**Vế C — phép suy HÀNH-VI (chỗ tao soi kỹ nhất, vì dễ ĐẠT-ảo nhất):** `light_at_counter=27` · `light_every=6` ⇒ ngưỡng OVERDUE(light) = counter ≥ **33**. Counter hôm nay = **33**, `last_ticked_session="S159"`. ⇒ tại **S154** (counter≈28) và **S158** (counter=32), hiệu-số là 1 và 5 — **đều < 6** ⇒ đọc đúng chữ `:244`/`:270` thì cặp **KHÔNG được phép chạy**; mà nó ĐÃ chạy (artifact `runs/2026-07-26-S154-bookend-open/` tồn tại; bookend S158 tồn tại). **Phép suy ĐỨNG.**
- 🔸 **Tao tự tìm cửa bác (fair-play):** "counter S154 ≈ 28" là **ước**, không phải đo. Nhưng kết-luận **không phụ-thuộc** giá-trị đó: mọi counter ∈ [27..32] đều cho hiệu-số < 6; và riêng ca **S158 = 32** lấy trực-tiếp từ file counter. ⇒ ước-số KHÔNG gánh kết-luận.
- 🔴 **Hại THẬT + load-bearing, mạnh hơn cả lập-luận của vai:** chính `:269` tự dặn *"Luật sống canonical ở `session-end` §L.b(j)(ii) — **B1**, mục này chỉ ÁP, **không chép phạm-vi**"*. Vậy mà `:244`/`:270`/`:170` **vẫn chép phạm-vi đã bị đảo**. ⇒ đây là **vi-phạm B1 tự-khai NGAY TRONG cùng file** — luận-cứ sắc hơn cái vai đưa ra.

### ✅ FLAG-2 `view-stale-status` HIGH — **ĐẠT** (tao TỰ ĐO LẠI, 8/8 số trùng khít)

- **view VERIFIED:** `docs/STATUS.md:459` = `| RAG chunks | 🔴 **DOWN từ S153** |` + *"`list_projects` trả `chunk_count = **0**` cho **cả 7 project + `shared_global`**"* + *"`Qdrant connection failed 127.0.0.1:6333 WinError 10061 actively refused`"*. ✅ đúng từng chữ.
- **source — TAO TỰ GỌI `list_projects` (KHÔNG đọc lại số của vai), 2026-07-29:**

| project | tao đo | vai khai | khớp |
|---|---|---|---|
| solution_erp | **2449** | 2449 | ✅ |
| vipix_multisite | 7090 | 7090 | ✅ |
| dh_y_duoc | 15440 | 15440 | ✅ |
| namgroup_main | 6106 | 6106 | ✅ |
| ashico_erp | 4742 | 4742 | ✅ |
| vipix_ai_infra | 4176 | 4176 | ✅ |
| benhvien_aau | 3024 | 3024 | ✅ |
| shared_global | 0 | 0 | ✅ |

⇒ **7/7 project chunk > 0, service SỐNG.** Row canonical nói DOWN ⇒ **lệch THẬT**. Ca hiếm: con-đo trình số mà tao tái-dựng **trùng khít 8/8** bằng chính công-cụ nó viện dẫn.
- 🔴 **Tao là NHÂN-CHỨNG CỦA CHÍNH ROW ĐÓ — và nay tự bác mình:** `:459` viện *"3 phép đo độc-lập khớp (lead-stale-auditor · lead re-đo · **ring2-audit 8/8**)"* — "ring2-audit" đó là **vai TAO, phiên trước**. Hôm nay cùng công-cụ ⇒ kết-quả ngược hẳn. ⇒ row **không sai từ đầu**; nó đúng **lúc đo @S158** rồi thế-giới đổi, và row **đóng băng ở thì quá-khứ nhưng viết bằng thì hiện-tại** ("DOWN từ S153"). Ghi rõ để lead **đừng** sửa row thành "vai kia đo ẩu" — đó là kết-luận SAI.
- 🔸 **Đính-chính 1 chi-tiết trong `resolve` của vai (không đổi verdict):** vai viết *"`last_indexed_at` của `solution_erp` = 2026-05-29 trong khi **5 repo khác = 2026-07-29**"*. Đếm **đúng literal** (đúng 5 repo tươi hôm nay) nhưng **bỏ sót repo thứ 6**: `dh_y_duoc` = **2026-05-23**, còn cũ HƠN cả SE. ⇒ khi lead viết lại row, **đừng** chép thành "chỉ mỗi SE cũ".

### ✅ FLAG-4 `view-stale-header` MED — **ĐẠT**

- **view VERIFIED:** `docs/STATUS.md:443` = *"CURRENT STATE (baseline S40 — re-ground sống liên tục, **mốc gần nhất S156** [🔄 vá @S153 FLAG-2: bump theo lần re-ground giá-trị mới nhất trong section; header bump @S157 ctx-verifier C3])"* ✅ đúng từng chữ.
- **source VERIFIED, cùng section:** `:459` *"Đo LIVE **@S158** (2026-07-28)"* ✅ · `:461` *"đo LIVE **@S157** … Run #419"* ✅.
- ⇒ header **S156** < thân **S158** ⇒ **lệch 2 nhãn phiên**, đúng khai. Và mốc S157 (`:461`) cũng đã > S156 ⇒ header sai **kể cả** theo mốc thấp hơn ⇒ kết-luận robust với cả 2 cách đọc "mới nhất".
- 🔴 **Điểm vai nói đúng, đáng nhấn:** luật *"bump theo lần re-ground mới nhất"* nằm **NGAY TRONG chính chuỗi ký-tự bị vi-phạm**. Bằng-chứng sạch cho *"bài-học nằm-trong-context KHÔNG tự bật; chặn được = LUẬT SOI-ĐƯỢC, không phải trí-nhớ"*. `resolve` của vai (**gỡ số khỏi header, để máy in**) mạnh hơn phương-án bump-tay — vì bump-tay đã hỏng **3 lần liên-tiếp** (S152 · S153 · nay).

### ✅ FLAG-3 `view-stale-count` HIGH — **ĐẠT** (tái-dựng 6/6 số + CHẠY GATE, không chỉ đọc chữ)

🔴 Đây là FLAG **HỦY một câu hỏi đang chờ owner** ⇒ nếu nó sai, lead bỏ mất một ràng-buộc thật. Tao soi ở mức cao nhất: **tự đo file, tự tính %, rồi CHẠY chính cái gate quyết-định**.

**(a) Tái-dựng số học — 6/6 khớp tuyệt đối** (`wc -c`, không đọc lại số của vai):

| đại-lượng | tao đo/tính | vai khai | khớp |
|---|---|---|---|
| `_mind-s-7.md` | **30.305 B** | 30.305 B | ✅ |
| `_mind-s-8.md` | **12.430 B** | 12.430 B | ✅ |
| trần = `mind_ctx_kb` 32 × 1024 | **32.768 B** | 32.768 B | ✅ |
| % L7 = 30305/32768 | **92,48 %** | 92,5 % | ✅ |
| % L8 = 12430/32768 | **37,93 %** | 37,9 % | ✅ |
| dư L8 = 32768−12430 | **20.338 B** | 20.338 B | ✅ |
| bội-số = 20338/2463 | **8,26×** | 8,3× | ✅ |

**(b) "File nào là file SỐNG" — chứng bằng ĐĨA, không bằng lời:** `ls .claude/sessions/` = `session-1`…**`session-8`** ⇒ L8 là phiên-LOGIC mới nhất. mtime `_mind-s-8.md` = **2026-07-29 08:32** (trong chính phiên này) vs `_mind-s-7.md` = **2026-07-28 11:46** (đóng băng cùng commit `4169e14`). ✅ đúng như vai khai.

**(c) 🔴 Phép mạnh nhất — TAO CHẠY CHÍNH CÁI GATE** (`scripts/session_ctx.py mind-check`, tức reader THẬT của `mind_ctx_kb`, đọc LIVE 0-hardcode). Đây là chỗ tao đi xa hơn vai: vai suy-luận "file sống là s-8", tao **bắt máy tự nói**:

```
[mind-check] session-8 | mode=open
  (7)  tran mind_ctx_kb : dat
       - 12430B vs mind_ctx_kb x1024 = 32768B (doc LIVE, 0 hardcode)
```

⇒ gate trên **phiên-LOGIC ĐANG MỞ** trả **`dat`**. Cửa `/pause` kế tiếp **KHÔNG bị chặn**. **FLAG-3 ĐÚNG.**

**(d) 🔴 Tao còn tìm được điểm khiến FLAG-3 MẠNH HƠN cả bản vai viết** — chạy thêm gate trên chính file L7:

```
[mind-check] session-7 |  (7) tran mind_ctx_kb : dat  — 30305B vs 32768B
```

⇒ **kể cả file đã đóng băng cũng `dat`.** Nghĩa là chữ **"CHẶN cửa `/pause` kế tiếp"** ở `HANDOFF:14` slot (45) **chưa bao giờ đúng ở thì hiện-tại trên BẤT KỲ file nào** — nó là **phóng-chiếu** (*"MIND-5 cần ~6.536 B ⇒ sẽ vượt"*) được **đóng gói bằng ngôn-ngữ sự-kiện đã-xảy-ra**. Vai bắt đúng *"sai bộ SỐ + sai tính KHẨN"*; tao bổ-sung: **sai cả THÌ** — 0/2 file đang bị gate chặn.
- **Hại cụ-thể (đồng-ý với vai, nâng mức):** slot (45) xin anh tiêu 1 quyết-định owner (**nâng `mind_ctx_kb`** — khoá `memory-budget.json:9`) dựa trên **92,5 % của artifact đã chết**, trong khi số sống là **37,9 %**. Tune trần theo file đã chết = hỏng chính cái trần.
- 🔸 **Vai giữ được sự công-bằng, tao xác-nhận:** nó KHÔNG flag `_mind-s-7.md` (đóng băng là ĐÚNG mục-đích) và KHÔNG phủ-nhận mối lo nền (L8 sẽ lớn dần). Đúng mức. Không thổi, không hạ chuẩn.

### ✅ FLAG-5 `view-stale-role-desc` MED — **ĐẠT** (đếm PHẦN-TỬ, đúng phương-pháp vai tự kê)

- **canonical:** `ls -1 .claude/agents/*.md | grep -v README | wc -l` = **23** ✅ (khớp `docs/STATUS.md:458` = **23**).
- **view `:147` VERIFIED verbatim:** *"10 product/quality + monitor INFORM-only (H1 · H2 · 2×H24 · 3×trio-memory · 3×round-KIỂM `ring1-audit`/`ring2-audit`/`ring4-audit` S145)"* ⇒ phân-rã **10+1+1+2+3+3 = 20** ≠ 23, **thiếu đúng 3 vai vòng-Ctx**. ✅
- **thân `:149-168` — tao đếm bằng máy:** `grep -c '^\s*-'` = **20 gạch đầu dòng** ✅; `grep -c 'ctx-audit|ctx-curator|ctx-verifier'` = **3** (CÓ đủ) ✅; `grep -c 'ring1-audit|ring2-audit|ring4-audit'` = **0** (VẮNG TRỌN) ✅.
- ⇒ **bù-trừ lỗi 2 chiều ngược nhau, cả hai bên đều ra 20, không bên nào ra 23** — đúng y nguyên như vai mô-tả. Đây là kiểu lỗi **khó thấy nhất** vì 2 sai-số triệt tiêu nhau ở con-số tổng.
- **Đối chứng tồn-tại:** `ls .claude/agents/` xác nhận `ring1-audit.md` · `ring2-audit.md` · `ring4-audit.md` **CÓ THẬT trên đĩa** ⇒ 3 vai vắng khỏi checklist là vai **đang sống**, không phải tên đã chết.
- 🔴 **Hại VERIFIED:** `:148` = *"- Check TOÀN roster đã spawn chưa:"* ✅ đúng từng chữ ⇒ checklist thiếu 3 vai, mà đúng 3 vai đó là **vai-KIỂM chấm output của H1/H2/H24** (gồm **chính tao**). Vai không có trong checklist = vai dễ bị quên spawn nhất.
- 🔴 **no-self-exempt — tao khai thẳng xung-đột lợi-ích:** FLAG này có lợi cho tao (nó đòi thêm `ring2-audit` vào roster-check). Tao vẫn chấm ĐẠT vì **3 phép đếm đều do máy trả** (20 / 3 / 0 / 23), không có chỗ cho ý-muốn của tao chen vào. Nếu lead muốn hạ, phải bác bằng số — không bác bằng động-cơ.

---

## §3 — Verdict per-FLAG: `lead-gap-auditor` — F6 (ca coordinator yêu-cầu soi kỹ nhất)

### ✅ FLAG-6 `gap-owner-specifics` HIGH — **ĐẠT** · và 🔴 **BẢN VÁ CỦA LEAD = ĐÚNG** (tao thử bác, KHÔNG bác được)

**(i) 5 vòng canonical có gồm V4 không → CÓ.** `session-end.md:177-183` bảng VERIFIED, hàng 4 nguyên văn:
> `| V4 nén-ngủ | /sleep-recovery-memory-l2 (🔄 AUTO-khi-KÊU @(c) hoặc @§2.1.2 — owner @S152) | ring4-audit (post-step lượt nén) | path .gist.md mới + Fidelity verdict |`

Đối-chứng nguồn thứ 2 (khác file): `session-start.md:271` — *"cả 5 vòng (V1 tooling/harvest+ring1 · V2 soi-lead+ring2 · V3 trio · **V4 nén-ngủ+ring4** · V5 floor/detector) đều AUTO, 0 cổng consent"* ✅. **2/2 nguồn khớp** ⇒ V4 thuộc bộ-5, `V-ctx` KHÔNG thuộc.

**(ii) `session-end.md:185` có cấm bỏ-im-lặng không → CÓ, nguyên văn:**
> *"🔴 Vòng **không chạy** phiên này ⇒ ghi **`không-nhịp`** + lý-do (chưa tới cadence · không có input …). **KHÔNG** ghi ✓, **KHÔNG** tính TRƯỢT — nhưng cũng **KHÔNG** được im-lặng bỏ khỏi bảng."*

✅ Số dòng **CHÍNH XÁC** (`:185`), trích **đúng từng chữ**. (Đối lập D-1 của vai-stale: vai-gap neo dòng chuẩn.)

**(iii) 🔴 BẢN VÁ CỦA LEAD — tao chạy lại probe, và KẾT LUẬN NGƯỢC VỚI GIẢ-THUYẾT ĐƯỢC GIAO:**

Coordinator nghi: *"nếu luật là `>=` thì 15/15 phải KÊU ⇒ lead đang bỏ một vòng ĐÁNG LẼ PHẢI CHẠY"*. Tao thử đúng hướng đó và **KHÔNG dựng được**:

1. **Chạy tươi:** `powershell -File scripts/distill-shard-probe.ps1` → `SHARD-PROBE: pending=15 | nguong=15 => IM` — **khớp từng ký-tự** với con số lead dán. Lead **không bịa output**.
2. **Đọc toán-tử ở source:** `distill-shard-probe.ps1:60` → `$fire = ($n -gt $minShards)` ⇒ `-gt`, KHÔNG phải `-ge`.
3. **Biên là CÓ CHỦ-ĐÍCH, có ghi vết ngay tại chỗ** — `:55-57`:
   > `# 🔴 RANH -gt KHONG PHAI -ge — doi @S144 sau owner-decision lan 2.`
   > `# (15 shard da-phu) => 15 phai IM, chi 16+ moi KEU. Voi -ge thi 15 keu ngay = vo nghia.`
4. **Ý-chí owner, nguồn ĐỘC-LẬP với script** — `memory-budget.json` `distill_trigger._owner_set`: *"Anh chot lai: 'lay 15, tang dan neu them vao' … nguong neo VAO trang-thai hien tai (15 shard da phu) ⇒ **probe IM bay gio, chi KEU khi co shard MOI that su chua phu (16+)**"*. Và `_bulk_note`: *"baseline 'khi nao de-xuat distill' GIU Y NGUYEN (**van n > min = 15**)"*.

⇒ **4/4 đường độc-lập (hành-vi · toán-tử · comment thiết-kế · ý-chí owner) đều nói 15/15 = IM là ĐÚNG.** Giả-thuyết "`>=` ⇒ lead bỏ vòng đáng lẽ phải chạy" **BROKE**. **KHÔNG có FLAG mới nặng hơn.** Lead vá đúng.

**Trục thứ 2 của V4 (tao tự thêm — 1 probe chưa đủ để tha):** `memory-budget.json:4` `last_sleep_at = 2026-07-26`; hôm nay **2026-07-29** ⇒ **3 ngày < 7** ⇒ theo `_last_sleep_at_note` (*"INFORM … neu null hoac today−last_sleep_at >= 7 ngay"*) cũng **KHÔNG** KÊU. ⇒ **2/2 trục đồng thuận `không-nhịp`**.

**`ring4-audit` NO-OP có đúng persona không → ĐÚNG.** `.claude/agents/ring4-audit.md:27`: *"sleep KHÔNG chạy phiên đó … ⇒ pin input missing ⇒ **NO-OP im-lặng**. Auto ≠ chạy-mù. CẤM bịa verdict khi không có gist tươi"* ✅ — lead trích đúng, và đây **cùng khuôn fail-safe với chính tao**.

**FLAG có oan không (bài G-2 @S150: đo-đúng-lúc vs đã-xử-sau) → KHÔNG OAN:** mtime `sub-lead-gap` = **08:55**, `run.md` = **08:56** ⇒ vá xảy ra **SAU** phép đo. Và `run.md:26` là **lời tự-nhận của chính lead**: *"bản đầu của khối này liệt `V1·V2·V3·V-ctx·V5` — tức **bỏ IM LẶNG `V4 nén-ngủ + ring4-audit`**"*.
- 🔸 **Khai giới-hạn bằng-chứng (không overclaim):** `git log -- run.md` chỉ có **1 commit** (`c9e87d0` @08:58) và nó đã là **bản ĐÃ VÁ** ⇒ tao **KHÔNG** dựng lại được bản tiền-vá từ git. Kết-luận "FLAG không oan" đứng trên **2 nguồn khác**: (a) lead tự nhận bằng văn-bản, (b) trích-dẫn của vai-gap lúc 08:55. Tao ghi rõ chỗ này thay vì khai là "đã chứng minh bằng git".

**Chất-lượng bản vá — 1 điểm dư, mức THẤP:** hàng V4 hiện là `- [x] **V4** — 🔴 `không-nhịp` …`, trong khi `:185` nói **"KHÔNG ghi ✓"** và `[x]` render ra ô-tích = ✓. Đọc theo quy-ước của chính `run.md:32` (*"Stage chưa chạy giữ `[ ]`"*) thì `[x]` = "đã xử-lý", hợp-lệ. **Hai quy-ước va nhau, không phải lead sai** — nêu để lead chọn 1 (vd dùng dấu thứ 3 cho `không-nhịp`), **không** tính thành FLAG.

---

## §4 — 🔴 THÁCH-CLEAN (nghĩa-vụ bắt buộc): `gap-carry-aged = 0` có phải Goodhart rời-tập-đo?

**PHÁN: CÓ. Rời-tập-đo, không phải sạch. Cái mất đi là CHỨNG-NHÂN, không phải dương-giả.**

**(a) Tao chạy lại detector, KHÔNG đọc lại số của vai** — `governance-detectors.ps1` khối `H24-2`:
```
[ok] carry 'ctx-t9-dogfood' streak=2 < M=6      [ok] carry 'hmw-subfile-index-collision' streak=1 < M=6
[ok] carry 'ring5-audit-gap' streak=1 < M=6     [ok] carry 'adap-apply-2-thu' streak=3 < M=6
[ok] carry 'hmw-width-vs-roster' streak=1 < M=6
```
⇒ tập đo = **5**, streak max = **3** < M=6 ⇒ **0 fire**. Khớp vai từng dòng. Vai **KHÔNG bịa**, và vai **ĐÚNG khi không tự chế fire** (enum ĐÓNG cấm bịa class/fire — nó route sang F3, đúng đường thoát mà luật quy-định).

**(b) 3 carry cũ đi đâu — tao chạm đĩa:** chúng **KHÔNG chết, chỉ rời tập đo**:

| carry | streak cũ | số dòng còn sống trong `HANDOFF.md` | có ở dòng carry ĐỈNH (`:22`)? |
|---|---|---|---|
| `hook-vs-budget-cap` | **13** | **18 dòng** (`:34 :39 :56 :57 :60 :61 :64 :65 :69 :70 :73 :74 :77 :81 :96 :114 :123 :149`) | **KHÔNG** (0 hit) |
| `uat-s133-budget-freeze` | **9** | **12 dòng** | **KHÔNG** |
| `uat-s134-luyke` | **7** | **10 dòng** | **KHÔNG** |

⇒ Nợ **còn nguyên trên đĩa**, chỉ **vắng khỏi dòng carry mới nhất** ⇒ detector đếm streak từ đỉnh xuống nên **đứt ngay nấc 1** ⇒ 3 chứng-nhân già nhất bốc hơi khỏi phép đo.

**(c) Phép thử rẻ #1 — "trục nào KHÔNG có ca":** trục **tuổi carry** hiện có **0 ca**, đúng lúc nợ thực-tế **già nhất từ trước tới nay** (13/9/7 kỳ **+ thêm 5 cửa-sổ L7 bỏ re-stamp**). Một trục cho 0 ca **ngay khi hiện-thực tệ nhất** = trục **đã ngừng đo**, không phải hiện-thực đã sạch. ⇒ **dấu hiệu Goodhart dương tính.**

**(d) 🔴 Phép thử rẻ #2 — "áp luật cho nhánh anh em" (đây là chỗ tao đi xa hơn vai):** áp chính luật đó sang **F1**. F1 nói *nghi-thức re-stamp carry bị bỏ TRỌN cả L7*. Mà **re-stamp chính là cơ-chế bơm slug vào dòng carry đỉnh**. ⇒ **F1 là NGUYÊN-NHÂN, `gap-carry-aged = 0` là HỆ-QUẢ.** Hai con số này **KHÔNG độc-lập** — chúng là **CÙNG MỘT sự-kiện đo hai lần**: một lần ra **FLAG HIGH**, một lần ra **`[ok]`**.
⇒ Vậy `[ok]` của carry-age **không phải bằng-chứng độc-lập rằng carry ổn**; nó là **triệu-chứng thứ hai của F1**. Đọc 2 dòng đó như 2 tín-hiệu riêng ("1 xấu, 1 tốt ⇒ hoà") là **sai kép**.

**(e) Chính detector đã tự cảnh-báo lớp lỗi này** — `governance-detectors.ps1:887` (tao đọc source, không nghe kể):
> *"every streak broke at 1 => the carry-age net went silent while printing `[ok]`"*

⇒ Lớp "im mà vẫn in `[ok]`" **đã được biết**, đã từng vá anchor một lần, và **nay tái-hiện qua đường KHÁC** (không phải regex hỏng, mà là **nội-dung đầu vào bị rút**). Vá cũ không phủ được ca này.

**(f) 🔴 RỦI-RO CỤ-THỂ Ở BƯỚC KẾ — phần đắt nhất tao tìm được:** vai ghi caveat *"không fire ở đây KHÔNG đồng nghĩa sạch"* bằng **văn xuôi**, nhưng thứ chảy vào `.session-counter.json` là **`class_repeat.counts["gap-carry-aged"] = 0`** — một **con số không mang theo caveat**. Đúng khuôn hỏng S148 (*"lead single-writer không có số để chép"* → nay là *"có số để chép, nhưng số đã mất nghĩa"*). Phiên sau đọc tally sẽ thấy `gap-carry-aged: 0` và kết-luận **trục này khoẻ**, trong khi nó **đang mù**.
⇒ **Đề-xuất cho lead (propose-only):** khi ghi tally, **KHÔNG** ghi `0` trần cho `gap-carry-aged` phiên này — ghi `0*` kèm 1 dòng lý-do "tập đo co 8→5, 3 chứng-nhân 13/9/7 rời phép đo (xem F1/F3)", **hoặc** để **`không-xác-định`** đúng tiền-lệ `_view_star_repair_S149` (ở đó lead đã **CẤM ghi 0** vì *"= khẳng định S148 không fire class này = ĐẠT-ảo"*). Ca hôm nay **cùng hình dạng**.

**(g) Công-bằng với vai:** vai **KHÔNG** bán `0` như tin vui — nó gắn cảnh-báo ngay trong ô tally và dựng hẳn F3 để đưa việc lên bàn anh. **Đó là hành-xử đúng.** Chỗ hở **không nằm ở vai**, nằm ở **kênh truyền số** (prose-caveat không sống sót qua bước transcribe). Tao chấm hở này vào **lead**, không vào vai.

---

## §5 — Verdict per-FLAG: `lead-gap-auditor` (7 FLAG còn lại)

### ✅ F1 `gap-carry-dropped` HIGH — **ĐẠT** (tái-dựng 3/3 số)
- `grep -n '\*\*Carry' docs/HANDOFF.md` → **12 hit**, hit trên cùng = **`:22` `Carry @S153`** ✅ khớp từng số với vai.
- Segment L7 `:5-:15` → `grep -c 'Carry'` = **0** ✅ ⇒ **5 cửa-sổ (S154·S155·S156·S157·S158) không một dòng carry**.
- Chuỗi 12 khối trước đó (`:22 :29 :34 :39 :56 :60 :64 :69 :73 :77 :81 :94`) re-stamp **đều mỗi kỳ** ⇒ **đứt-mạch thật**, không phải "chưa tới nhịp". ✅
- 🔴 **Đòn bất-đối-xứng của vai ĐỨNG** (tao xác nhận bằng §4(b)): cùng segment vẫn đủ NEXT em ×2 + NEXT anh 7 slot ⇒ **bỏ sót có chọn lọc**, không phải cắt cả khối.
- 🔴 **Tao NÂNG sức nặng của F1**: §4(d) chứng minh F1 **kéo theo** việc tắt thước carry-age. ⇒ F1 không phải "mất 1 dòng sổ", mà **mất 1 lớp phòng-thủ + làm mù 1 detector**. HIGH là **đúng mức, nếu không muốn nói là dưới mức**.

### ✅ F2 `gap-carry-dropped` MED — **ĐẠT** (tái-dựng 4/4 số, khớp tuyệt đối)
- `.claude/agent-memory/reviewer/MEMORY.md` = **19.049 B** ✅ · `harvest-curator/MEMORY.md` = **19.456 B** ✅ · hiệu = **407 B** ✅ (vai khai 407).
- `grep -c '19049|19\.049'` trên `HANDOFF` / `STATUS` / `WAL` = **0 / 0 / 0** ✅ ⇒ rơi khỏi mọi sổ bền.
- **Đòn bất-đối-xứng VERIFIED:** `harvest-curator` (19.456 B, **cùng lớp, chênh 407 B**) **CÓ** slot — tao tìm được ở **`HANDOFF:17`** `**(48)** harvest-curator/MEMORY.md 19.456 B…` ✅. Hai món nợ y hệt, một lên bàn anh, một bốc hơi ⇒ **bào chữa "nợ memory không thuộc diện trình anh" bị loại**. ✅
- 🔸 **D-2:** vai ghi slot (48) ở *"HANDOFF:14"* (và `:13-14` ở mục (b)); thực tế **`:17`**. Lệch dòng, **không** lệch nội-dung.

### ✅ F3 `gap-owner-specifics` HIGH — **ĐẠT** (ca nặng nhất của vai-gap, và §4 xác nhận trọn)
- **view VERIFIED:** `HANDOFF:13` slot **`(43) carry con-trỏ-vs-slug`** = **4 chữ trần**, 0 số, 0 nêu "thước mù", 0 phương-án 3. ✅
- **specifics lead ĐÃ CÓ trong tay:** `_mind-s-7.md:243` — chính lead viết chữ **"thước mù"** ⇒ **biết đánh đổi rồi mới rút gọn còn 4 chữ**. ✅ (Đây là điểm mấu chốt: không phải "chưa biết", mà là **biết rồi không trình**.)
- **Hệ-quả đã-đo bị giấu:** toàn bộ §4 của tao = bằng-chứng độc-lập rằng thước **đang mù THẬT**, không phải rủi-ro tương-lai. ✅
- 🔴 **Vì sao anh không thể quyết bằng 4 chữ — tao đồng-ý và diễn đạt sắc hơn:** câu *"con-trỏ hay slug?"* trông như chọn **văn-phong**; thực chất là *"có giữ thước carry-age sống không"*, và **đáp-án đang hiệu-lực (con-trỏ) ĐÃ tắt thước rồi**. Trình 4 chữ = để anh chọn giữa 2 nhãn mà **giấu mất rằng một nhãn đã thắng và đã gây hại đo được**.
- ✅ `resolve` của vai (trình lại kèm **3 số**: tập đo 5 · streak max 3 · 3 carry vắng) là **actionable và đủ** — tao ủng hộ nguyên văn.

### ✅ F4 `gap-carry-dropped` MED — **ĐẠT** (grep 3/3 khớp)
- Quét 7 sổ bền: `AddDays(7)` → **0 file** ✅ · `SLA hardcode` → **0 file** ✅ · `AttachmentPurpose` → **chỉ `docs/gotchas.md`** ✅ — và vai **tự kiểm chứng hit đó là KHÁC chuyện** (enum `ApprovalAttachment=5`, không phải "sai tầng"). ⇒ vai **không** đếm hit giả thành hit thật. Đây là kỷ-luật đúng (bài "phép trích RỖNG / hit lạc chủ-đề").
- Row-3 tự đặt tên *"CÒN TREO sang phiên sau"*, người nhận = **em** ⇒ không phải "treo có chủ đích cho anh". ✅
- 🔸 Vai tự khai giảm-nhẹ (2/4 token có thể đã bị arc KHKK nuốt) mà **vẫn giữ flag** vì L1+L4 thì không ⇒ **cân, không thổi**. ✅

### ✅ F5 `gap-underfill` MED — **ĐẠT** (tái-dựng 5/5 số, khớp tuyệt đối)

| số | tao đo | vai khai | khớp |
|---|---|---|---|
| HANDOFF tổng | **395 dòng / 138.579 B** | 395 / 138.579 | ✅ |
| bytes dòng 1-55 (lead đã đọc) | **35.813 B** | 35.813 | ✅ |
| bytes dòng 56-58 (bỏ) | **13.847 B** | 13.847 | ✅ |
| mega-line `:57` | **10.390 B** (kèm `\n`) | 10.389 | ✅ (chênh đúng 1 ký-tự xuống dòng) |
| slug DISTINCT trong 56-58 | **21** | 21 | ✅ |

- 🔴 **Ranh do MÁY chốt — tao chạy lại detector:** `H24-4` in nguyên văn `HANDOFF current-segment = lines 1..58 (boundary '**Prev S' at line 59)` ✅ ⇒ **3 dòng bị bỏ VẪN thuộc segment HIỆN TẠI**. Đây là điều làm F5 thành flag thật chứ không phải chê "đọc ít": lead dừng **bên trong** ranh máy tự vạch.
- 🔸 **D-3:** vai khai *"43 slug DISTINCT toàn file"*; tao đếm (`grep -o 'carry:[a-z0-9-]*' | sort -u`) = **44**. Lệch 1, gần như chắc do **ranh regex** khác nhau, **không** load-bearing (21/43 hay 21/44 đều ≈ **một nửa**). Nêu để lead biết con số nào chép được.
- ✅ Vai **tự giới-hạn claim** (*"chưa đo được %-print §2.1.6 ⇒ KHÔNG claim toàn-cảnh Tier-1 dưới hạn-mức"*) — đúng kỷ-luật, chỉ claim cái đo được.

### ✅ F7 `gap-decision-sunk` MED — **ĐẠT**
- `grep -rn '22 FLAG' docs/ .claude/WAL.md .claude/governance/` → **đúng 1 hit**, tại `docs/changelog/sessions/2026-07-28-0930-…:109` ✅ **khớp chính xác** vai (kể cả số dòng).
- ⇒ **0 hit** trên HANDOFF · STATUS · WAL · ACTIVE-MARKS · migration-todos · error-ledger ✅.
- **Phân tách cứu/chìm của vai là đúng và tinh:** 3 nhãn `(42)(43)(44)` + `(E2)` **đã nổi** thành slot; cái CHÌM là **THÂN 22 FLAG** (18 FLAG còn lại chưa disposition). Vai **không** vơ cả cụm thành "mất trắng" ⇒ **chống thổi phồng**. ✅
- 🔴 **Cùng-LỚP với F2 — tao xác nhận:** cả hai từ `session-7/_end:3`, cả hai 0-hit ⇒ **2/5 mục dòng `carry:` rơi = 40 %**. Đây là **lỗ cơ-chế** (bootstrap phiên-LOGIC mới không có bước reconcile `_end` kỳ trước), không phải 2 tai-nạn lẻ. Đáng nâng lên thành đề-xuất **sửa nghi-thức**, không chỉ vá 2 dòng.

### ✅ F8 `gap-decision-sunk` MED — **ĐẠT**
- `(39)` xuất hiện trong `HANDOFF` ✅; `_mind-s-8.md:92` **VERIFIED verbatim**: *"STATUS ghi RAG DOWN nhưng đo được service sống + 5 repo khác index sáng nay, riêng SE cũ 2 tháng ⇒ nên tách 'service chết' khỏi 'SE không được re-index' — **mới-nêu**"* ✅ — kể cả nhãn `mới-nêu` cũng đúng.
- 🔴 **Lập-luận cốt lõi của vai ĐỨNG, và tao có bằng-chứng ĐỘC-LẬP mạnh hơn:** phép đo `list_projects` của **chính tao** (§2 FLAG-2, 8/8) chứng minh tiền-đề slot (39) (*"RAG DOWN, 6333 refused"*) **đã sai**. ⇒ anh đang được hỏi *"RAG chết, xử sao?"* trong khi máy đo **RAG sống**. Câu hỏi cũ **không thể trả lời đúng**.
- 🔴 **Điểm chí-tử vai bắt trúng:** ý đó bị dán nhãn **`mới-nêu`** thay vì nối về **`treo-chờ-anh` (39)** ⇒ **sẽ KHÔNG lên bàn anh** ở cửa kế. Đây đúng nghĩa "chìm": bằng-chứng bác tiền-đề **sinh ra và chết trong cùng một file mềm**.
- 🔸 Vai **tự thử bác mình** (*"(39) có thể thuộc charter AI_INFRA nên anh cố ý gác"*) rồi bác lại bằng chính văn-bản slot (nhánh 3 *"cho em chạy cross-repo"* = việc của SE) ⇒ **falsify nội bộ đúng chuẩn**. ✅

---

## §6 — Falsify-log (yêu-cầu ≥2 · thực-hiện **6**, trong đó **2 BROKE nhắm vào nghi-vấn của CHÍNH TAO / của coordinator**)

| # | Phép thử phủ-định | Kết |
|---|---|---|
| 1 | *"`session-start.md:269` là ref SAI"* (vì `cut -c1-300` ra text khác) → chạy `grep -o 'HÌNH B'` trên chính dòng đó | 🔨 **BROKE (nghi-vấn của TAO sai)** — dòng dài **1.239 ký-tự**, HÌNH B nằm sâu bên trong. Phép trích RỖNG suýt tạo cáo-buộc oan cho vai. |
| 2 | *"biên probe là `>=` ⇒ lead bỏ vòng ĐÁNG LẼ PHẢI CHẠY ⇒ FLAG mới nặng hơn"* (giả-thuyết coordinator giao) → chạy probe + đọc toán-tử + đọc comment + đọc ý-chí owner | 🔨 **BROKE (giả-thuyết sai)** — **4/4** đường độc-lập nói `-gt` đúng, `15/15 ⇒ IM` đúng. **Bản vá V4 của lead ĐÚNG. KHÔNG có FLAG mới.** |
| 3 | *"stale FLAG-2 thổi phồng, RAG vẫn DOWN"* → tao **tự gọi `list_projects`** thay vì đọc lại số của vai | ✅ **HELD** — 8/8 khớp, 7/7 project chunk>0. Row `STATUS:459` lệch thật. |
| 4 | *"stale FLAG-3 sai — `_mind-s-7` mới là file bị gate chặn"* → **chạy chính gate** `session_ctx.py mind-check` trên **cả hai** session | ✅ **HELD, và MẠNH HƠN** — s-8 `dat` (12.430/32.768) **và** s-7 cũng `dat` ⇒ **0/2 file đang bị chặn** ⇒ chữ "CHẶN cửa" sai cả **thì**, không chỉ sai **số**. |
| 5 | *"`gap-carry-aged = 0` nghĩa là carry-age đã sạch"* → §4, đối-chứng 3 carry cũ trên đĩa | 🔨 **BROKE (cái CLEAN sai)** — 3 carry **còn sống 18/12/10 dòng**, chỉ **rời tập đo**. `0` = **mù**, không phải **sạch**. |
| 6 | *"stale FLAG-1 chỉ là cãi chữ, hành-vi vẫn theo nhịp"* → đối-chứng `light_at_counter=27` · `light_every=6` · counter=**33** · `nhip-no-probe` phiên này in **`light 6/6 OVERDUE:light`** | ✅ **HELD** — S159 mới là lượt **ĐẦU TIÊN** thật-sự OVERDUE (33−27=6). Vậy mà cặp đã chạy ở **S154 (hiệu 1)** và **S158 (hiệu 5)**. ⇒ hành-vi **KHÔNG** theo chữ "theo nhịp" ⇒ dư-lượng là THẬT. |

---

## §7 — Khuyết-tật của 2 con-đo (KHÔNG cái nào đổi verdict — nêu để lead chép số cho đúng)

- **D-1** (`lead-stale` FLAG-1): `session-end.md:113` → đúng phải là **`:114`** (`:113` là mục **(i)**). Trích-dẫn + nhãn "(ii)" đúng từng chữ, chỉ **lệch +1 dòng**. 🔴 **Cùng lớp "offset gõ tay" đã gặp @S152** ⇒ đáng vào diary vai, vì đây là **lần lặp**, không phải lần đầu.
- **D-2** (`lead-gap` F2/(b)): slot **(48)** ở **`HANDOFF:17`**, vai ghi `:14` / `:13-14`. Nội dung đúng, **lệch dòng**.
- **D-3** (`lead-gap` F5): *"43 slug DISTINCT toàn file"* — tao đếm **44**. Lệch 1, gần chắc do **ranh regex**; **không** load-bearing.
- **D-4** 🔴 **(quan trọng nhất cho bước transcribe — meta-count):** vai-gap kết luận *"`gap-carry-dropped` = **3** ⇒ **CHẠM** `jump_on_class_repeat` = 3"*. Nhưng `class_repeat._note` định-nghĩa value = **"consecutive-AUDIT repeat count"**, còn vai đang đếm **3 FLAG TRONG MỘT audit**. **Hai đơn-vị khác nhau.** Thực tế `counts["gap-carry-dropped"]` **đã = 7** ⇒ jump **đã vượt từ lâu**, không phải "vừa chạm". ⇒ Kết-luận *"nên jump"* **ĐÚNG**, nhưng **đường đi tới nó sai đơn-vị** — lead **đừng** chép con số 3 vào ô tally (sẽ **hạ 7 → 3**, tức **xoá lịch-sử**).

---

## §8 — Tổng-kết

**TOTAL: 13 FLAG chấm — 13 ĐẠT / 0 TRƯỢT** (5 `lead-stale` + 8 `lead-gap`) · **0 class bịa** (13/13 ∈ enum ĐÓNG) · **4 khuyết-tật D-1…D-4** (line-ref ×2, đếm slug ×1, **sai đơn-vị tally ×1**).

**Vì sao 13/13 mà KHÔNG phải đóng dấu-cao-su:** mọi số load-bearing đều được tao **dựng lại độc-lập**, không đọc lại của vai — `list_projects` **8/8** · `_mind` **6/6** · F5 **5/5** · roster **20/3/0/23** · FLAG-count **5 & 8** · probe · **2 lần chạy gate thật** (`mind-check`, `distill-shard-probe`) + **2 lần chạy detector**. Phiên này 2 vai đo **chính xác bất thường**. Tao **từ chối** bịa một TRƯỢT để trông có răng — răng nằm ở §4 (bác cái CLEAN), §7 D-4 (chặn một phép ghi sai vào sổ), và §1 (từ chối cấp chứng-nhận coverage).

**🔴 NỢ giữ nguyên, CẤM đọc thành sạch (nhắc lại từ §1):** `lead-stale-auditor` **chết giữa chừng vì #53** — 0 tổng-kết, 0 tally, **0 END-line**. Nó mới chạm **5/8 nhóm bề-mặt tự khai**; **CHƯA chạm** `.claude/agents/README.md` · `ACTIVE-MARKS.md` · `docs/CLAUDE.md`+`CLAUDE.md` root · 2 `run.md` · `.claude/agents/lead-*-auditor.md` (điểm-mù tự-quy-chiếu). ⇒ **coverage vòng-stale phiên này KHÔNG XÁC ĐỊNH ĐƯỢC.** "5 FLAG" là **sàn**, không phải **tổng**. Cấm suy "chỉ có 5".

**Tally tao dựng hộ (vì file stale không có bảng — lead cần số để chép, đây là chỗ S148 từng vỡ):**

| class | n phiên này | ghi chú cho lead |
|---|---|---|
| `view-stale-count` · `view-stale-status` · `view-stale-header` · `view-stale-role-desc` · `view-residual-asym` | **1 mỗi class** | đếm từ header FLAG, tao verify từng cái |
| `gap-carry-dropped` | **3** | 🔴 **ĐƠN-VỊ**: 3 = **trong-phiên**, KHÔNG phải consecutive-audit. Ô hiện tại = **7**. **ĐỪNG** ghi đè 7→3 (xem D-4). |
| `gap-owner-specifics` · `gap-decision-sunk` | **2 mỗi class** | |
| `gap-underfill` | **1** | |
| `gap-carry-aged` | **0\*** | 🔴 **CẤM ghi `0` trần** — tập đo co, 3 chứng-nhân 13/9/7 rời phép đo (§4). Dùng `0*`+lý-do hoặc `không-xác-định`, đúng tiền-lệ `_view_star_repair_S149`. |
| `gap-incident-unrecorded` | **0** | honest-zero, hợp-lệ |

**3 việc đề-xuất cho lead (propose-only, lead single-writer):**
1. **§4(f)** — ghi `gap-carry-aged` là `0*`/`không-xác-định`, **không** `0` trần.
2. **§7 D-4** — **không** hạ `gap-carry-dropped` 7→3; jump đã vượt từ lâu, kết-luận "nên jump" vẫn đúng.
3. **§1** — ghi nợ *"coverage vòng-stale S159 không xác định (vai chết sau FLAG-5)"* vào sổ, để phiên sau **không** đọc "5 FLAG" thành "đã quét đủ".

**Caveat vai (khai thẳng):** read-only của tao = **frontmatter khai thiếu Write/Edit, runtime whitelist KHÔNG có răng** (`[carry:tools-whitelist-no-teeth]` S143). Backstop THẬT = lead soát `git status` + commit-gate. Tao chỉ ghi **đúng 1 tệp này**, 0 commit, 0 `store_memory`, 0 chạm file lead.

🔴 **Ranh-trục giữ đúng:** tao KIỂM **2 con-đo**, **KHÔNG** tự soi lead trực-tiếp; không lấn `ring1-audit` (tooling/harvest) · `harness-audit` (trio) · `ring4-audit` (nén-ngủ) · `reviewer` (code-diff). no-self-exempt: tao ≠ `lead-stale-auditor` / `lead-gap-auditor`; xung-đột lợi-ích ở stale FLAG-5 đã khai tường-minh tại chỗ.

<!-- END sub-ring2-audit-open-S159 · TOTAL=13 FLAG-cham -->


