# LEAD-GAP @open S189 (L15, window 1) — nấc **DEEP** (`nhip-no-probe`: `deep 1/1 OVERDUE:deep`)

> Vai `lead-gap-auditor` — H24 §2(1) trục **CÁI KHÔNG CÓ**. Propose-only: KHÔNG Write/Edit vào sổ bền, KHÔNG RAG-write. File này = artifact đổ-ruột-liên-tục (chống #53), em-main VERIFY → APPEND (B3).
> Class ∈ enum ĐÓNG `lead_self_audit.flag_classes` (`.claude/agent-memory/memory-budget.json:262-275`, niêm phong P3B @S181, 12 class).
> 🔴 Mọi `gap-*` dưới đây đều có **≥1 lệnh chạm đĩa** + **control-dương** (chống lỗi lead S121 "bảng-kế-hoạch mô-tả Ý-ĐỊNH, không mô-tả TRẠNG-THÁI").

---

## LEAD-GAP: 7 FLAG (deep)

`gap-carry-dropped` 3 · `gap-owner-specifics` 1 · `gap-decision-sunk` 2 · `gap-incident-unrecorded` 1 · `gap-carry-aged` 0 · `gap-underfill` 0

🔴 **KHAI ĐƠN-VỊ TALLY TRƯỚC KHI LEAD CHÉP SỐ (bài D-4 @S159 — `ring2` bắt chính vai này ghi sai đơn-vị, suýt xoá lịch-sử):** ô `class_repeat.counts` đếm theo **audit LIÊN-TIẾP**, KHÔNG phải số FLAG trong một lượt. Lượt này ⇒ `gap-carry-dropped` **16 → 17** (KHÔNG phải +3 = 19) · `gap-decision-sunk` **9 → 10** (KHÔNG phải +2) · `gap-owner-specifics` **0 → 1** · `gap-incident-unrecorded` **0 → 1**. `gap-carry-dropped` = **17 ≈ 5,7× ngưỡng jump 3**.

---

### FLAG-1 · HIGH · `gap-incident-unrecorded`

**Sự-cố ĐÃ XẢY RA:** lead mở S189 dừng ở `BƯỚC 0.7(b)` hỏi consent, **owner phải bắt lỗi** (*"turn trước tao đã đưa ra quyết định thế nào"*) — trong khi lượt ngay trước (S188) owner đã chốt **PN-001 + YC-026 + YC-027**. Đây là **lần thứ 2 liên-tiếp** cùng một lớp lỗi, chỉ cách nhau **một lượt**, và lần này xảy ra **SAU KHI** bản vá của lần 1 đã land.

**Cái đáng có mà thiếu:** một dòng trên **bất-kỳ sổ bền nào** ghi rằng lớp lỗi này **tái phát ở S189**.

**Disk-touch (đo, không suy) — `S189` trên 7 sổ bền, control-dương `S188` cùng lệnh cùng file:**

| sổ bền | `S189` | `S188` (control-dương) |
|---|---|---|
| `docs/governance/so-yeu-cau-chu-du-an.md` | **0** | 9 |
| `docs/governance/error-ledger.md` | **0** | 4 |
| `docs/HANDOFF.md` | **0** | 17 |
| `docs/STATUS.md` | **0** | 7 |
| `.claude/WAL.md` | **0** | 4 |
| `.claude/governance/ACTIVE-MARKS.md` | **0** | 0 |
| `docs/changelog/migration-todos.md` | **0** | 0 |

⇒ **0 hit / 7 sổ**, control-dương chứng lệnh grep KHÔNG hỏng (S188 hiện 9/4/17/7/4). Vết duy nhất = `runs/2026-08-10-S189-bookstart-open/run.md:8-10` — **đúng tiền-đề** của class (*"sự-cố có vết ở run-folder mà 0 hit trên các sổ này"*), không phải phản-chứng.

**Bề-mặt vẫn đang quảng-cáo trạng-thái tốt của kỳ TRƯỚC** (dấu-hiệu bắt buộc của class): `error-ledger.md:243` RCA `ONESHOT-S188` §Guard(a) ghi
> *"YC-027 2-site (đã land @S188 — chữ, sẽ được **ring5 chấm mỗi phiên** qua bảng-nhãn = cổng người-máy)"*
— nấc tự khai `fix-② executed`. Đọc hôm nay thì lớp này **đã có cổng**; thực tế S189 chứng ngược.

**🔴 Truy được CƠ-CHẾ, không chỉ triệu-chứng — cổng đó KHÔNG tồn tại ở cửa @open:**

```
grep -oi 'ring5' .claude/commands/session-start.md | wc -l   ->  0
grep -oi 'ring5' .claude/commands/session-end.md   | wc -l   ->  6
```
control-dương: `bảng-nhãn` CÓ 1 hit ở `session-start.md` (khái-niệm được nhắc) nhưng **vai chấm nó = 0** ⇒ không phải "grep sai chữ".

⇒ Chữ *"mỗi phiên"* trong RCA phủ **1/2 cửa**. Vi-phạm S189 rơi đúng **nửa KHÔNG có cổng**. Sót ở @open là **tất-yếu CẤU-TRÚC**, không phải đãng-trí — cùng hình-dạng ca S172 FLAG-6 (cổng ép-seed chỉ có ở `/session-end`, `/pause.md` 0/5 token).

**Đối-chiếu 5-why của chính RCA:** vế (3) đã tự đặt tên lớp — *"luật … là CHỮ trong context, không phải cổng máy ⇒ lớp bài-học-trong-context-không-tự-bật"*. S189 = **ca chứng-minh vế (3) vẫn nguyên**, và chính ca đó không được ghi.

🔴 **Ranh (tự chặn dùng nhầm class):** KHÔNG phải `view-*` (không có số cũ nào ở đây) · KHÔNG phải `gap-carry-dropped` (không có slug carry nào rớt) — đúng phạm-vi `gap-incident-unrecorded` như `_note` @S143 định-nghĩa.

**resolve:** có ≥1 dòng trên sổ bền (đề-xuất: `error-ledger` mở RCA nối `ONESHOT-S189` hoặc thêm mục *"Lần thứ 2"* vào RCA `ONESHOT-S188` — đúng khuôn RCA `C1-S181:257` đã có sẵn mục *"Lần thứ 2"*) **+** nấc của guard-(a) hạ từ `executed` xuống đúng sự thật (phủ 1/2 cửa).

---

### FLAG-2 · HIGH · `gap-carry-dropped`

**Hứa ở:** `.claude/WAL.md:14-15` — khối `[ ] NEXT-em khi có lượt`, nguyên văn:
> `[carry:reset-doi-het]` *sửa h24-signal-write (reset đòi ==HẾT== + honest-zero per-class)*

**Hiện:** **VẮNG** khỏi mọi sổ bền ngoài WAL — và WAL là file `§6.4` **xoá trắng ở bước CUỐI** mỗi closeout.

**Disk-touch — `reset-doi-het` trên 7 bề mặt:**

```
.claude/WAL.md                            = 1
docs/HANDOFF.md                           = 0
docs/STATUS.md                            = 0
docs/governance/error-ledger.md           = 0
docs/changelog/migration-todos.md         = 0
docs/governance/so-yeu-cau-chu-du-an.md   = 0
.claude/governance/ACTIVE-MARKS.md        = 0
```

**Loại được bào-chữa "bỏ cả khối vì gấp" bằng ĐỐI-CHỨNG NỘI-PHIÊN** — `[carry:sentinel-truoc-bu]` **sinh cùng WAL, cùng phiên S188**, lại được chép tay sang:
```
sentinel-truoc-bu:  WAL=1 · HANDOFF=2 · error-ledger=1
```
⇒ lead **CÓ với tay** đưa 3/4 slug WAL-sinh sang HANDOFF (`w7b-inbox-param`, `fe-contract-family-drift`, `sentinel-truoc-bu` — `HANDOFF:6`) và **bỏ đúng 1** ⇒ bỏ **CÓ CHỌN LỌC**, không phải bỏ trọn khối.

**Đã tự bác giả-thuyết "đổi TÊN chứ không rơi"** (bài đau S182 — 0-hit-theo-TÊN ≠ đã-rơi): tra 3 cụm nội-dung của chính món nợ, kết quả **chỉ WAL**:
```
"honest-zero per-class"  -> .claude/WAL.md          (duy nhất)
"==HẾT=="                -> .claude/WAL.md          (duy nhất)
"reset đòi"              -> .claude/WAL.md          (duy nhất)
```
3 hit `h24-signal-write` ở HANDOFF + 1 ở STATUS đều là **việc KHÁC** (B10 fail-loud `|counts| ≠ |flag_classes|` @S151 · `9-FIRE + frozen-held`) — không phải món reset này.

**🔴 Vì sao đây là lỗi CẤU-TRÚC chứ không phải đãng-trí — nghi-thức chống-rơi mới dựng @S188 KHÔNG THỂ bắt được nó:** `HANDOFF:16` tự khai cơ-chế re-stamp mới =
> *"grep `[carry:*]` **toàn file** − slug có dấu ✅ĐÓNG ⇒ 47 slug mở"*

Miền quét = **`docs/HANDOFF.md`**. Slug sinh-trong-WAL mà chưa ai chép sang HANDOFF thì **vĩnh viễn ngoài miền** ⇒ không lượt re-stamp nào nhặt được, và `§6.4` reset WAL sẽ xoá bản gốc. Đây **đúng cái `HANDOFF:6` tự viết ra** (*"slug sinh-trong-WAL vô hình có cấu-trúc"*) — lượt vá đã nhận diện đúng bệnh, rồi **rơi thêm 1 ca ngay trong chính lượt vá**.

**im:** 1 phiên (sinh @S188, chưa qua closeout nào) — nhưng cửa tử là **closeout kế**, không phải "N phiên nữa".

**resolve:** `[carry:reset-doi-het]` xuất hiện ≥1 lần trong `docs/HANDOFF.md` (khối RE-STAMP hoặc CARRY-MỚI) **TRƯỚC** khi `§6.4` chạy; hoặc món nợ được đóng có evidence.

---

### FLAG-3 · MED-HIGH · `gap-carry-dropped`

**Hứa ở:** `docs/governance/so-yeu-cau-chu-du-an.md:57`, cột con-trỏ + cột đội-hiểu của `YC-027`, nguyên văn:
> *"…Khắc vào `session-end.md` + `session-start.md` khối ONE-SHOT (trỏ YC-027/PN-001) ngay @S188; **stamp User-Mark theo P4 report-before-stamp ở nhịp tới**"*

Cột con-trỏ của chính dòng đó ghi đích danh: **`2 file lệnh + ACTIVE-MARKS (stamp chờ P4)`**.

**Hiện:** **VẮNG.** Bookstart S189 **CHÍNH LÀ "nhịp tới"** (nhịp đầu tiên sau S188), và:

```
grep -c "^| \`RC-" .claude/governance/ACTIVE-MARKS.md          -> 12   (control-dương: bảng KHÔNG rỗng)
grep -o "YC-027" .claude/governance/ACTIVE-MARKS.md | wc -l    -> 0
grep -o "PN-001" .claude/governance/ACTIVE-MARKS.md | wc -l    -> 0
mark mới nhất theo ngày                                        -> RC-pqhuy1987-07-08-2026-21-42-10  (2026-08-07)
```
⇒ 12 mark tồn tại, mark mới nhất là **2026-08-07**; sự-kiện 2026-08-10 (YC-027/PN-001) **không có mark nào**.

**Và việc này KHÔNG có nhà trong work-state** (đây mới là phần "rớt", không chỉ "chưa làm"):
- `.claude/WAL.md:14-16` khối `[ ] NEXT-em`: liệt `sentinel-truoc-bu` · `reset-doi-het` · `w7b-inbox-param` · *"7 mục NEXT-em @S188 trong HANDOFF"* — **0 hit** stamp.
- `docs/HANDOFF.md:8-14` = **7 mục NEXT-em @S188** (đếm thật: 1 harvest-curator · 2 reviewer · 3 ring1-audit · 4 measured · 5 E4 · 6 N1-N4 · 7 trục bookend chưa soi) — **0 hit** stamp.

⇒ một cam-kết có **deadline tường-minh** (*"ở nhịp tới"*) + **địa-chỉ tường-minh** (`ACTIVE-MARKS`) mà **không nằm trong bất-kỳ khối việc nào** ⇒ đúng vế *"việc rớt khỏi khối work-state so với backlog"* của class.

🔴 **Ranh — KHÔNG lấn:** không tuyên "P4 chưa chạy" (đó là trạng-thái quy-trình, không phải cái tôi đo). Tôi chỉ đo: **cam-kết có nhà chưa** ⇒ chưa.

**im:** 1 nhịp (từ S188 closeout tới bookstart S189) — nhưng là **nhịp duy nhất** mà lời hứa tự đặt hạn.

**resolve:** hoặc mark được stamp, hoặc cam-kết được ghi thành mục có chủ trong `WAL` `[ ]` / `HANDOFF` NEXT-em kèm hạn mới (đổi hạn phải có vết — đừng để "ở nhịp tới" trôi im lặng).

---

### FLAG-4 · HIGH · `gap-owner-specifics`

**Chữ CỦA OWNER (verbatim, `so-yeu-cau-chu-du-an.md:57`):**
> *"cái này sẽ là rules nhé, **các cái command** phải đc thực hiện trọn vẹn tao ko chấp nhận **bất cứ 1 lý do nào**"*

**Discriminator nằm ở LƯỢNG TỪ:** *"các cái command"* = **số nhiều, toàn bộ**. Không phải "hai đầu phiên".

**Chính lead cũng đọc ĐÚNG như thế** — cột "đội hiểu thành gì" cùng dòng `:57` liệt đích danh:
> *"mọi command/nghi-thức (**bookstart · bookend · `/tiep` · mọi lệnh anh gõ**) phải chạy TRỌN VẸN 100% các bước"*

**Cái đáng có mà thiếu:** luật đó ở **`/tiep`** và **`/pause`** — hai cửa mà chính lead vừa kể tên.

**Disk-touch (4 file lệnh × 4 token):**

| token | `session-start.md` | `session-end.md` | `tiep.md` | `pause.md` |
|---|---|---|---|---|
| `YC-027` | 1 | 1 | **0** | **0** |
| `PN-001` | 1 | 1 | **0** | **0** |
| `TRỌN VẸN` | 1 | 1 | **0** | **0** |
| `ONE-SHOT` | 2 | 2 | **0** | **0** |
| `YC-026` | **0** | **0** | **0** | **0** |

control-dương: 4 token ĐỀU hiện ở 2 file đầu ⇒ grep không hỏng, tên file không sai.

**🔴 Lead TỰ THU-HẸP mà không khai là thu-hẹp** — 3 bề mặt đều ghi phẳng *"2 site"* như thể trọn vẹn, **0 chỗ** nói "còn 2 cửa chưa phủ":
1. `error-ledger.md:241` §Fix ② — *"RULE YC-027 khắc vào **2 file lệnh**"*
2. `.claude/WAL.md:10` — *"RULE YC-027 khắc **2 site**"*
3. commit `ef1d4fbb` subject — *"RULE YC-027 khắc **2 site**"*

Đây **đúng hình-dạng ca S179 FLAG-4** (owner viết *"áp CẢ các trang GĐ khác"*, lead tự thu-hẹp 3/4 trang, không lên bề mặt nào) và ca `YC-012` mà chính sổ `:45` ghi làm bài học: *"@S179 lead **tự thu-hẹp** chữ 'OK' … lần này không tự thu-hẹp"*. Lượt này **thu-hẹp lại**, chỉ đổi trục: từ thu-hẹp *sức mạnh* sang thu-hẹp *phạm vi*.

**Vì sao KHÔNG phải chuyện chữ nghĩa — nó có hệ-quả đo được:** `YC-018` (`:60`) và `session-start.md:12` đều nói đứt-bất-khả-kháng ⇒ **`/tiep` phải chạy hết phần nghi-thức còn thiếu**. Tức `/tiep` là **cửa gánh nợ ONE-SHOT**, mà nó là **cửa duy nhất 0/4 token**. Cửa được giao gánh nợ lại là cửa không biết mình bị giao.

**Kèm — `YC-026` nặng hơn:** *"ko đóng phiên với bất cứ lý do nào"* có **0 hit / 4 file lệnh** VÀ 0 hit trên `HANDOFF`/`STATUS`/`error-ledger`/`ACTIVE-MARKS`/`migration-todos`; chỉ sống ở **sổ YC** + **`.claude/WAL.md` (1 hit)** — mà WAL là file `§6.4` xoá trắng. Con-trỏ của chính dòng `YC-026` ghi `WAL (mạch sống)` ⇒ khi WAL reset, dòng owner-request **đang MỞ** này mất neo thi-hành.

**resolve:** hoặc luật xuất hiện ở `tiep.md` + `pause.md` (dù chỉ 1 dòng TRỎ — B1), hoặc 3 bề mặt trên được sửa thành *"2/4 cửa — `/tiep`,`/pause` CỐ Ý chưa phủ vì <lý do>"*. Thu-hẹp **có khai** thì hết flag; thu-hẹp **im lặng** thì không.

---

### FLAG-5 · MED-HIGH · `gap-carry-dropped`

**Nguồn cam-kết:** `memory-budget.json` `tiers.l1_hot.rule` —
> *"keep MEMORY.md < autoinject_cap so the WHOLE hot file injects; over soft_cap => curate L1->L2"*

`autoinject_cap_bytes` = **25.600**. Và `HANDOFF:8-13` chứng lead ĐANG coi over-cap là việc phải xử (E1/E2/E4 đều là món này).

**Cái đáng có mà thiếu:** `ring2-audit` — vai over-cap thứ hai — **không có tên trong bất-kỳ khối việc nào**.

**Disk-touch, quét TOÀN roster `.claude/agent-memory/*/MEMORY.md`, lọc `> 25.600`:**

```
lead-gap-auditor   L1=27.639   _INDEX=1   gist=1
ring2-audit        L1=26.652   _INDEX=0   gist=0
```
đúng **2 vai** — khớp `nhip-no-probe` in *"trần bộ-nhớ 2 over-cap"* (máy và tôi cùng số, không phải tôi tự đếm).

**Nhưng work-state chỉ nhận 1, và nhận nhầm vai:** `HANDOFF:12` mục 5 (E4) nêu **2 vai** = *"`tooling-auditor` @S185 · `lead-gap-auditor` 14.798 → 27.639"*.
- `lead-gap-auditor` ✓ có nhà.
- `tooling-auditor` đo hôm nay = **16.912** ⇒ **đã dưới cap**, không còn là việc.
- `ring2-audit` = **26.652, over-cap** ⇒ **0 nhà**.

⇒ khối việc đang **gọi tên một vai đã khỏi** và **bỏ sót vai đang bệnh**. Rà tiếp 6 mục NEXT-em còn lại: `ring2-audit` chỉ hiện **2 lần** ở `HANDOFF:7-14`, cả hai **KHÁC trục** — mục 6 nói `.archive-strikes.json` *"vênh `ring2` 1↔2"* (file strikes, không phải L1) · mục 7 nói *"`ring2-audit` … **chưa chạy**"* (vai chưa chạy, không phải bộ nhớ). **0/7 mục** nói tới L1 của nó.

**🔴 Ca này NẶNG HƠN E1/E2 chứ không nhẹ hơn** — và đó là lý do nó không được nhẹ tay:
- E1 `harvest-curator` / E2 `reviewer` khi bị cắt vẫn còn **đường L2** để lấy lại (`archive/` + `_INDEX` + gist).
- `ring2-audit` có `archive/2026-08.md` (8.771 B) nhưng **`_INDEX` = 0** và **`.gist.md` = 0** ⇒ theo `tiers.l2_index` (*"inject the map, not the territory"*) thì **không có bản đồ** ⇒ phần bị cắt khỏi L1 **không có đường quay lại**. Đối-chứng cùng lệnh: `lead-gap-auditor` over-cap nhưng `_INDEX=1 gist=1`.

**Loại bào-chữa "chưa ai đo nên chưa biết":** `measure`-machine ĐÃ chạy trong lượt S188 (`measured._note` = *"S188 2026-08-10 FRESH re-sync bằng MÁY"*), và `nhip-no-probe` in *"2 over-cap"* **ngay lượt này** trước khi tôi được spawn. Số đã có; cái thiếu là **người nhận**.

**im:** ≥1 nhịp bookend (số đã hiện ở probe S189 mà khối việc S188 không có mục).

**resolve:** `ring2-audit` có mục trong `HANDOFF` NEXT-em / `WAL` `[ ]` (kèm cả 2 vế: hạ L1 xuống dưới 25.600 **và** dựng `_INDEX` + gist), **hoặc** `tooling-auditor` @S185 được gỡ khỏi E4 kèm số chứng đã khỏi. 🔴 Trình tự bắt buộc theo `HANDOFF:8` (`reviewer:96`): **append archive TRƯỚC → probe moved-not-cut bằng token lấy từ THÂN BÀI + control-âm → mới cắt.**

---

### FLAG-6 · MED-HIGH · `gap-decision-sunk`

**Quyết-định đang treo:** `so-yeu-cau-chu-du-an.md:70` — `ST-001`, trạng thái **`mở (chờ anh)`**, mở từ **2026-08-07**. Nội dung = **danh sách 7 LOẠI lằn-ranh đỏ** (việc luôn phải dừng hỏi owner). `:75` tự khai nấc: *"7 loại trên **chưa phải lời anh** … chờ anh xác nhận hoặc sửa"*.

**Hiện:** **VẮNG** khỏi mọi bề mặt ngoài chính dòng của nó.

```
ST-001 :  so-yeu-cau=2 | HANDOFF=0 | WAL=0 | STATUS=0 | error-ledger=0 | ACTIVE-MARKS=0
```

**🔴 Đòn BẤT-ĐỐI-XỨNG loại được bào-chữa "cả khối chưa tới lượt"** — `ST-002` là dòng **kế bên, cùng bảng, cùng ngày 2026-08-07**, và nó **CÓ** nhà thi hành:
```
ST-002 :  so-yeu-cau=3 | ACTIVE-MARKS=5   (đã kiểm ngữ cảnh, KHÔNG phải dương-giả:
          "…ritual-labels.md §6 khoản (vi) + `ST-002` của sổ W4 — 2 nơi sau TRỎ, cấm chép"
          "ĐÂY LÀ NGUỒN DUY-NHẤT của luật 3 bậc. Mọi nơi khác (`ST-002` …) TRỎ về đây")
```
⇒ hai dòng sinh đôi: một dòng được kéo vào `ACTIVE-MARKS` và chống nguồn-đôi cẩn thận, dòng kia **0 hit 5 bề mặt**. Không phải "bỏ cả khối", là **bỏ một dòng**.

**im:** **8 nhãn phiên** (S181 → S189), 4 ngày lịch.

**🔴 Vì sao món này KHÔNG phải nợ trang-trí — nó chính là dụng-cụ đáng-lẽ đã xử FLAG-1:** câu hỏi vận-hành ở `BƯỚC 0.7(b)` là *"ca này có thuộc loại phải dừng hỏi anh không?"*. `ST-001` **là bảng trả lời câu đó**, và trong 7 loại **không có** loại "xin phép tiếp tục nghi-thức". Nếu `ST-001` đã ratify + có nhà, lead có **luật SOI-ĐƯỢC** để tự quyết; nó chưa ratify nên lead rơi về câu cứng *"CHỜ anh chọn"* của `session-start.md:83`. ⇒ quyết-định chìm **có giá đo được ngay trong phiên này**.
*(Khai đúng nấc: đây là quan-hệ dụng-cụ–ca-dùng, tôi KHÔNG tuyên `ST-001` chìm là NGUYÊN-NHÂN duy nhất của FLAG-1.)*

**resolve:** `ST-001` được owner ratify/sửa, **hoặc** được surface lại ở ≥1 bề mặt chờ-anh (slot số ở `HANDOFF`) để nó không tiếp tục chìm trong sổ.

---

### FLAG-7 · MED · `gap-decision-sunk`

**Quyết-định đang treo:** slot **(89)** `HANDOFF:19` + `WAL:12` — owner phải chọn **(a)** kéo audit-sớm / **(b)** đổi ngưỡng / **(c)** giữ nguyên, cho các class H24 ở/vượt `jump_on_class_repeat` = 3.

**Cái đáng có mà thiếu:** **2 class LỚN NHẤT không có mặt trong câu hỏi đặt cho owner.**

**Đo trực tiếp trên sổ đếm** (đã xác nhận bề-mặt-đo ĐỨNG YÊN: `git diff .claude/governance/.session-counter.json` phiên này chỉ đổi `counter 62→63` + 1 `history[]` entry, **khối `counts` 0 dòng thay đổi** — bài `C1-S181`):

| class | counts hiện tại | có trong slot (89)? |
|---|---|---|
| `gap-carry-dropped` | **16** | ❌ **KHÔNG** |
| `view-stale-count` | **14** | ❌ **KHÔNG** |
| `view-residual-asym` | 13 | ✅ |
| `view-stale-status` | 10 | ✅ |
| `gap-decision-sunk` | 9 | ✅ |
| `view-stale-header` | 8 | ✅ |

⇒ **6 class ≥ 3**, slot (89) trình **4**, và 2 cái vắng là **hạng 1 và hạng 2**.

**Cơ-chế (không phải xui):** `history[]` entry `S188-restore` liệt đúng 8 class hoàn từ git `5a77f4f1` và ghi rõ *"**GIU 2 class fired S188 (view-stale-count, gap-carry-dropped)**"*. Trong 8 class hoàn ấy có đúng **4 class ≥3** — **trùng khít** 4 class của slot (89). ⇒ câu hỏi cho owner được dựng từ **danh-sách RESTORE**, không dựng từ **file counts**. Hai class *được GIỮ* (tức chưa từng bị xoá) rơi ra ngoài tầm nhìn **đúng vì chúng không cần cứu**.

**Hệ-quả:** owner sẽ phán a/b/c cho 4 class và **không bao giờ được hỏi** về `gap-carry-dropped`=16 (**5,3× ngưỡng**) — class có tally cao nhất hệ thống.

🔴 **Ranh — KHÔNG lấn `lead-stale-auditor`:** con số *"4 class"* SAI so với đĩa là **cái CÓ nhưng LỆCH** ⇒ **turf của vai kia, tôi không chấm**. Tôi chỉ chấm **cặp VẮNG trong tập quyết-định**.

**im:** từ S188 closeout tới nay (1 nhịp) — nhưng `gap-carry-dropped` đã ở/vượt ngưỡng **từ S150** (`[carry:jump-dai-frozen]`, slot (21)) mà chưa lần nào vào câu hỏi có số.

**resolve:** slot (89) liệt **đủ tập class ≥ ngưỡng dựng TỪ `counts`** (không dựng từ danh-sách restore), hoặc khai rõ *"2 class này cố ý để riêng vì …"*.

---

## MỤC RIÊNG — ca `BƯỚC 0.7(b)`: class nào, và còn ca CÙNG LỚP nào đang sống

**Ca:** lead mở S189 → chạy `BƯỚC 0.7`, WAL có `[ ]` ⇒ rơi nhánh **(b)** ⇒ *"…rồi **CHỜ anh chọn**"* (`session-start.md:83`, nhánh này tự dán nhãn **"NGOẠI-LỆ CHỜ DUY-NHẤT"** của quy-trình no-wait) — trong khi lượt trước owner đã chốt PN-001 + YC-026 + YC-027. Owner phải bắt lỗi.

**Xếp class — 2 mặt KHÁC NHAU của cùng một ca, KHÔNG gộp:**

| mặt | class | vì sao |
|---|---|---|
| **sự-kiện** đã xảy ra mà 0 sổ bền ghi | **`gap-incident-unrecorded`** (FLAG-1) | tái phát lần 2 sau khi bản vá land; 0/7 sổ; RCA vẫn đọc như đã đóng |
| **phạm-vi luật owner** bị thu hẹp khi thi hành | **`gap-owner-specifics`** (FLAG-4) | *"các cái command"* → land 2/4 cửa; `/tiep` (cửa gánh nợ ONE-SHOT) = 0 token |

🔴 **CẤM đọc thành 3 FLAG.** Một sự-kiện, hai nghĩa-vụ khác nhau (ghi sổ ⟂ phủ luật). Tôi **KHÔNG** mở FLAG thứ ba cho chính hành-vi dừng — hành-vi đó owner đã xử tại chỗ; việc của tôi là cái **không được ghi** và cái **không được phủ**.

**🔴 Còn 4 ca CÙNG LỚP đang SỐNG** (lớp = *"luật/quyết-định đã có bằng CHỮ mà cửa thi hành không có máy soi"* — chính `error-ledger.md:239` 5-why(3) đặt tên: *"bài-học-trong-context-không-tự-bật"*):

1. **`ring5-audit` 0/1 cửa @open** — `session-start.md`=0 · `session-end.md`=6, trong khi RCA `ONESHOT-S188` tuyên teeth = *"ring5 chấm **mỗi phiên**"*. (chứng đầy đủ ở FLAG-1)
2. **`jump_on_class_repeat` KHÔNG có máy đọc** — đo: `grep -rn jump_on_class_repeat scripts/` ra **2 hit, cả 2 nằm trong CHUỖI VĂN-BẢN sửa-lỗi** (`governance-detectors.ps1:932` *'create memory-budget.json carrying h24_cadence {…}'* · `:947` *'W2: add h24_cadence {…}'*) — **0 lần đọc giá trị**. Control-dương cùng lệnh: `light_every` được đọc THẬT bởi **2** script (`governance-detectors.ps1`, `nhip-no-probe.ps1`). Khớp lời tự khai của `memory-budget.json` `_sealed_P3B_S181`: *"nguong jump_on_class_repeat KHONG co may nao doc … lop loi moi day sang error-ledger CUNG khong co rang JUMP"*. ⇒ 6 class ≥ ngưỡng mà **0 cơ-chế tự bắn**.
3. **`C1-S181` guard-(b)** — `error-ledger.md:255` tự khai: *"🔴 **CHƯA LÀM, ghi thành nợ:** cần một máy chặn/cảnh báo khi bề-mặt-đo bị chạm giữa cửa-sổ đo. Không có nó thì lần sau lại phụ thuộc trí nhớ."* Vẫn nguyên trạng.
4. **`ST-001` chưa ratify** — bảng 7 lằn-ranh đỏ = **dụng cụ trả lời đúng câu hỏi của `0.7(b)`**, treo 8 nhãn phiên, 0 hit ngoài sổ. (FLAG-6)

> 🔸 Nhận xét khai thẳng, không nống: 4 ca trên **cùng một gốc** — SE vá bằng **CHỮ** rất nhanh và vá bằng **CỔNG** rất chậm. Đó là quan sát trên 4 mẫu, không phải định lý.

---

## ĐÃ SOI MÀ SẠCH — 🔴 phân biệt trục **ĐẠT** với trục **CHẾT NON**

### A. Trục ĐẠT (đo được, kết quả thật là sạch)

| trục | phép đo | kết quả |
|---|---|---|
| **`gap-carry-aged` = 0** | **ĐỌC** output máy `H24-2` (KHÔNG tự tính lại — luật persona) | máy CHẠY THẬT lượt này: `logic-segments = 26 · carry-lines = 19`, `L7-bolt [ok] gap 0<=1`, streak cao nhất = **4** (`adap-apply-2-thu`), kế: `ctx-t9-dogfood` 3 · `hmw-*` 2 · `ring5-audit-gap` 2 — **0 slug chạm M=6**. ⇒ **honest-zero THẬT**, khác hẳn S185 (*"KHÔNG ĐO ĐƯỢC"*) và S180/S182 (*"số 0 CHẾ TẠO"* do vùng câm). Vùng câm pre-marker vá @S185 còn sống — thấy được vì máy đọc tới cả segment đỉnh chứa `w7b-inbox-param`/`sentinel-truoc-bu`. |
| **9 slot chờ-anh đều có nhà** | grep từng slot × 4 sổ | `(22)`5 `(67)`2 `(72)`2 `(74)`2 `(76)`3 `(77)`1 `(78)`1 `(79)`1 `(89)`2 trên `HANDOFF` — **0 slot nào 0-hit**. ⇒ **TỰ BÁC** giả-thuyết "slot thủng HANDOFF" mà tôi từng bắt thật @S166 (khi đó `(60)(61)` 0-hit). |
| **`YC-002` KHÔNG còn chìm** | grep + đọc ngữ cảnh | @S186 tôi đo nó *"0 hit trên cả 9 bề mặt bền"*; nay `HANDOFF` có **1** hit, và là hit ĐÚNG VIỆC: slot **(79)** trình owner *"lật sang đóng?"* kèm chính số đo của tôi. ⇒ **FLAG cũ của tôi RESOLVED**, ghi nhận. |
| **6 carry của `_end` L14 đều có mặt** | đối chiếu `_end:3` ↔ `HANDOFF` | `w7b-inbox-param` + `fe-contract-family-drift` có **slug**; `harvest-curator-L1-bi-cat`/`reviewer-nen-stub`/`measured-resync`/`tai-phinh-sau-archive` **không có slug** nhưng **CÓ mặt bằng văn xuôi** ở `HANDOFF:8/9/11/12` (mục 1/2/4/5). ⇒ **KHÔNG flag** — vắng-slug ≠ bỏ rơi. *(Ghi INFORM-2 dưới.)* |
| **PN-001 thi hành THẬT** | chạm đĩa, không đọc bảng | PN-001 đòi *"3 vai + E1 + E2 + E3"*. Đo: `harvest-curator` **30.231 → 21.308** · `reviewer` **~31.341 → 24.473** · `ring1-audit` 20.924 · `measured._note` = *"S188 … FRESH re-sync bằng MÁY"*; `git show --stat ef1d4fbb` có đủ `harvest-curator/MEMORY.md` + `archive/2026-07.md` + `reviewer/…` + `ring1-audit/…`. ⇒ **TỰ BÁC** nghi-vấn "WAL `[x]` khai khống". Việc ĐÃ làm thật. |

### B. Trục CHẾT NON (KHÔNG kết luận được — cấm đọc thành sạch)

| trục | vì sao chết non |
|---|---|
| **`gap-underfill` = 0 → phải đọc là "KHÔNG ĐO ĐƯỢC"** | Thước duy nhất cho trục này ở cửa @open là **`§2.1.6` hot-feed %-print** (`session-start.md:229`, `token_governor.pct_print.session_start`). Nó in ra **màn hình, KHÔNG đổ artifact** ⇒ tôi **không có bề mặt đĩa** để đo lead đã nạp bao nhiêu / bucket nào mỏng. Đo hộ được **mẫu số** thôi: floor 6 nguồn `crystallized_backfill.hotload_sources` = **772.334 B ≈ [193K..234K] tok** so `lead_tokens` 380.000 ⇒ về lý còn chỗ, nhưng *"còn chỗ"* ≠ *"nạp thiếu"*. 🔴 **Tôi TỪ CHỐI báo 0** — báo 0 ở đây là để nó bị đọc thành lành. Món này chỉ đo được nếu `§2.1.6` ghi 1 dòng % xuống `run.md`. |
| **`gap-incident-unrecorded` ngoài ca FLAG-1** | Tôi chỉ soi được sự-cố có vết trên đĩa (run-folder/commit). Sự-cố chỉ tồn tại trong transcript phiên đang chạy thì tôi **mù** — trừ ca FLAG-1 vì nó được `run.md:8-10` ghi lại. **Cận-dưới, không phải cận-trên.** |
| **Đủ/thiếu của "47 slug mở"** | `HANDOFF:16` tự khai *"cận-trên"* và *"disposition per-slug = việc bookend kế"*. Tôi **KHÔNG** chấm 47 slug này đúng/sai — chưa ai làm disposition thì chưa có chuẩn để so. Cấm đọc "47" thành "47 việc thật". |

---

## INFORM (không phải FLAG — owner/lead tự quyết)

- **INFORM-1 — 17 dòng sổ-YC có con-trỏ CHẾT (trỏ `WAL`).** Đo: cột con-trỏ ⇒ **17** dòng chứa `WAL`. `session-end.md:114` tự tuyên về đúng lớp này: *"WAL là sổ ghi-đè ≤40 dòng … soi một cái sổ tạm đang co lại, để tìm dấu vốn được thiết-kế để xoá đi ⇒ **KHÔNG THỂ đúng**"* + *"WAL = sổ tạm cho `/tiep`; session-log = sổ cái cho hậu-kiểm"*. @S185 đã vá **2 dòng** (`YC-002`, `YC-011`, ghi chú *"con-trỏ cũ 'WAL…' chết theo reset — gap-F2"*), nhưng **6 dòng SINH SAU bản vá** (`YC-018`/`019`/`020`/`021`/`025`/`026`) **tái tạo đúng lỗi đó**. 🔴 **Tôi KHÔNG xếp class** — nó không sạch vào ô nào của enum ĐÓNG (con-trỏ **CÓ** mà trỏ vào hư-vô: không phải `gap-*` "không có", cũng không đúng `view-stale-*` vì nó **sinh ra đã sai**, không phải đúng-rồi-cũ-đi). Theo luật enum ĐÓNG tôi **báo nguyên-văn + đề-nghị anh xét mở rộng**, **KHÔNG bịa class** (tiền lệ đúng-cửa: `gap-incident-unrecorded` @S143, `view-claim-broader-than-sample` @S172).
- **INFORM-2 — 4/6 carry của `_end` L14 không có slug `[carry:*]`.** Việc **có mặt** (nên không FLAG), nhưng nằm **ngoài miền** của cả 2 cơ-chế bền: (a) re-stamp `dựng-từ-nguồn` chỉ grep `[carry:*]`, (b) `H24-2` chỉ đo slug. ⇒ khi segment `HANDOFF` xoay vòng, 4 món này **không có gì đỡ**. Rẻ: cấp slug cho chúng.
- **INFORM-3 — `WAL:13` liệt `(67)` vào *"tồn"* trong khi `so-yeu-cau:49` ghi **"Slot (67) ĐÓNG"**. Hai sổ nói ngược. 🔴 **Turf `lead-stale-auditor`** (cái CÓ nhưng LỆCH) — tôi **nhường**, chỉ ghi để nó không rơi vào khe giữa 2 vai (bài S163: nhường turf mà 0 vai nhặt).

---

## TỰ-KIỂM (chống lỗi của chính vai này)

1. ✅ **Mọi `gap-*` đều có ≥1 lệnh chạm đĩa** — không FLAG nào suy từ bảng/spec (chống lỗi lead S121: *"bảng-kế-hoạch mô-tả Ý-ĐỊNH, KHÔNG mô-tả TRẠNG-THÁI"*). FLAG-5 và mục "PN-001 thi hành THẬT" đều là ca **đo đĩa lật ngược bảng**.
2. ✅ **Mọi 0-hit đều kèm control-dương** (FLAG-1 `S188` 9/4/17/7/4 · FLAG-2 `sentinel-truoc-bu` 1/2/1 · FLAG-3 12 mark rows · FLAG-4 4 token × 2 file · FLAG-6 `ST-002` 5 hit · ca-2 `light_every` 2 reader).
3. ✅ **Tránh bẫy trích RỖNG** — lượt đầu tra `YC-002` bằng `.{200}…{300}` ra **rỗng** (mega-line không đủ ký tự trước/sau) ⇒ suýt đọc thành *"0 hit"*; chạy lại bằng `.{0,180}…{0,320}` ra hit thật. **Số 0 đầu tiên là do THƯỚC, không do đĩa.**
4. ✅ **Bề-mặt-đo đóng băng có kiểm** (`C1-S181`): `git diff` sổ đếm ⇒ khối `counts` **0 dòng đổi** trong lúc tôi đo.
5. ✅ **Không lấn lane**: 2 phát hiện thuộc `lead-stale-auditor` (số *"4 class"* ở slot (89); `(67)` tồn/đóng) — khai mà **không chấm**.
6. ✅ **Không bịa class**: INFORM-1 từ chối ép vào enum.
7. ✅ **Không nể lead**: FLAG-2 và FLAG-4 đều bắt **chính lượt vá** đẻ lỗi cùng lớp với thứ nó vừa vá.

**Propose-only** — vai này KHÔNG Write/Edit sổ bền, KHÔNG `store_memory`/RAG-write. Em-main VERIFY → APPEND (B3).

**TOTAL: 7**

== HẾT ==
