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

**Lượt:** `@close` · phiên-LOGIC **L8** (sID=8), **window-4** · 2026-07-30
**PIN nhận từ lead (fail-closed, đủ 3/3 + marker-dir):**
- `_mind` = `.claude/sessions/session-8/_mind-s-8.md` (29.184 B, mtime 2026-07-30T00:46:18)
- `_context` = `.claude/sessions/session-8/_context-s-8.md` (12.816 B)
- run-folder = `.claude/workflows/runs/2026-07-30-S162-bookend-close/`
- marker-dir = `.claude/sessions/session-8/`

**Chế-độ chạy:** phiên CÓ vai-2 (`ctx-verifier` @/tiep, `CO-CO — 8 cờ`, vết `_tiep-3.md:6`), KHÔNG có vai-1 trong window-4 (0 `/pause`). ⇒ **KIỂM-CỦA-KIỂM** cho trục vai-2 + **hồi-tố chọn-lọc** cho trục vai-1 (vai-1 đã chạy ở window-1/2/3, vết trong `_context` PAUSE-1..3).

---

## §0 — PIN + fail-closed

**ĐẠT.** 4/4 đường dẫn PIN tồn tại trên đĩa, không phải glob-đoán. 0 tệp `*mind*` lạc tên trong `session-8/` (chỉ `_mind-s-8.md`). Không kích-hoạt `SKIP-CO-KHAI`.

---

## §1 — MÁY TRƯỚC VAI: đọc `mind-check`, và một sai-lệch ở chính dòng PIN

🔴 **FLAG-0 — `pin-so-may-thoi` (MED, nhắm lead, đã tự sửa được trong 1 lệnh)**

Lead PIN cho tao: *"mind-check --session 8 @/tiep = **11 ĐẠT / 0 TRƯỢT / 0 cờ**, exit 0 (mode=open)"* kèm chỉ-thị *"đọc verdict, đừng phán lại"*.

Tao chạy lại đúng lệnh canonical **tại thời điểm @close**:

```
python scripts/session_ctx.py mind-check --session 8
  verdict: dat=10 TRUOT=0 co=1 bo-qua-co-khai=0  => exit 0
```

**Hai số KHÁC NHAU.** Không phải máy sai, cũng không phải lead bịa — phép **(10) `thu-tu bookend vs _mind`** đã **LẬT từ `dat` sang `co`** trong khoảng giữa `/tiep` (08:53) và bây giờ, vì các artifact bookend-close vừa sinh ra và nay **mới hơn `_mind` 50.357 giây (839,3 phút)**.

Nguyên-văn phép (10) @close:

```
(10)     thu-tu bookend vs _mind        : co
   - _mind mtime = 2026-07-30T00:46:18
   - artifact bookend moi nhat = 2026-07-30T14:45:36 (2026-07-30-S162-bookend-close)
   - => _mind CU HON artifact 50357 giay (839.3 phut) - block top co the CHUA phu
        cac vong kiem chay sau no (muc E / nhan muc D de lech)
   - va: chen 1 block refresh SAU khi vong cuoi bao xong (tran (6) da noi cho ca nay)
```

**Vì sao đây là FLAG chứ không phải chuyện vặt:** chỉ-thị *"đừng phán lại"* + một con số **chụp ở cửa TRƯỚC** = công-thức để cửa sau thừa-kế trạng-thái đã hết hạn. Con số `11/0/0` là THẬT lúc 08:53 và SAI lúc 14:45; nếu tao tuân lệnh và chép lại nó, **cái cờ duy nhất của phiên này biến mất khỏi báo cáo** — và nó lại đúng là cờ trả lời câu hỏi thiết kế lead giao tao ở mục 5.

Cùng lớp với `[carry:...]` bài học đã có: *khẳng-định trạng-thái = phải chạm đĩa 1 lệnh*. Máy $0 ~200ms; không có lý do chép số cũ.

🔸 **Ghi công:** máy KHÔNG mù ở đây. Phép (10) tự bắt, tự nêu mtime cả 2 vế, tự kê thuốc. Đây là 1 trong số ít lần lưới máy đi TRƯỚC vai trên đúng trục vai được giao.

---

## §2 — Bất-biến chuỗi: TỰ ĐẾM ĐĨA (không tin lời khai)

Lệnh đếm độc-lập trên `.claude/sessions/session-8/`:

| Vật | Tao đếm (đĩa) | Máy in | Khớp |
|---|---|---|---|
| `## MIND-\d+` block | **5** (MIND-4,3,2,1,0) | 5 | ✅ |
| `p` = `_pause-*.md` + `pause-*.md` | **3** + 0 = **3** | `p (DEM DIA) = 3 [_pause-*.md=3 + pause-*.md=0 dual-accept]` | ✅ |
| `_tiep-*.md` | **3** | — | — |
| `_snapshot-*.md` | **3** | — | — |
| `_end-*` | **0** (chưa ghi) | `khong co _end => bo qua cross-check tu-khai` | ✅ |

**Cân sổ ORPHAN-L:** 3 pause ⟂ 3 tiep ⟂ 3 snapshot — cân đối, 0 mồ-côi. Mỗi `_pause-<k>` có `_snapshot-<k>` cùng `head-sha` cùng `ts` (kiểm mẫu `_pause-3`/`_snapshot-3`: cả hai `2026-07-30T00:35:32+07:00` @ `2c11005`). 0 tự-khai `markers:` / `mind-blocks=` để đối-chứng (chưa có `_end`) ⇒ **đĩa là nguồn duy-nhất, đúng luật**.

