# sub-ctx-audit-close-S158 — vai-3 vòng Ctx (SOI-CHUỖI) @close

> Phiên **S158** · phiên-LOGIC **L7** · window 5 · repo SOLUTION_ERP.
> 🔴 **L7 ĐÓNG trong closeout này** ⇒ cửa DUY NHẤT để chấm chuỗi `_mind-s-7`.
> Vai = `ctx-audit` (vai-3). Propose-only: mày PHÁN, lead GHI. 0 tệp `_mind`/`_context` bị vai này chạm.
> Ghi-đĩa-TRONG-lúc-làm (chống `#53`) — file này viết dần theo tiến-trình, KHÔNG gom cuối.

---

## (0) PIN đích-danh — fail-closed: **ĐỦ, đi tiếp**

| pin | giá-trị | trạng-thái đĩa |
|---|---|---|
| `_mind` | `.claude/sessions/session-7/_mind-s-7.md` | ✅ tồn tại — **30.305 B** (khớp pin), 5 block MIND-4→MIND-0 |
| `_context` | `.claude/sessions/session-7/_context-s-7.md` | ✅ tồn tại — 22.584 B, 4 entry PAUSE-1..4 |
| run-folder | `.claude/workflows/runs/2026-07-28-S158-bookend-close/` | ✅ tồn tại — 9 tệp trước lượt này |
| lượt | `@close` | ✅ |

Glob `*mind*` trong `session-7/`: **đúng 1 tệp**, tên `_mind-s-7.md` — **0 biến-thể tên-sai** (không có `_mind-s7.md` thiếu gạch). Cửa tên-tệp SẠCH.

---

## (I) MÁY TRƯỚC VAI — đọc nguyên-văn, KHÔNG re-implement

Lệnh đã chạy: `python scripts/session_ctx.py mind-check --session 7` → `EXIT=0`

```
verdict: dat=10 TRUOT=0 co=0 bo-qua-co-khai=0  => exit 0
```

4 mức nguyên-văn: **đạt=10 · trượt=0 · cờ=0 · bỏ-qua-có-khai=0.**
Các phép ĐẠT: (0) enclosure · (1) rào-1 verbatim · (2) rào-2 `ts:` key-line · (3) rào-3 secret · (4) con-trỏ E block-top **5/5 giải được** · (5) số-hiệu block `4,3,2,1,0` · (6) bất-biến `|block|=5` vs `p=4` · (7) trần `30305B / 32768B` · phụ-8 trần `_context` · phụ-9 cấu-trúc A-E + nhãn D.

🔴 **Máy 0 trượt 0 cờ ⇒ nghĩa-vụ thách-CLEAN của vai KÍCH HOẠT** (§(v)). Bảng dưới KHÔNG được phép dừng ở "máy nói ổn".

### 🚩 FLAG-0 (MED) — `closed-check §6.3-bis` mà `§L.b(l)` hứa là "máy TRƯỚC vai" **KHÔNG THỂ chạy trước vai** (nghịch thứ-tự có cấu-trúc)

> ⚠️ **Tự đính-chính trong lượt** (no-self-exempt áp cả cho chính vai này): bản nháp đầu của mục này chấm *"máy chạy sai mode"*. **SAI** — đã sửa. Bằng-chứng bác: `scripts/session_ctx.py:713-714` — `--closed` = *"force closed-mode (**auto-on when `_end` exists**); flag = fault-inject seam"*, và `session-end.md §6.3-bis:383` đặt closed-check **"sau khi ghi `_end`"**. `_end` của L7 **chưa tồn tại** lúc này ⇒ `mode=open` là **ĐÚNG** tại slot của vai. Giữ lại vết sửa thay vì xoá: đó là dữ-kiện thật về vai.

Nhưng khi sửa xong thì lòi ra thứ nặng hơn:

| nguồn | câu |
|---|---|
| `session-end.md:162` §L.b(l) | ctx-audit chạy **SAU (a)-(k), TRƯỚC §L.c** — *"**máy TRƯỚC vai** (`mind-check` full **+ closed-check §6.3-bis**)"* |
| `session-end.md:383` §6.3-bis | closed-check chạy ***sau khi ghi `_end`***; closed-mode tự siết (con-trỏ E `đang-chờ` → **TRƯỢT**; tên-sai → **TRƯỢT**); *"**TRƯỢT ⇒ xử lý TRƯỚC commit chốt**"* |

§6.3-bis nằm ở **§6**, tức SAU §L. ⇒ `_end` sinh sau khi vai đã trả. **Vai KHÔNG BAO GIỜ đọc được output closed-check** — lời hứa "máy TRƯỚC vai … + closed-check" là **bất-khả-thi theo thứ-tự**, vai chỉ có thể nhận `full/open` mãi mãi.