**Đối chiếu block ↔ pause:** MIND-2 @14:40 → `_pause-1` @14:43 · MIND-3 @17:04 → `_pause-2` @17:04 · MIND-4 @00:35 → `_pause-3` @00:35. Ba cặp khít. MIND-0 = block-0 bootstrap (07-28T20:57). **MIND-1 @07-29T09:25 = block refresh bookend @open S159** — chèn SAU vòng đo cuối (09:26 kết) chứ không trước, tức là **bản vá cho đúng FLAG gốc tao nêu @S159** (lead khi đó ghi block-0 lúc 08:32, sớm hơn vòng đo 13m36s). Vá đó **CÒN SỐNG và đã thành nếp** — ghi nhận.

⇒ `|block| = 5 = 1 (block-0) + 1 (refresh bookend) + 3 (refresh @pause)`. **Cân.**

### 🔴 FLAG-1 — `bat-bien-2-cong-thuc` (MED — trôi luật giữa persona và máy, nhắm harness)

Persona của tao (`ctx-audit.md` §(iv)) ghi kỳ vọng: **`|block| ∈ {p, p+1}`** = `{3, 4}`.
Máy `mind-check` phép (6) ghi kỳ vọng: **`3 ≤ |block| ≤ 6`** = `p ≤ |block| ≤ p+3` ("block-0 + 3 refresh/pause + tối đa 2 refresh bookend").

Với `|block|=5`: **persona ⇒ TRƯỢT · máy ⇒ ĐẠT.** Hai sổ luật cho hai phán quyết ngược nhau trên cùng một con số.

Phán của tao: **máy ĐÚNG, persona LỖI THỜI** — vì refresh-bookend là hành-vi có thật, hợp lệ, và chính là bản vá tao đòi @S159. Nhưng đây vẫn là **2-sự-thật trên một bất-biến**, đúng thứ mà cả `_mind` §luật lẫn rào-2 tồn tại để chặn. Persona tao là bên phải sửa, và tao **không được tự sửa** (propose-only, no-self-exempt).

🔸 Khai kẽ: nới từ `p+1` lên `p+3` làm bất-biến **lỏng đi 2 bậc**. Với `p=3` thì dải hợp lệ rộng 4 giá trị (3,4,5,6) ⇒ phép (6) gần như không thể TRƯỢT trong phiên ngắn. Nó vẫn có răng với ca *thiếu* block (|block| < p), nhưng đã mất phần lớn răng với ca *thừa*. Không đề nghị siết ngay — chỉ khai để lead/hub biết mình đang mua gì.

---

## §3 — Block-top có NỘI-DUNG THẬT (không phải scaffold-rỗng)

**ĐẠT — vượt ngưỡng xa.** Đòi hỏi tối thiểu là ≥1 tên ý mục D + ≥1 E-verdict cụ thể; `ts`/hash/HEAD/heading không tính.

MIND-4 (`_mind-s-8.md:69-98`) có:
- **Mục D: 8 ý có tên thật + nhãn** — ví dụ `:78` *"NGƯỜI DUYỆT 3 trạm PRO/CCM/CEO (18 user prod…)"* `treo-chờ-anh 🔴 BLOCKER`; `:83` *"W8-authz hồ sơ mới… `[Authorize]` trần"* `mới-nêu`.
- **Mục E: 11 dòng, mỗi dòng có vai + verdict + con-trỏ** — ví dụ `:91` *"W3 hmw ×3-đợt (`wf_ef4d05a8-98c` skeleton · `wf_445f7e28-38b` RED 6/6 · `wf_c9d5f8d4-cbe` GREEN 580/0)… SHIP `df52fa0`"*. Ba mã `wf_` + sha là thứ khuôn không tự sinh được.
- **Mục A/B/C** đều mang delta suy-nghĩ riêng, không phải chép checklist.

Máy phụ-9 độc lập xác nhận: `5 block: 5 muc A-E du + moi y muc D co nhan`. Máy phép (4): **7/7 con-trỏ mục E block-top GIẢI ĐƯỢC** (7 path tồn tại thật).

---

## §4 — CÂU HỎI THIẾT KẾ lead giao: window-4 chạy trọn mà 0 block mới — HỢP LỆ hay LỖ?

🔴 **FLAG-4 — `window-khong-sinh-block` (HIGH, cấu-trúc, tái mỗi phiên vào-bằng-`/tiep`)**

**PHÁN: LỖ. Không phải lỗ của luật — lỗ của LỊCH.**

### 4.1 Vì sao KHÔNG thể gọi là hợp lệ

Lập luận "hợp lệ" nghe được: `_mind` refresh @4 nhịp = *block-0 · @pause · @tiep · mục E gom spawn*; window-4 không có `/pause` nên không tới nhịp ⇒ không nợ block. Tao **bác**, bằng 4 căn cứ đo được:

1. **Chính cái máy đã gọi nó là cờ.** Phép (10) không phải do tao dựng — nó đã wire sẵn, và nó fire đúng ca này với thuốc kê rõ: *"chèn 1 block refresh SAU khi vòng cuối báo xong"*. Nếu 0-block-mới là hợp lệ thì phép (10) phải im. Nó không im.
2. **Bất-biến phép (6) ĐÃ TÍNH SẴN CHỖ cho block bookend** — dải `p ≤ |block| ≤ p+3` với chú thích *"+ tối đa 2 refresh bookend"*. Luật máy **kỳ vọng** bookend sinh block; window-4 đóng mà không sinh là **dùng chưa hết hạn-mức luật cho phép**, không phải "ngoài luật".
3. **Tiền-lệ nội-phiên-logic:** MIND-1 chính là một refresh-bookend @open S159 — cùng tệp, cùng phiên-logic, đã làm rồi. Bỏ ở window-4 là **thoái-lui khỏi nếp mình vừa lập**.
4. **Thiệt hại đo được, không giả định** — xem 4.2.

### 4.2 Thiệt hại cụ thể: mục E phủ **0/13** lượt của window-4

Kiểm kê spawn window-4 từ ĐĨA (không kê từ trí nhớ):

| Nguồn | Lượt |
|---|---|
| `runs/2026-07-30-S162-cay-4-folder-gd/` | `sub-frontend-designer-0.md` · `sub-reviewer-1.md` · `sub-cicd-monitor-2.md` (+`ship-synthesis.md`) = **3** |
| `runs/2026-07-30-S162-bookend-close/` | `sub-tooling-auditor` · `sub-harvest-curator` · `sub-lead-gap` · `sub-lead-stale` · `sub-ring1-audit` · `sub-ring2-audit` · `harness-eval-return` · `harness-refine-return` = **8** |
| `_tiep-3.md` | `ctx-verifier` @/tiep = **1** |
| lượt này | `ctx-audit` @close = **1** |
| **TỔNG** | **13** (chưa kể engine-run máy-$0 + Stop-hook `wal:` flush) |

Block top `_mind` là MIND-4, mục E của nó khai rõ **"(window 3…)"**. ⇒ **13/13 lượt của window-4 không có chỗ nào trong lớp mềm.** Đây đúng lớp lỗi `_mind` sinh ra để chặn: WAL/commit giữ *việc*, `_mind` giữ *ai đã soi và nói gì* — mất là mất im lặng.

Đối chiếu lịch sử: **S158 @close tao đã nêu FLAG-3 HIGH y hệt** ("@close KHÔNG có bước refresh `_mind`; ≥9 spawn closeout không có chỗ vào mục E"). Đó là **L7**. Nay **L8, cùng lỗ, cùng vị trí**. Khác biệt duy nhất: L7 bị trần chặn (92,48%), L8 thì lead ĐÃ lên lịch vá (WAL:20) nhưng **chưa vá tại thời điểm tao chấm**.

### 4.3 Cái bẫy khoá tay: vá lỗ này BẮT BUỘC đi qua đúng cơ-chế vừa làm rơi ý

Đây là phần lead nên đọc kỹ nhất.

- Trần: **29.184 / 32.768 B = 89,06%** (máy phép (7), đọc LIVE). Headroom **3.584 B**.
- MIND-4 nặng ~4,6 KB. Một MIND-5 phủ 13 lượt + hạ nhãn + delta window-4 sẽ **vượt trần**.
- ⇒ Muốn có MIND-5 thì **phải nén MIND-2 trước** (đúng K6 của vai-2, đã vào WAL:20).
- ⇒ Nhưng **lần nén gần nhất (MIND-1 @PAUSE-3) chính là thứ làm rơi 2 ý** — xem §5.

**Vòng khoá:** *thiếu block ⇒ mất dòng-sống* · *thêm block ⇒ vượt trần* · *nén để lấy chỗ ⇒ rơi ý*. Ba lối, lối nào cũng mất một thứ. Đây không phải lỗi thao tác của lead; đây là **trần `mind_ctx_kb` đã hết dư địa cho phiên-logic dài 4 window** — và nó chính là slot (58) đang chờ anh.

🔸 Ghi công đúng chỗ: lead **đã** nhận diện vòng khoá này và ghi vào WAL:20 (`MIND-5: hạ nhãn nén-MIND-1 (K5) + nén MIND-2 (K6: trần 89,1%)`). Cái thiếu không phải nhận-thức, mà là **nó vẫn `[ ]` lúc vai chấm** — và theo đúng thứ tự GHI ⟂ KIỂM thì như vậy là đúng: tao phán trước, lead ghi sau.

---

## §5 — CARRY: verify độc-lập cáo buộc K7 của vai-2

**Cáo buộc cần kiểm** (`_tiep-3.md:6`): *"K7 🔴 2 ý D rơi khỏi MIND-4 [slot-45 + detectors-C11b] — đã di-trú vào WAL @S162"*, cơ-chế = nén MIND-1 @PAUSE-3 chỉ cấp disposition cho 3/5 dòng D.

### 5.1 Phương pháp: dựng lại bản TRƯỚC nén từ git

Con-trỏ verbatim ghi trong header MIND-1 (`_mind-s-8.md:179`): `git show 2c11005:.claude/sessions/session-8/_mind-s-8.md`.

**Tao chạy thật — con-trỏ GIẢI ĐƯỢC**, trả về MIND-1 nguyên bản (5 mục A-E đầy đủ). ⇒ khoản (iii)(4) *con-trỏ giải được*: **ĐẠT, chứng bằng thực thi chứ không bằng đọc**. Không có chứng-nhân nào bị xoá vĩnh viễn.

### 5.2 Đối chiếu từng dòng mục D — cáo buộc K7 ĐÚNG, số ĐÚNG