🔴 Hệ-quả đúng trục `GHI ⟂ KIỂM` (sàn khoản 7): **phép máy NGHIÊM NHẤT của lớp mềm** (2 ca nâng CỜ→TRƯỢT, trong đó có **GAP-#9** — ca mà nếu để CỜ thì *xoá con-trỏ đang-chờ* rẻ hơn *giữ trung thực*) lại là phép **duy nhất KHÔNG có mắt độc-lập nào đọc**. Nó fire sau khi vai-3 rời cửa, và §6.3-bis giao việc xử-lý cho **chính lead** — người bị chấm. Vòng soi độc-lập hở đúng ở phép có răng nhất.

→ Đề-xuất lead (propose-only, 2 đường): **(a)** dời closed-check lên trước §L.b(l) bằng `--closed` (flag đã có sẵn, `session_ctx.py:713`) rồi đưa output cho vai; **hoặc (b)** sửa câu §L.b(l) bỏ vế "+ closed-check §6.3-bis" và **khai thẳng** rằng closed-check là phép lead-đọc-một-mình. Đường (a) đóng lỗ; đường (b) ít nhất không hứa thứ không có. **CẤM giữ nguyên chữ hiện tại** — nó mô-tả một lưới không tồn tại.

---

## (II) 🔴 MỒI-NGẦM — CHẤM ĐƯỢC. Verdict: **MỒI ĐÃ RƠI** (rơi ở lớp SỐNG, defect gốc CHƯA vá)

**Cách chấm = grep NỘI-DUNG, không dùng số dòng** (đúng phương-pháp chính vai này đã viết @open, `sub-ctx-audit-open-S154.md:199`). Neo cũ `_mind-s-7.md:99` đã **mục-từ-lúc-sinh** — không dùng, không trách nén.

Nội-dung mồi (nguyên văn @PAUSE-1):
> `- Guard post-wave assertion mù 4 path hook — sửa bằng cách soi commit của hook thay vì \`git status\` {mới-nêu}`

### Nấc 1 — mồi còn sống trong `_mind` hôm nay? **CÒN, 3 anchor**

`grep -n "post-wave\|soi commit của hook\|git status" _mind-s-7.md`:

| dòng | block | mục | dạng tồn tại |
|---|---|---|---|
| 250 | **MIND-0** | **§D** | **bản gốc, còn nhãn `{mới-nêu}`** |
| 237 | MIND-0 | §C | "nghi vấn để dành" — nêu `§2.1.9(f)`, chẩn "guard dựa vào tính trung thực của đối tượng bị giám sát" |
| 209 | **MIND-1** | **§C** | **gist sau NÉN LẦN 2** — `Guard §2.1.9(f) dùng git status mù đúng 4 path Stop-hook ⇒ thay bằng git log --name-only origin/main..HEAD` |

⇒ Mồi **sống sót qua 2 lần nén** (MIND-1 nén lần 1 @PAUSE-3, nén lần 2 @PAUSE-4) — nén KHÔNG phải thủ-phạm. Ghi nhận ĐẠT cho khoản "nén giữ số load-bearing".

### Nấc 2 — mồi có được MANG TIẾP không? **KHÔNG. Rơi im-lặng từ MIND-2 trở đi**

- MIND-2 §D · MIND-3 §D · MIND-4 §D: **0 hit**. Không dòng nào khai "đã đóng", "đã chuyển", "bỏ".
- Đối chiếu chuẩn ĐÓNG-CÓ-KHAI mà chính lead đặt ra và làm được ở ca khác: MIND-4 §A ghi *"ý `Q2 kiến-trúc khúc 8-12` ở MIND-3 §D **ĐÓNG** — không rơi im lặng, **đóng CÓ KHAI**"*. ⇒ Khuôn khai tồn tại, lead biết dùng, **nhưng không áp cho mồi**.

### Nấc 3 — 🔴 cơ-chế rơi: **ĐỔI MỤC = MẤT NHÃN = MẤT TRUY-VẾT**

Mồi sinh ở **§D có nhãn** `{mới-nêu}` (MIND-0) → tới MIND-1 nó tái-xuất ở **§C (kế-hoạch/delta), KHÔNG nhãn** → sau đó biến mất.

§D là danh-sách **được máy canh** (phụ-9 kiểm "mỗi ý mục D có nhãn") và **được người rà** mỗi cửa. §C là văn-xuôi **không nhãn, không ai đối-chiếu carry**. Một ý đi từ §D sang §C là **rơi khỏi tập được canh mà không có sự-kiện xoá nào** — đúng lớp `Goodhart: rời tập-đo`. Không luật nào hiện cấm, không máy nào bắt: `mind-check` phụ-9 chỉ hỏi "ý ĐANG ở D có nhãn không", KHÔNG hỏi "ý từng ở D nay đâu".

### Nấc 4 — 🔴🔴 defect GỐC mà mồi trỏ tới: **CHƯA VÁ, VÀ VẪN ĐANG ĐƯỢC DÙNG**

Đây là phần nặng nhất. Mồi không chỉ rơi khỏi `_mind` — thứ nó cảnh báo vẫn nguyên:

| site | nội-dung HÔM NAY | trạng-thái |
|---|---|---|
| `.claude/commands/session-start.md:285` | **(f) Post-wave assertion:** chạy xong 3 con → `git status --short` → kỳ vọng 0 tracked-change ngoài run-folder | 🔴 **VẪN `git status`** |
| `.claude/commands/session-end.md:159` | **(vi) Post-wave assertion:** xong 3 con → `git status --short` → kỳ vọng 0 tracked-change ngoài run-folder | 🔴 **VẪN `git status`** |

`grep -rn "name-only origin/main" docs/governance/harness-11-engine.md` → **0 hit**.
Bản vá mà mồi kê đơn (`git log --name-only origin/main..HEAD`) **không land ở bất kỳ site guard nào**.

🔴 **Và guard đó được dùng ĐÚNG 2 LẦN trong chính phiên này** — post-wave assertion là bước bắt buộc của bookend @open (§2.1.9(f)) và bookend @close (§L.b(vi)). Nghĩa là cả 2 bookend của L7 chạy containment-check bằng một phép **mù đúng 4 path mà Stop-hook tự commit** — trong đó có `.claude/sessions/` (chính là nhà của `_mind`/`_context` mà vai này đang chấm).

### VERDICT MỒI-NGẦM

**CHẤM ĐƯỢC — kết quả: MỒI RƠI (TRƯỢT cho lớp mềm), và phép thử ĐẬU (mồi làm đúng việc của nó).**

Mồi phơi ra một chuỗi 3 nấc mà không con-đo nào khác trong phiên chạm tới: **(a)** ý rời §D sang §C thì hết bị canh · **(b)** rơi im-lặng dù khuôn "đóng-có-khai" đã tồn tại và được dùng ở ca bên cạnh · **(c)** defect gốc sống nguyên 2 ngày qua 4 cửa pause, trong khi **bản vá đã được viết ra và còn nằm trong diary vai `ctx-audit`** (`.claude/agent-memory/ctx-audit/MEMORY.md`, mục Containment S154: *"Verify bằng `git log --name-only origin/main..HEAD -- <path>` — KHÔNG dùng `git status`"*).

⇒ Đây là **thực-nghiệm độc-lập** cho đúng mệnh-đề MIND-4 §C tự viết: *"bài học nằm trong tay vẫn không tự bật ⇒ chặn được = **luật soi được**, không phải trí nhớ."* Lần này lead viết mệnh-đề đó ở §C **cùng lúc** đang để chính ví-dụ của nó rơi ở §D. Bài học đã được **ghi**, chưa được **wire**.

---

## (III) KIỂM-VẾT vai-1 + vai-2 — đối-chứng CHỌN MẪU (KHÔNG lặp trọn)

Phiên CÓ cả pause lẫn tiep ⇒ vai-3 **đọc verdict 2 vai kia + thách lại 1-2 khoản**, không tự chạy lại 5-khoản/4-khoản.

### III.a — vai-1 `ctx-curator` @PAUSE-4: `SUA — 9 điểm`, lead nhận **CẢ 9**

Vết: `_context-s-7.md:185-188`. Cũng được chép làm 1 dòng mục E tại `_mind-s-7.md:112` (con-trỏ hợp lệ, không chép nội-dung) ⇒ **khoản E-phủ ĐẠT cho vai-1**.

**Mẫu thách #1 — điểm (#6) "5 chỗ verbatim trá hình lách rào-1":** đây là ca **máy MÙ có chủ-đích** (mind-check rào-1 chỉ bắt dạng blockquote `> anh:`, không bắt lời anh đóng nháy giữa dòng). Lead khai đã nhận. **Kiểm trên đĩa hôm nay:**

- `awk 'NR>62'` (chỉ phần DƯỚI marker đóng khối luật) + grep `nguyên văn|*"` → **2 hit, cả 2 KHÔNG phải lời anh**: một hit trích **câu bài-học** (`"ghi đĩa trong lúc làm" là CẦN KHÔNG ĐỦ`), một hit trích **chính điều khoản luật nén** (`"nén block CŨ NHẤT trừ block-0 và top"`). Trích luật/bài-học ≠ verbatim lời anh ⇒ ngoài phạm-vi rào-1.
- `grep -c "xem PAUSE-"` → **6** con-trỏ. 4 quyết-định của anh trong MIND-4 (§A:74 backfill · §A:76 cấu-trúc trình ký · §B:81 nhớ spec · §D:98 lỗ hổng HĐ) đều ở dạng **diễn-giải + `(xem PAUSE-4)`** — đúng chữ rào-1: *"Trong `_mind` chỉ được TRỎ: xem PAUSE-`<k>`"*.
- Đối-chứng chiều ngược: `_context-s-7.md:143-159` GIỮ verbatim đầy đủ (`> anh: OK đã xong cái spec rồi…` + 4 chỗ *"nguyên văn"*). **Nguồn-duy-nhất nằm đúng nhà.**

⇒ **vai-1 điểm (#6): FIX ĐÃ LAND, verify độc-lập ĐẠT.** vai-1 bắt đúng chỗ máy mù, lead vá thật, không phải nhận-suông.

**Mẫu thách #2 — điểm (#2) "O-1 vắng trọn ⇒ ý Q2 sẽ rơi im lặng":** kiểm `_mind-s-7.md:76` (MIND-4 §A) — có dòng *"⇒ ý `Q2 kiến-trúc khúc 8-12` ở MIND-3 §D **ĐÓNG** — không rơi im lặng, đóng CÓ KHAI (spec §1.4)"*, và `_mind-s-7.md:141` (MIND-3 §D) có đuôi `→ **ĐÓNG @MIND-4 §A**`. ⇒ **ĐẠT 2 chiều** (khai ở cả block đóng lẫn block gốc). vai-1 chặn được đúng 1 ca rơi-im-lặng.

🔴 **Nhưng — chính đó là mẫu-số co lại.** vai-1 cứu **1** ý (Q2) khỏi rơi im-lặng, trong khi **8** ý khác của cùng MIND-3 §D rơi im-lặng ở cùng cửa PAUSE-4 mà không ai nêu (xem §VI). Verdict `SUA — 9 điểm` + "lead nhận cả 9" **đọc thành cửa đã sạch**, thực tế cửa đó là cửa mất nhiều ý nhất của cả L7. Không phải lỗi vai-1 (trục nó = chấm block NHÁP), mà là **lỗ giữa 2 trục**: không vai nào ở cửa pause có nhiệm-vụ đối-chiếu §D-cũ vs §D-mới.

### III.b — vai-2 `ctx-verifier` @`/tiep` S158: `CO-CO 8 cờ`

Vết: `_tiep-4.md:6` (1 dòng `ctx-verifier:` đủ nội-dung 3 cờ nặng). ⚠️ Vết này **KHÔNG** có dòng `LEAD-PHAI-NHAC-LAI:` như contract §(iii) mô tả — nhưng cờ được nhắc lại bằng **nội-dung** (K1/K3 + số đo trần), tức thoả **sàn khoản 3 bằng bằng-chứng nội-dung**. Ghi nhận dạng **INFO**, không FLAG.

**Kiểm (a) — lead có NHẮC LẠI thật không:** `_tiep-4.md:6` ghi rõ *"lead đo độc-lập XÁC NHẬN: dư 2.727 B + MIND-1 1.868 B = 4.595 < 6.536 B cần"*. Lead **không nhận suông**: chạy phép đo riêng, ra 3 con số, và số đó **bác** khả-năng mở MIND-5. ⇒ **ĐẠT** (đây là dạng nhắc-lại tốt nhất: tái-đo chứ không tái-phát-biểu).

**Kiểm (b) — cờ vai-2 có được xử không:** xem §VI + §VII. K1 và K3 **đã được ghi nhận nhưng CHƯA được xử** (8 ý vẫn ở trạng thái rơi; `_mind` chưa có dòng khai). Đúng nhịp — lead ghi ở block kế, mà block kế **không mở được** vì trần. Đây chính là chỗ 2 cờ dính vào nhau (§VII).

---

## (IV) BẤT-BIẾN CHUỖI — tự đếm ĐĨA, KHÔNG tin lời khai

Đếm bằng `ls` trực tiếp trên `.claude/sessions/session-7/`:

| vật | số VAI tự đếm | số MÁY in | khớp? |
|---|---|---|---|
| `_pause-*.md` + `pause-*.md` (dual-accept) | **4** | `p (DEM DIA) = 4` | ✅ |
| mind-block `^## MIND-\d+` | **5** (4,3,2,1,0) | `\|block\| = 5` | ✅ |
| `_tiep-*.md` | **4** | (máy không đo) | — |
| `_snapshot-*.md` | **3** | (máy không đo) | 🚩 |

- **Bất-biến `|block| ∈ {p, p+1}`:** `5 ∈ {4,5}` ✅ **ĐẠT**, hai nguồn khớp, 0 lệch cần in-cả-hai-số.
- **Cân-sổ pause↔đối-ứng:** 4 pause / 4 `_tiep` ✅ 1:1. Chưa có `_end` (sinh sau, §6.3-bis) ⇒ máy khai đúng *"khong co `_end` => bo qua"*.
- **Tự-khai `markers:`/`mind-blocks=`:** chưa tồn tại (không `_end`) ⇒ **0 nguồn tự-khai để cross-check**; đĩa là nguồn duy nhất, đúng luật.

### 🚩 FLAG-1 (MED-HIGH) — `_snapshot-4` **KHÔNG TỒN TẠI**: xác nhận cờ lead nêu, và nó đắt hơn "thiếu 1 vết"

**Xác nhận, không bác.** Bằng-chứng 2 lớp:
1. Đĩa: `_snapshot-1/2/3.md` có, mỗi cái mang `kind: auto-snapshot @PAUSE-<k> (pause.md §2.6(D))` — chuỗi 1:1 với PAUSE-1/2/3. **`_snapshot-4.md` vắng.**
2. Git: `git log --all --name-only -- .claude/sessions/session-7/_snapshot-4.md` → **rỗng** ⇒ **CHƯA TỪNG được tạo** (không phải bị xoá). PAUSE-4 vẫn commit bình thường (`6c263dd wal: pause`).

🔴 **Cái mất KHÔNG chỉ là 1 tệp vết.** `pause.md:45` §2.6(C-bis) khai thẳng lý-do thứ-tự: *"đặt TRƯỚC (D) để **secrets-sweep của auto-snap quét luôn block vừa chèn = lưới-2 sau máy-draft lưới-1**"*. Và `pause.md:53` §2.6(D) ràng auto-snapshot là bước **AUTO mỗi pause**.

⇒ PAUSE-4 không chạy (D) ⇒ **lưới-2 `secrets-sweep` KHÔNG quét MIND-4**. Mà MIND-4 là **block mới nhất, dài nhất, và là block DUY NHẤT sinh ở cửa đó**. Hai lưới độc-lập phủ `_mind` (chính là fix parity `--root` hậu-T4 ghi trong diary vai này) **rút còn một** đúng tại block cần nhất. Lớp `vắng-mặt trông giống ổn`: `mind-check` vẫn xanh 10/10 nên cửa đọc thành sạch, trong khi một trong hai lưới đã im.

*Giảm nhẹ trung thực:* rào-3 hiện **ĐẠT** ở lưới-1 (`0 hit / 4 pattern`) ⇒ **chưa có secret lọt**. FLAG này về **độ phủ của lưới**, không phải về ô nhiễm đã xảy ra. Nhưng block `_mind` là **BẤT BIẾN** ⇒ nếu có lọt thì vĩnh-viễn ⇒ không được hạ xuống LOW.
→ Đề-xuất: chạy bù `python scripts/session_ctx.py secrets-sweep --root <session-7>` trước khi commit chốt L7; và soi vì sao (D) không fire ở PAUSE-4 (3/3 cửa trước fire đúng ⇒ nghi bỏ bước thủ-công, không phải hỏng máy).

---

## (V) BLOCK-0 — nội-dung THẬT, không phải scaffold-rỗng: **ĐẠT**

Đòi ≥1 mảnh khuôn/máy không tự sinh được. Có thừa:
- **Tên ý mục D (MIND-0 §D:242-250):** 9 ý có thật, mỗi ý 1 nhãn — ví-dụ ý *"Row ngoài `$canonRows`: mở rộng tập máy canh hay bỏ số + trỏ nguồn sống theo khuôn B1"* `{mới-nêu}` và ý *"Điểm mù tự-quy-chiếu của cặp H24…"* `{đang-cãi}`.
- **E-verdict cụ-thể (MIND-0 §E:254-264):** 11 dòng spawn có verdict + con-trỏ, ví-dụ `ring1-audit — 46Đ/2T/5KC trên 53 claim` và `harness-audit — 68Đ/8T trên 78 claim`.
- `ts`/HEAD/heading **không được tính** và cũng không cần dùng tới.

Ghi thêm: MIND-0 §C:237 chứa **nguồn của mồi-ngầm** ở dạng "nghi vấn để dành" — block-0 không những thật, nó còn là block **giàu nhất** của cả chuỗi. Trớ trêu: nó cũng là block **bị bỏ lại xa nhất** (§VI).

---

## (VI) CARRY — 🚩 FLAG-2 (HIGH): **8 ý** rơi từ MIND-3 §D, và header nén **chỉ đường SAI**

Vai-2 báo **7**. Vai-3 tái-dựng độc-lập bằng grep từng ý ⇒ **8** (7 của vai-2 + K1 "thứ tự 3 việc" mà vai-2 tách ra đếm riêng). **Xác nhận vai-2, cộng thêm phần khớp nối.**

MIND-3 §D (`:141-144`) có **11 ý**. Sổ đoạn-hậu từng ý:

| ý (MIND-3 §D) | nhãn | số phận trong MIND-4 §D | kết |
|---|---|---|---|
| Q2 kiến-trúc khúc 8-12 | treo-chờ-anh | **ĐÓNG có khai** (`:76` + `:141`) | ✅ đúng chuẩn |
| Q6 giá vào HĐ | treo-chờ-anh | nằm trong *"5 câu thiết kế… Q3·**Q6**·Q11"* (`:97`) | ✅ carry |
| trần `_mind` | treo-chờ-anh | hoá thân thành *"Luật nén `_mind` HỞ… re-tune khoá `mind_ctx_kb`"* (`:99`) | ✅ carry |
| **thứ tự 3 việc** | treo-chờ-anh | `grep "thứ tự"` → chỉ `:22`(luật A-E) `:88`(ISO) `:142`(chính nó) ⇒ **0 hit MIND-4** | 🔴 RƠI *(=K1 vai-2; vẫn sống ở `WAL:25 next:` "thứ tự wave")* |
| **nhịp `ctx-curator`** | treo-chờ-anh | `ctx-curator` trong MIND-4 chỉ còn ở **§E:112** = dòng spawn, KHÔNG phải ý thảo-luận | 🔴 RƠI |
| **`ring5-audit` slot (41)** | treo-chờ-anh | hit `:142`(chính nó) `:213`(MIND-1) `:247`(MIND-0) ⇒ **0 hit MIND-4** | 🔴 RƠI |
| **vòng KIỂM giữ nguyên** | đang-cãi | hit `:143` `:213` ⇒ **0 hit MIND-4** | 🔴 RƠI |
| **`#53` cửa này ×1** | đang-cãi | topic sống ở **§C:90 + §E:106-107**, nhưng **rời §D, MẤT NHÃN** | 🔴 RƠI *(đúng cơ-chế mồi-ngầm)* |
| **hợp-đồng liên-lane checklist** | gần-chốt | hit `:144` `:176` `:180` ⇒ **0 hit MIND-4 §D** | 🔴 RƠI |
| **chia task theo ranh-giới rõ** | gần-chốt | `ranh-giới` chỉ hit `:144` | 🔴 RƠI |
| **con-đo khai mẫu-số** | gần-chốt | hit `:144` `:180` `:249` ⇒ **0 hit MIND-4** | 🔴 RƠI |

**Cân sổ: 11 = 1 đóng-có-khai + 2 carry + 8 RƠI IM-LẶNG.** Trong 8 ý rơi có **3 ý `{gần-chốt}`** — tức nhóm *gần ra quyết-định nhất*, đắt nhất khi mất.

### VI.a — 🔴 Header nén không chỉ im lặng, nó **CHỈ SAI ĐƯỜNG**

`_mind-s-7.md:140` — MIND-3 §D mang tiêu-đề tự-khai:
> `### D. Đang-thảo-luận (nhãn giữ nguyên — MIND-4 đã nhận lại các ý còn sống)`

Claim này **SAI với 8/10 ý còn sống**. Và vì MIND-3 **bị NÉN @PAUSE-4**, header đó đứng ngay đầu khối gist ⇒ người/vai đọc lại sẽ được **bảo đừng tìm ở đây, MIND-4 có rồi**. Đó là **con-trỏ chỉ sai chiều** — tệ hơn im lặng, vì im lặng còn khiến người ta nghi ngờ, còn câu này **mua đứt sự yên tâm**. Vai-2 bác đúng; vai-3 xác nhận + định lượng.

*Công bằng — đối chứng để không quy nạp quá tay:* MIND-2 §D:178 có header **cùng khuôn** (*"MIND-3/4 đã nhận lại các ý còn sống"*) và claim đó **ĐÚNG**: cả 5 ý của MIND-2 §D đều tìm được nhà (4 ý → MIND-3 §D `:144`; "22 FLAG governance" → MIND-4 §D `:101`). ⇒ **Khuôn header không hỏng; hỏng ở đúng hop MIND-3→MIND-4.** Đây là **sự-cố 1 cửa (PAUSE-4)**, không phải thói quen hệ-thống — và PAUSE-4 cũng chính là cửa nén 3 block + mất `_snapshot-4`. Ba dấu hiệu cùng trỏ một cửa quá tải.

### VI.b — cơ-chế chung, n=2 độc-lập: **§D → §C = mất nhãn = rời tập được canh**

Hai ca khác cửa, khác ý, cùng đường đi:
- **mồi-ngầm**: MIND-0 §D `{mới-nêu}` → MIND-1 §C (không nhãn) → biến mất.
- **`#53`**: MIND-3 §D `{đang-cãi}` → MIND-4 §C (không nhãn) → biến mất khỏi §D.

`mind-check` phụ-9 hỏi *"ý ĐANG ở §D có nhãn không"* — **không** hỏi *"ý TỪNG ở §D nay ở đâu"*. Nên đường thoát này **không có máy nào canh**, và cả 2 lần đều đi lọt. Đúng khuôn `Goodhart: rời tập-đo` — không ai gian, chỉ là chuyển chỗ thì hết bị đo.
→ Đề-xuất phép rẻ (propose-only, lead quyết): mỗi cửa `/pause`, diff tập ý §D block-trước vs block-mới; ý biến mất phải có **1 trong 3** đuôi: `→ĐÓNG @…` · `→chuyển §C` · `→bỏ, lý-do`. Đây là phép **so 2 danh-sách**, làm được bằng máy, không cần ngữ-nghĩa.

---

## (VII) 🚩 FLAG-3 (HIGH) — mục E **KHÔNG THỂ** phủ cửa closeout: L7 sẽ đóng với dòng-sống thủng trọn 1 window

Contract §(ii).2: mục E phải có **1 dòng / mỗi spawn + engine-run của phiên**.

Cửa closeout S158 này đã sinh (đếm đĩa run-folder `2026-07-28-S158-bookend-close/`): `tooling-auditor` · `harvest-curator` · `lead-stale` · `lead-gap` · `ring1` · `ring2` · `harness-eval` · `harness-refine` · **+ `ctx-audit` (lượt này)** — **≥9 spawn**, mỗi con đã có sub-file trên đĩa.

**Không dòng nào trong số đó có chỗ để vào `_mind`**, vì 2 lý-do chồng nhau:
1. **Không có nghi-thức:** `grep "_mind" .claude/commands/session-end.md` → **hit DUY NHẤT `:162`** (chính khoản (l) gọi vai này). Nhịp refresh `_mind` chỉ sống ở `pause.md §2.6(C-bis)` = **cửa `/pause`**. `session-end` **không có bước ghi block `_mind` cuối**. ⇒ đóng phiên bằng `/session-end` (không qua `/pause`) thì **window cuối cùng LUÔN mất mục E** — lỗ **cấu-trúc**, tái mỗi phiên-logic, không phải lỗi lead phiên này.
2. **Trần chặn đường vá:** 30.305/32.768 = **92,48%**; vai-2 đo và lead **tái-đo xác nhận**: nén thêm 2 block chỉ dư **4.595 B** < **6.536 B** cần ⇒ **MIND-5 không mở được**.

⇒ Hai cờ dính nhau: kể cả muốn khai, cũng không còn chỗ khai. Và luật nén thì **HỞ** (ý `{treo-chờ-anh}` tại `:99`, chưa ai vá) ⇒ **không có đường ra hợp-lệ trong phạm-vi luật hiện hành**.

🔴 Đây là điểm phải đưa lên owner, không phải để lead tự chọn: 3 đường đều đổi luật — **(a)** re-tune khoá `mind_ctx_kb` (LEAD-DECIDED sẵn theo `:99`, nhưng đang chờ dogfood) · **(b)** vá luật nén để nén được block đã-nén-rồi · **(c)** chấp nhận đóng L7 với mục E thủng window-5 **và GHI 1 dòng KHAI** trong `_end` (`markers:`) rằng dòng-sống closeout nằm ở run-folder chứ không ở `_mind`. **Đường (c) rẻ nhất và trung thực**; đường tệ nhất là **đóng im lặng** — vì lúc đó `mind-check` vẫn in `dat`, và L7 khép lại trông như đủ.

---

## (VIII) ĐỐI-CHIẾU §B / §C với sổ máy — **ĐẠT**

- **§B (hướng-tiếp) vs `.claude/WAL.md:25` `next:`** — WAL: *"**rà 6 HIGH lens-wave** (`sub-review-wave-1.md`) đối chiếu spec §③ đã sửa → chốt còn hở gì → **thi công WAVE 1**"*. `_mind` §B `:81`: *"cửa sau **thi công Wave 1** — 🔴 **nhưng phải đóng phần còn lại của verdict `SUA-TRUOC-W1` trước** (7 lỗi đã vá **không** phủ trọn 6 HIGH)"*. ⇒ **KHỚP**, kể cả điều-kiện chặn. Không phải tin-sổ-máy vì không lệch. ✅
- **§C (kế-hoạch) vs bản-đồ việc** — `WAL:20-24` 4 mục `[ ]` (lỗ hổng HĐ treo-có-chủ-đích · kéo thư fan-out · 22 FLAG · curate `reviewer/MEMORY.md` + drift-audit 2026-08-01). `_mind` MIND-4 §D `:98` giữ lỗ-hổng-HĐ, `:101` giữ 22 FLAG. 2 mục còn lại là việc vận-hành thuần (`_context:173-174` có đủ) ⇒ không đòi mặt ở `_mind`. **0 ca "kế-hoạch tả việc không có trên bản-đồ"**, **0 ca "bản-đồ có việc mà kế-hoạch mù"** ở mức load-bearing. ✅
- **Ý D đã định-đoạt mà chưa đổi nhãn:** rà 7 ý MIND-4 §D — Q2 đã đóng đúng cách; 6 ý còn lại đều thực-sự chưa chốt (3 câu treo còn nguyên trong `WAL:25`). **0 ca nhãn ôi.** ✅
- **Con-trỏ giải được:** máy 5/5 `dat`, **0 ca `đang-chờ`** ⇒ không có ca "mở còn chờ, đóng vẫn chờ". ✅

---

## (IX) THÁCH-CLEAN — nghĩa-vụ §(v) đã thi hành

Máy `0 trượt 0 cờ` ⇒ vai **bắt buộc** tự soi chỗ máy mù trước khi được nói "ổn". Đã soi **4** chỗ, **cả 4 đều ra ca thật**:

| chỗ máy MÙ | phép vai dùng | kết quả |
|---|---|---|
| carry §D xuyên block | diff 11 ý MIND-3 §D vs MIND-4 §D | **8 ý rơi** (FLAG-2) |
| mục E vs `runs/` đĩa | đếm 9 sub-file closeout vs chỗ ghi trong `_mind` | **thủng trọn window-5** (FLAG-3) |
| song-hành `_snapshot` ↔ `_pause` | `ls` + `git log` | **`_snapshot-4` chưa từng sinh** (FLAG-1) |
| ý mồi vs site guard thật | grep `session-start.md` / `session-end.md` | **defect gốc chưa vá, guard vẫn `git status`** (§II nấc-4) |

⇒ **KHÔNG được báo CLEAN.** Máy xanh 10/10 mà lớp mềm có 4 lỗ — đúng ca "NGUY NHẤT" mà contract §(v) dựng vai này để bắt.

---

## (X) BẢNG VERDICT

| # | khoản | kết | neo |
|---|---|---|---|
| 0 | PIN đích-danh | **ĐẠT** | 3/3 pin resolve, 0 tên-tệp-sai |
| I | đọc máy (không re-implement) | **ĐẠT** | `dat=10 TRUOT=0 co=0` exit 0 |
| I | closed-check nghịch thứ-tự | 🚩 **FLAG-0** MED | `session-end.md:162` vs `:383` + `session_ctx.py:713` |
| II | **mồi-ngầm** | 🔴 **MỒI RƠI** (chấm được) | `_mind:250,237,209` sống · MIND-2/3/4 §D 0 hit · `session-start.md:285` + `session-end.md:159` vẫn `git status` |
| III.a | kiểm-vết vai-1 (2 mẫu) | **ĐẠT** | `_context:185-188`; verbatim-fix landed (6× `xem PAUSE-`, 0 lời anh) |
| III.b | kiểm-vết vai-2 | **ĐẠT** (lead tái-ĐO, không nhận suông) | `_tiep-4.md:6` |
| IV | bất-biến `\|block\| ∈ {p,p+1}` | **ĐẠT** | vai đếm 5 & 4 = máy in 5 & 4 |
| IV | `_snapshot` 3/4 → lưới-2 không quét MIND-4 | 🚩 **FLAG-1** MED-HIGH | `git log` rỗng; `pause.md:45,53` |
| V | block-0 nội-dung THẬT | **ĐẠT** | `_mind:242-250` ý D thật · `:254-264` E-verdict thật |
| VI | carry §D | 🚩 **FLAG-2** HIGH | 11 = 1 đóng + 2 carry + **8 rơi**; header sai `_mind:140` |
| VII | mục E phủ cửa closeout | 🚩 **FLAG-3** HIGH | `session-end` 0 bước refresh `_mind`; trần 92,48% |
| VIII | §B vs `WAL next:` · §C vs bản-đồ · nhãn · con-trỏ | **ĐẠT** ×4 | `WAL:25` ↔ `_mind:81` |
| IX | thách-CLEAN | **ĐÃ THI HÀNH** | 4/4 chỗ soi đều ra ca thật |

**TỔNG: 13 điểm — 8 ĐẠT · 4 FLAG · 1 MỒI-RƠI.**
Verdict dòng-1: `CTX-AUDIT: TRUOT — 13 diem` (TRƯỢT vì FLAG-2 + FLAG-3 đều là **mất nội-dung lớp mềm ở cửa ĐÓNG vĩnh-viễn**, không còn cửa sau để vá).

## memoryDelta (4-field — lead seed on-behalf, vai KHÔNG tự ghi)

- **datum-1 `moi-ngam-cham-duoc-va-roi`:** mồi L7 chấm được, kết = RƠI 3 nấc (rời §D→§C mất nhãn · rơi im-lặng · defect gốc `git status` chưa vá ở `session-start.md:285` + `session-end.md:159`). Phép chấm đúng = **grep nội-dung**, neo `:99` mục-từ-lúc-sinh.
- **datum-2 `D-sang-C-la-duong-thoat-khong-may-canh`:** n=2 độc-lập (mồi · `#53`). `mind-check` phụ-9 chỉ hỏi "ý ĐANG ở D có nhãn", không hỏi "ý TỪNG ở D nay đâu".
- **datum-3 `header-nen-chi-sai-duong`:** claim *"MIND-4 đã nhận lại các ý còn sống"* sai 8/10 — tệ hơn im lặng vì nó bảo người đọc đừng tìm. Đối chứng: cùng khuôn ở MIND-2 lại ĐÚNG ⇒ hỏng ở **1 cửa quá tải (PAUSE-4)**, không phải khuôn.
- **datum-4 `closed-check-khong-mat-nao-doc`:** phép máy nghiêm nhất lớp mềm (GAP-#9) fire SAU khi vai-3 đã rời cửa ⇒ chỉ lead — người bị chấm — đọc nó. GHI ⟂ KIỂM hở đúng chỗ có răng nhất.

---

END · TOTAL=13 DIEM