| # | Ý mục D (bản trước nén) | Nhãn | Disposition trong bản nén (`:184-189`) | Có mặt ở MIND-4 D? |
|---|---|---|---|---|
| 1 | Vá GỐC thứ tự Phase 3.5 | mới-nêu | ✅ *"nay carry đời-2 @MIND-4 D"* | ✅ `:80` |
| 2 | `detectors :1095/:1760` lọc `sub-*` sót trio-return (C11b) | gần-chốt | ❌ **KHÔNG có** | ❌ **vắng** |
| 3 | Cơ-chế đặt-chỗ diary 6/6 chưa thi hành | treo-chờ-anh | ✅ *"nay đời-4 @MIND-4 PARK"* | ✅ `:82` |
| 4 | Slot (45) trần `_mind` = báo-động-giả, đề rút | gần-chốt | ❌ **KHÔNG có** | ❌ **vắng** |
| 5 | `cicd _INDEX` 95,14% hết lối | treo-chờ-anh | ✅ *"nay 99,2% @MIND-4 PARK"* | ✅ `:82` |

**XÁC NHẬN vai-2: đúng 2, không nhiều không ít.** 3/5 có disposition, 2/5 không. Danh tính 2 ý khớp chính xác {slot-45 · detectors-C11b}.

🔸 **Công bằng với lần nén đó:** phần còn lại của thao tác nén là **TỐT**. Tao đối chiếu cả A/B/C/E: §E gộp 10 vai thành 1 con-trỏ = đúng luật *"đã-chốt ⇒ chỉ con-trỏ"*; §C có vẻ mất delta-3 (`#53 = thuộc-tính kênh return`) nhưng thực ra nó **dời lên §A** và còn nguyên chữ; §B giữ đủ 3 nhánh-đã-loại ở dạng rút gọn. Nén 2.155 B mà chỉ hở 2 con-trỏ-tiến — đây không phải nén ẩu.

### 5.3 🔴 FLAG-2 — `nen-la-lan-KHONG-ai-gac` (HIGH — nguyên nhân GỐC của K7, vai-2 chưa nêu)

Đây là phần **kiểm-của-kiểm** đưa thêm được, không lặp vai-2.

`_context-s-8.md:125` ghi verdict vai-1 tại chính cửa PAUSE-3 đó:

> ctx-curator verdict: **`SUA — 8 điểm`** (**2 ý D rơi đời-2** · MIND-3-D chưa hạ nhãn · E thiếu engine-run · W3 đếm thiếu wf · verdict verifier bị làm nhẹ · W7 thiếu SHIP-sha · C(3) chép checklist · mốc 566 sai→562) — cả 8 SỬA Ở NHÁP trước chèn; máy draft-gate 7/0 ×2 vòng + full 11/0 sau chèn **(kèm nén MIND-1 vì vượt trần 212B)**.

Đọc kỹ: vai-1 @PAUSE-3 **cũng** bắt *"2 ý D rơi"*. Nhưng đó là **CẶP KHÁC**. Đối chiếu MIND-4:80-82 xác nhận: cặp vai-1 bắt = {`vá-GỐC Phase-3.5-refresh`, `khuôn-5-đợt→sổ bền`}, và `:82` tự khai *"2 dòng trên là phần từng rơi nay nạp lại"*. Cặp vai-2 bắt = {`slot-45`, `detectors-C11b`}. **Bốn ý khác nhau, hai sự kiện rơi khác nhau, cùng MỘT cửa.**

Vì sao vai-1 bắt được cặp A mà mù cặp B? Vì hai thao tác khác nhau chạy ở cùng cửa PAUSE-3:

| Thao tác | Vật bị đụng | Ai gác | Kết quả |
|---|---|---|---|
| (1) Soạn **block MỚI** (MIND-4) | nháp chưa chèn | `ctx-curator` soi nháp | rơi 2 → **bắt + phục hồi trong cửa** ✅ |
| (2) **NÉN block CŨ** (MIND-1) để lấy chỗ | block đã bất-biến | **KHÔNG AI** | rơi 2 → **lọt, tới `/tiep` sau mới lộ** ❌ |

Chữ *"(kèm nén MIND-1…)"* nằm **NGOÀI** danh sách 8 điểm — nó là ghi chú phụ, không phải hạng mục được chấm. Nén được thi hành **sau** khi curator đã ký, và **draft-gate 7/0 ×2** chỉ soi nháp block mới, còn **full 11/0 sau chèn** là máy — mà máy chỉ đếm cấu-trúc (5 mục, nhãn D, con-trỏ block-top), **không có phép nào so nội-dung một block với chính nó trước-sau**.

⇒ **Lỗ vai, không phải lỗi người.** Luật `_mind` cho phép nén (ngoại lệ duy nhất của bất-biến) nhưng **không gắn kèm vòng kiểm nào cho chính ngoại lệ đó**. Thao tác *duy nhất* được phép sửa quá khứ lại là thao tác *duy nhất* không bị soi.

**Quan trọng cho MIND-5:** WAL:20 đang lên lịch **nén MIND-2** ở cửa tới. Đó là lần chạy tiếp theo của đúng cái lane không có ai gác. Nếu không thêm gác, dự báo hỏng lặp lại là hợp lý — không phải suy đoán bi quan mà là **cùng thao tác, cùng điều kiện, không đổi biến nào**.

### 5.4 slot-45 KHÔNG chỉ rơi — nó LẬT NGƯỢC (và chỗ này lead đã xử ĐÚNG)

Nội dung ý slot-45 lúc MIND-1: *"trần `_mind` = **báo động giả** (đo trên `_mind-s-7` đã đóng băng; file sống 37,9%) ⇒ **đề rút khỏi hàng chờ quyết của anh**"* — nhãn `gần-chốt`.

Năm block sau, chính tệp đó **89,06%** và đang **ép nén mỗi cửa**. Tức kết luận "báo động giả" đã bị thực tế bác bỏ, và cái bị rút khỏi hàng chờ của anh hoá ra là việc thật.

Kiểm việc lead sửa — **ĐẠT, và sửa đúng cách**:
- `docs/HANDOFF.md:17` slot **(58)**: *"🔄 **SLOT (45) SỐNG LẠI — trần `_mind` là THẬT, không còn báo-động-giả.** S159 rút slot này vì số 92,5% đo trên `_mind-s-7` **đã đóng băng**; file SỐNG `_mind-s-8.md` nay **89,06% (29.184/32.768 B)**…"* + nêu 3 lựa chọn cho anh (nâng khoá · đổi luật nén · giữ nguyên).
- `docs/HANDOFF.md:35` carry: `[carry:mind-tran-nen-moi-cua]` *(MỚI — slot 58)*.
- `.claude/WAL.md:20`: *"mở lại slot-45 (tiền-đề lật)"*.
- Ghi công nguồn: slot 58 credit `lead-stale FLAG-8 HIGH` — tức **vòng soi-lead bắt, không phải vòng ctx**. Lưới chéo ăn thật.

⇒ ý #4 **đã có nhà, đúng tầng (owner-facing), có ghi lý do lật tiền-đề**. Không cần thêm gì. Đây là cách xử mẫu cho ca carry-kết-luận-ngược (đối chiếu: `carry-ket-luan-nguoc` @S154 khi đó **không** được xử).

### 5.5 🔴 FLAG-3 — `di-tru-nguoc-chieu-C11b` (HIGH — ý thứ 2 di-trú SAI, và sai theo hướng tệ hơn)

`.claude/WAL.md:21`, mục **chờ-anh phụ (không chặn)**, dòng cuối:

> K7b cứu khỏi MIND-1-nén: detectors `:1095/:1760` lọc `sub-*` sót trio-return (C11b — 0 hit ngoài MIND-1, kẻo mất hẳn)

Tao đo đĩa. **Khuyết tật này đã được VÁ TỪ S159, ở CẢ HAI site:**

- `scripts/governance-detectors.ps1:1102` → `Where-Object { $_.Name -match '^(sub-.+|.+-return)\.md$' }`
  kèm comment `:1091` — *"@S159 FIX (ctx-audit FLAG-6): the filter used to be the literal glob 'sub-*.md', so the trio returns … were INVISIBLE to this detector."*
- `scripts/governance-detectors.ps1:1771` → **cùng regex**, kèm comment `:1769` — *"@S159: mirror of the C11(b) filter fix above."*

⇒ Dòng WAL:21 mô tả một khuyết-tật **KHÔNG CÒN TỒN TẠI**, và xếp nó vào **hàng chờ anh quyết**. Ba hệ quả, xếp theo độ nặng:

1. **Bơm việc-ma vào hàng đợi owner.** Anh sẽ đọc một mục "chờ anh" mà đáp án đã có từ 1 ngày trước. Đây là `gap-decision-sunk` chạy ngược: không phải quên trình, mà **trình lại việc đã đóng** — đúng lớp `view-stale-status` mà HANDOFF:114 tự kể là "SỐNG SAI 4 phiên" ở ca trio-first-run.
2. **Con-trỏ SAI CHIỀU tệ hơn im lặng** (bài chính tao ghi @S158). Một mục vắng thì người đọc còn nghi; một mục hiện diện với mô tả "đang hở" thì người đọc **tin là đang hở**.
3. 🔴 **Neo `:1095/:1760` là số dòng, và cả hai đã THỐI** — site thật nay là `:1102` và `:1771` (lệch 7 và 11 dòng, chính vì bản vá thêm comment vào).

Điểm (3) là chỗ đắng nhất: **cùng phiên này, vai-2 nêu K2/K3 = *"con-trỏ WAL theo số-dòng thối-trong-1-cửa (WAL:49→thật WAL:17); luật mới: trỏ NỘI-DUNG"***, và lead **đã ghi nhận** bài đó vào WAL:20 (*"luật con-trỏ-WAL theo NỘI-DUNG không số-dòng (K2/K3)"*). Rồi ở dòng **ngay bên dưới**, thao tác di-trú lại dùng **hai neo số-dòng**, và cả hai đã sai ngay lúc viết.

Đây là ca sạch của mẫu đã ghi trong bộ nhớ dự án: **bài-học nằm-trong-context KHÔNG tự bật** — nó được viết ra, ở đúng tệp, cách nhau **một dòng**, và vẫn không chặn được lần tái phạm kế tiếp. Chặn được = luật soi-được (máy/vai), không phải trí nhớ.

### 5.6 Trả lời thẳng câu lead hỏi: "di-trú vào WAL + HANDOFF slot (58) + carry — đủ chưa?"

**ĐỦ 1/2, KHÔNG đủ 2/2.**

| Ý rơi | Di-trú | Chấm |
|---|---|---|
| `slot-45` trần `_mind` | HANDOFF slot (58) + `[carry:mind-tran-nen-moi-cua]` + WAL:20 "mở lại slot-45 (tiền-đề lật)" | ✅ **ĐỦ** — đúng tầng, có lý do lật tiền-đề, có 3 lựa chọn cho anh |
| `detectors C11b` | WAL:21 "chờ-anh phụ" | ❌ **SAI** — việc đã đóng @S159 (2 site), bị hồi sinh vào hàng chờ anh, kèm 2 neo dòng đã thối |

**Nước đi đúng cho C11b:** XOÁ khỏi WAL:21; nếu muốn giữ vết thì ghi ở dạng **đã-đóng có con-trỏ NỘI-DUNG**, ví dụ *"C11(b) filter — ĐÓNG @S159, cả 2 site; chứng: grep `'^(sub-.+|.+-return)\.md$'` trong `governance-detectors.ps1` ⇒ 2 hit"*. Grep theo chuỗi regex là con-trỏ **không thối theo số dòng** — đúng luật K2/K3 mà lead vừa lập.

🕐 **Mốc đo (chống đọc-nhầm time-drift):** FLAG-3 đo trên WAL đọc lúc ~14:50. Lead khai đã di-trú tiếp sau khi tao bắt đầu. Phần **slot-45** tao đã xác minh trên đĩa (HANDOFF:17 + :35) ⇒ giữ nguyên ĐẠT. Phần **C11b** nếu lead đã gỡ/đổi dạng sau mốc trên thì FLAG-3 **tự động rút** — nhưng chỉ rút bằng ĐĨA, không rút bằng lời khai.

---

## §6 — 4 khoản ĐỐI-CHIẾU + kiểm-vết vai-2

### 6.1 Kiểm-vết vai-2 (`ctx-verifier`, `CO-CO — 8 cờ`) — chọn mẫu 3/8, KHÔNG lặp trọn

| Cờ | Cáo buộc | Đối chứng độc lập của tao | Kết |
|---|---|---|---|
| **K4** | orphan ×3, trong đó S160 = **dương-giả TÊN** `review-synthesis-clone-s160.md` không khớp glob | `ls S160/*-synthesis.md` → **No such file**, trong khi `review-synthesis-clone-s160.md` **có tồn tại**. Tên kết thúc `-clone-s160.md` ⇒ không match `*-synthesis.md` | ✅ **ĐÚNG** |
| **K5** | nhãn "nén MIND-1" chưa hạ dù ĐÃ thi hành @PAUSE-3 | `:85` còn `gần-chốt (làm @closeout)`, trong khi `:179` header MIND-1 đã mang `[NÉN @PAUSE-3…]` ⇒ việc xong, nhãn còn mở | ✅ **ĐÚNG** (= khoản (iii)(3) của tao) |
| **K7** | 2 ý D rơi do nén | Dựng lại bản git, đối chiếu 5/5 dòng — xem §5.2 | ✅ **ĐÚNG, số chính xác** |

⇒ **vai-2 đo thật, không thổi.** 3/3 mẫu đứng vững trước đối chứng. Giá trị tao thêm nằm ở **nguyên nhân** (FLAG-2) và **chất lượng di-trú** (FLAG-3), không ở việc đếm lại.

**Kiểm-vết vai-1** (không có trong window-4, nhưng có vết 3 cửa trước): con-trỏ `_mind` mục E → `_context` PAUSE-`<k>` **giải được 3/3**, có verdict verbatim: `:66` `SUA — 7 điểm` · `:89` `SUA — 3 điểm` · `:125` `SUA — 8 điểm`. Đây là loại con-trỏ **trỏ vào SECTION, máy không lần theo được** — tao lần tay, sạch.

### 6.2 Bốn khoản đối-chiếu

**(1) mục B vs `.claude/WAL.md` `next:` — 🔴 FLAG-5 `muc-B-lech-WAL-next` (LOW, dẫn xuất)**
- `_mind:73` B: *"chờ anh chốt NGƯỜI DUYỆT 3 trạm → dựng 2 workflow → W5 → E2E"*
- `WAL:23` next: *"**anh nghiệm thu cây 4-folder trên prod (F-5 layout 19rem 2 trang)** → mạch chính: anh nhắn 3 tên/email người duyệt 3 trạm → WF Designer → W5 → E2E"*

**TIN SỔ MÁY** (WAL là sổ chốt). Lệch = WAL có **1 việc dẫn đầu** mà `_mind` mù: nghiệm thu cây 4-folder — tức toàn bộ sản phẩm window-4. Đây **không phải defect độc lập**, nó là triệu chứng trực tiếp của FLAG-4: `_mind` dừng ở window-3 nên đương nhiên không biết window-4 đẻ ra việc gì. Vá FLAG-4 thì cờ này tự tắt.

**(2) mục C vs bản-đồ việc — 🔴 FLAG-6 `con-tro-WAL-so-dong-CHET` (MED)**
`_mind:75` C(3): *"housekeeping @closeout → **WAL:49** (7 mục — con-trỏ, không chép)"* và `_mind:80` D: *"carry đời-2 từ **WAL:49**/`_tiep-2.md` K3a"*.

`wc -l .claude/WAL.md` = **30 dòng**. ⇒ **`WAL:49` không tồn tại**, ×2 chỗ, ngay trong block-top. Mục housekeeping thật nay ở **WAL:20**. Con-trỏ đã thối **2 đời** (49 → 17 theo vai-2 → 20 nay).

Đây là cùng khuyết-tật K2/K3, nhưng **ở phía `_mind`** chứ không phía WAL — vai-2 nêu WAL, tao bổ sung rằng lớp mềm cũng đang mang 2 neo chết. Đáng chú ý: bài học "trỏ NỘI-DUNG không số-dòng" nay đã nằm trên **3 bề mặt** (`_tiep-3.md:6` · `WAL:20` · `STATUS` mục ④) mà 2 neo chết vẫn sống trong `_mind`.

Phần còn lại của mục C khớp bản-đồ: C(1)(2) ↔ WAL `next:` mạch chính; C(3) ↔ WAL:20 (đúng nội dung, sai neo).

**(3) ý D đã định-đoạt mà chưa đổi nhãn** — trùng K5, đã xác nhận ở 6.1. Ngoài ra `:85` sẽ còn sai lần nữa nếu MIND-5 chép lại nguyên trạng.

**(4) con-trỏ giải được** — máy: **7/7** file-path mục E block-top `dat`. Tao thêm: **4/4** con-trỏ trong block KHÔNG-top (MIND-3/MIND-2, máy không soi) giải được; **1/1** con-trỏ git verbatim (`git show 2c11005:…`) giải được bằng thực thi. **0 ca `đang-chờ` treo từ cửa mở sang cửa đóng.** ⇒ **ĐẠT.**

---

## §7 — Chấm MỒI-NGẦM (gieo @S159 @open) — **ĐẠT**, và đạt bằng đường mạnh nhất

**Mồi:** ý §D *"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"**"* (`_mind-s-8.md:215`, MIND-0 §D, nhãn `mới-nêu`).

**Hợp-đồng đã ghi @S159:** ĐẠT nếu sống ở ≥1 trong {block `_mind` mới · `_end` carry · `WAL next:` · `HANDOFF`} **HOẶC** `STATUS.md` đã sửa. Chấm bằng **grep NỘI-DUNG** (`RAG DOWN` ∧ (`re-index` ∨ `view-stale-status`)), **không dùng neo số dòng** — bài học S158.

**Kết quả đo:**
- `docs/STATUS.md:13` (dòng CURRENT): *"🟢 **RAG service UP** (SE index stale — row RAG chunks đã **TÁCH 2 trục**)"*
- `grep -c -i "RAG DOWN" docs/STATUS.md` = **1**, và hit duy nhất còn lại nằm ở `:491` = dòng state **lưu trữ của S153**, đóng băng theo thiết kế tiering — không phải view sống.

⇒ **ĐẠT.** Mồi không chỉ "được mang tiếp trong một danh sách" — nó được **thi hành tận nguồn**: đúng phép tách 2 trục mà ý đó đề nghị, đúng chữ "TÁCH 2 trục".

📌 Đây là **mồi ĐẦU TIÊN ĐẠT** qua 3 lượt gieo (S154 → S158 **rơi** → S159 **đạt**). Khác biệt đáng học: mồi S158 là ý cần *mang qua cửa nén*; mồi S159 là ý *sửa được trong một lệnh*. Ý rơi không phân bố ngẫu nhiên — **ý nào cần SỐNG SÓT qua thao tác nén thì rơi; ý nào ĐÓNG được thì đóng.** Trùng khớp FLAG-2: lane nén là lane chết.

**Mồi mới gieo cho cửa sau** (lead scribe nguyên dòng này): ý D `:85` **"Trần `_mind` — nén MIND-2"**. Chọn vì nó là *ý sẽ đi qua chính lane không-ai-gác ở lần chạy kế*. Chấm @cửa sau bằng nội-dung: sau khi nén MIND-2, mọi dòng D của MIND-2 (`:161-167`, 7 ý) phải hoặc có **disposition tiến** hoặc có **dòng khai đóng**; thiếu bất kỳ ý nào mà không khai ⇒ TRƯỢT. Cụm grep: `FLAG-4 "Đã duyệt"` · `51-bis` · `Bảng cứng` · `Hộp thư` · `đặt-chỗ diary` · `khuôn 5-đợt` · `Phase 3.5`.

---

## §8 — thách-CLEAN

Máy báo `TRUOT=0`. Tao đã có FLAG nên thách-CLEAN không bắt buộc, nhưng vẫn chạy 3 mũi vào chỗ máy MÙ:

1. **Con-trỏ dạng `WAL:<n>`** — máy phép (4) chỉ resolve **file-path** trong mục E **block-top**. Nó không biết `WAL:49` là con-trỏ, cũng không đếm dòng WAL. → **ăn: 2 neo chết** (FLAG-6).
2. **Con-trỏ trong block KHÔNG-top** — máy chỉ soi block-top. → sạch 4/4 (báo cáo cả khi không ăn).
3. **Nội dung một block so với CHÍNH NÓ trước-sau nén** — máy không có phép nào. → **ăn: chính là FLAG-2/K7.**

Kết: **2/3 mũi ăn.** Máy xanh ở đây có nghĩa hẹp — *cấu-trúc đúng*, không có nghĩa *lớp mềm liền mạch*.

---

## §9 — VERDICT

**`CTX-AUDIT: TRUOT — @close — 7 FLAG`**

| # | Nhãn | Mức | Neo |
|---|---|---|---|
| 0 | `pin-so-may-thoi` | MED | PIN vs `mind-check` đo tươi (`11/0/0` → `10/0/1`) |
| 1 | `bat-bien-2-cong-thuc` | MED | persona §(iv) `{p,p+1}` ⟂ máy phép (6) `p..p+3` |
| 2 | `nen-la-lan-KHONG-ai-gac` | **HIGH** | `_context:125` (8 điểm curator, nén nằm NGOÀI) |
| 3 | `di-tru-nguoc-chieu-C11b` | **HIGH** | `WAL:21` ⟂ `governance-detectors.ps1:1102`+`:1771` |
| 4 | `window-khong-sinh-block` | **HIGH** | mục E phủ **0/13** lượt window-4; máy phép (10) `co` |
| 5 | `muc-B-lech-WAL-next` | LOW | `_mind:73` ⟂ `WAL:23` (dẫn xuất từ #4) |
| 6 | `con-tro-WAL-so-dong-CHET` | MED | `_mind:75` + `:80` trỏ `WAL:49`; WAL có **30** dòng |

**ĐẠT (9):** PIN 4/4 · bất-biến chuỗi cân (5 block / p=3 / tiep=3 / snapshot=3, khớp máy) · block-top nội-dung THẬT · 5 mục A-E đủ · nhãn D đủ · 3 rào sạch (máy 3/3, mắt tao không thấy hở) · con-trỏ giải được 12/12 (7 máy + 4 tay + 1 git) · vết vai-1 3/3 verbatim trong `_context` · **mồi-ngầm ĐẠT**.

**Vì sao TRƯỢT chứ không ĐẠT:** ba cờ HIGH đều đánh vào trục **LIỀN MẠCH** — trục lý do tồn tại của vai này. Một cửa-sổ trọn vẹn (ship prod `bfc7b79` + 13 lượt spawn) đóng lại mà lớp mềm **không ghi một dòng nào**; thao tác duy nhất được phép sửa quá khứ (**nén**) là thao tác duy nhất **không ai gác**; và một việc **đã đóng** bị đẩy ngược vào hàng chờ của anh kèm 2 neo đã thối. Cấu-trúc sạch, mạch thì đứt.

---

## §10 — TRẢ LỜI CÂU HỎI THIẾT KẾ (điểm 5 của brief)

> *window-4 chạy TRỌN VẸN mà KHÔNG có `/pause` ⇒ KHÔNG có MIND-5 ⇒ lớp mềm 0 block mới cho cả một cửa-sổ. **Hợp lệ theo luật** hay **LỖ thiết kế**?*

### 🔴 **LỖ THIẾT KẾ.** Không phải "hợp lệ".

Nói cho gọn: **luật ghi `_mind` neo vào `/pause`, nhưng cửa-sổ không bắt buộc đóng bằng `/pause`.** Khi cửa-sổ vào bằng `/tiep` và ra bằng `/session-end`, nó **không chạm nhịp ghi nào** — 4 nhịp hiện hành là `block-0` (chỉ 1 lần/phiên-logic) · `refresh @/pause` (không xảy ra) · `đọc + đối-chiếu @/tiep` (nhịp **ĐỌC**, không ghi block) · `mục E gom spawn` (không phải nhịp độc lập, nó là *nội dung* của block, cần một block để mà gom). ⇒ **tồn tại một đường đi hợp lệ xuyên trọn cửa-sổ với 0 lần ghi.**

Bốn căn cứ đã dựng ở §4: máy phép (10) tự fire · bất-biến phép (6) đã chừa sẵn chỗ cho "tối đa 2 refresh bookend" (luật **kỳ vọng** bookend đẻ block) · tiền lệ MIND-1 chính là refresh-bookend @open cùng phiên-logic này · thiệt hại đo được **0/13**. Thêm: **tao đã nêu đúng lỗ này @S158 (FLAG-3 HIGH, L7)** — nay **L8 tái phát** ⇒ không phải sơ suất, là khuyết-tật nghi-thức.

### Đề đúng 1 câu sửa luật

> **Nâng nhịp ghi `_mind` từ 4 lên 5: thêm nhịp `refresh @closeout` — `session-end.md §L.b` phải chèn 1 block `_mind` mới SAU khi vòng kiểm cuối trả verdict và TRƯỚC khi ghi `_end` (nén theo luật §19 nếu trần chặn); cửa-sổ nào đóng bằng `/session-end` mà `|block|` không tăng thì `_end` BẮT BUỘC mang dòng khai `mind-refresh: BỎ QUA — <lý do>`, thiếu dòng đó = TRƯỢT closed-check.**

Ba tính chất của câu này: (i) đối xứng với `session-start` Phase 3.5 vốn đã refresh sau vòng đo; (ii) đặt block **sau** vòng kiểm nên mục E phủ được cả chính bookend — vá luôn FLAG-5; (iii) có **lối thoát fail-LOUD** thay vì fail-silent, nên khi trần chặn thật thì nó thành một dòng khai đọc được, không thành khoảng trắng. Vế (iii) là vế quan trọng nhất: không có nó, luật mới sẽ chết đúng kiểu L7 đã chết (trần 92,48% ⇒ bỏ qua ⇒ im lặng).

🔸 **Khai kẽ:** luật này làm **mỗi closeout tốn 1 block**, ép trần `mind_ctx_kb` căng thêm ⇒ đẩy tần suất nén lên ⇒ **tăng tải cho đúng lane FLAG-2 nói là không ai gác**. Vì vậy nó nên đi **kèm** slot (58) chứ không thay thế: hoặc anh nâng khoá, hoặc gắn vòng kiểm cho thao tác nén. Vá một mình luật này mà không đụng lane nén = chuyển lỗ từ chỗ dễ thấy sang chỗ khó thấy.

---

**memoryDelta:** `[s162, kiem-cua-kiem-vai2-3/3-dung, K7-xac-nhan-dung-2-y, nen-la-lane-khong-ai-gac-FLAG2, di-tru-nguoc-chieu-zombie-C11b, window-khong-sinh-block-tai-phat-L7-L8, moi-ngam-DAT-lan-dau, thach-CLEAN-2/3-mui-an]`

<!-- END sub-ctx-audit-close-S162 -->
