# sub-lead-gap-close-S162 — H24 vai-GAP @close L8 (nhãn S162, 2026-07-30)

> GHI-ĐĨA-TRONG-LÚC-LÀM (#53). Append từng finding, LUÔN hợp-lệ giữa chừng. Kết = `END` + `TOTAL: N`.

## 0. Nền đọc (KHÔNG đo lại — run.md §Khối số máy ĐÓNG BĂNG 10:45)

- measure-agent-memory: 23 agent · L1 hot 303.937 B · lead-gap-auditor 21.552 B
- crystallized-backfill: cap 380.000 tok · hotload 642.699 B · RANGE [160.675..214.233] · headroom 165.767 tok · target owner 210.000 ⇒ **headroom BINDS** · backfill DRY 0 pour
- nhip-no-probe: light **9/6 OVERDUE** · deep 11/15 · run-chưa-gom 3 · pull-cách 8 ngày
- governance-detectors: TOTAL FLAGS 44 · INFORM-only 5 · self-match 0
- session-counter: counter=36 · last_ticked=S162 · `last_audit.light_at_counter=27` · `class_repeat.gap-carry-dropped=`**7** (đơn-vị **consecutive-audit** — bài D-4 @S159: *cùng tên ≠ cùng đơn-vị*, CẤM chép số trong-phiên đè lên ô này)

🔴 **1 số đọc THÊM ngoài khối đóng băng** (khối không chở nó): detector `H24-2 carry-age` chi-tiết — chạy tươi 14:2x, cùng script cùng `M=6`. Khai thẳng, KHÔNG đè số nền.

## 1. Tập KỲ-VỌNG (dựng TRƯỚC khi so — H24 method §1)

Nguồn cam-kết đã đọc: `.claude/WAL.md` (5.326 B, 5 mục `[ ]`) · `docs/HANDOFF.md` (148.071 B / 417 dòng / 25 logic-segment) · `docs/STATUS.md` (211.390 B) · `_context-s-8.md` (PAUSE-1/2/3) · `_mind-s-8.md` (29.184 B) · `.session-counter.json` · `runs/2026-07-30-S162-cay-4-folder-gd/run.md` · `.claude/commands/{session-end,tiep}.md` · `memory-budget.json` · `.claude/auto-memory/feedback_agent_return_garble_recover.md`.

**Disk-touch nền** (chống lỗi S121 *bảng-kế-hoạch mô-tả Ý-ĐỊNH, không mô-tả TRẠNG-THÁI*): `git log -- docs/HANDOFF.md` ⇒ lần ghi cuối = `1d3d167` (closeout S159-S160, 07-29 **chiều**) — tức **SAU** bookend-open S159 nơi FLAG-1 re-stamp nổ. `git ls-files` run-folder cây-4-folder = **9 file đã tracked** (không phải "chưa lưu").

🔴 **Khuôn đo @close (bài S153):** closeout đang MỞ ⇒ *"sổ bền còn trắng"* là **vô-nghĩa để FLAG**. Khuôn đúng = **"cái gì sống DUY-NHẤT ở nơi sắp bị xoá (`WAL §6.4` reset) mà KHÔNG bước nghi-thức nào gánh"**. Mọi FLAG dưới đây đều neo theo khuôn này.

---

## TRỤC 3 — verbatim owner → **BÁC vế chính; vế scope còn sống ⇒ FLAG-3**

**BÁC "mất verbatim":** `runs/2026-07-30-S162-cay-4-folder-gd/run.md:3` chép **nguyên văn trong ngoặc kép**: *"Tạo folder: Duyệt NCC / Kế hoạch Hợp đồng. / Duyệt Hợp đồng / Hợp đồng cứng."* + **cả 2 quyết AskUser**. `:7` chép nhãn lần 2 + ghi lý-do CỐ-Ý lệch nhãn strip. File **git-tracked**. ⇒ specifics KHÔNG mất. Honest-zero — tao tự BÁC ứng-viên flag của trục này.

## TRỤC 6 — /tiep ⇒ thiếu bookend-open, lead có surface không? → **BÁC (honest-zero)**

`runs/2026-07-30-S162-bookend-close/run.md:3`: *"Phiên vào bằng `/tiep` ⇒ KHÔNG có bookend @open ⇒ closeout này gánh CẢ vòng trio (chạy bù §L.b(k)(i))."* — nêu **đích danh** nguyên-nhân + cơ-chế bù. taskList `:26-29`: W1 = H1 + H2 + cặp H24 · W3 = trio tuần-tự · W4 = ring4 + ctx-audit. ⇒ **KHÔNG im lặng**. BÁC.
*(Ranh: tao xác nhận lead ĐÃ KHAI + ĐÃ XẾP LỊCH; 3 vai trio có chạy thật không = kỳ đo ring1/ring2.)*

---

## FLAG-1 — `gap-carry-dropped` — HIGH

- **hứa:** `.claude/commands/session-end.md:125` §L.b(j)(iv) — *"khi ghi segment `HANDOFF` mới, **ĐÓNG DẤU LẠI** `[carry:<slug>]` cho **MỌI** carry còn mở — không chỉ lần đầu"*. Cộng thêm: `sub-lead-gap-open-S159.md:24` **FLAG-1 HIGH** đã nổ đúng việc này 07-29 sáng.
- **hiện:** **VẮNG — và vắng LẦN THỨ HAI, SAU khi đã bị flag.** `grep -o '\[carry:[a-z0-9-]*\]' docs/HANDOFF.md` ⇒ hit đầu tiên ở **dòng 44** = khối `**Carry @S153**`. Hai segment mới hơn **0 slug**: S158 (dòng 21-41) và **S159→S160 (dòng 5-19)** — segment thứ hai được ghi bởi commit `1d3d167` (07-29 **chiều**), tức **SAU** khi FLAG-1 nổ ⇒ đây không phải "chưa biết", mà là **biết rồi vẫn không làm**.
- 🔴 **Đòn bất-đối-xứng (chống đọc nhầm thành "cả nghi-thức bị bỏ"):** cùng segment `1d3d167` đó lead **CÓ** viết `NEXT em` (dòng 18, 1.037 B, 5 mục ①-⑤) và **CÓ** cập-nhật (49)-(53) + (51-bis). Nghi-thức bên cạnh chạy, riêng vế re-stamp bị bỏ ⇒ loại được bào-chữa "closeout gấp nên bỏ cả khối".
- 🔴 **Máy vẫn in `[ok]` — đọc detector, KHÔNG tự tính** (`H24-2`, chạy tươi hôm nay, `M=6`): `logic-segments = 25 ; carry-lines = 18` · tập đo còn **5** slug: `ctx-t9-dogfood`=2 · `ring5-audit-gap`=1 · `hmw-width-vs-roster`=1 · `hmw-subfile-index-collision`=1 · `adap-apply-2-thu`=3. **Y HỆT bộ số của S159** ⇒ qua 1 segment mới, thước **không nhích**. Ba carry già nhất (`hook-vs-budget-cap` 13 · `uat-s133-budget-freeze` 9 · `uat-s134-luyke` 7 — số của S148/S150/S151) **vẫn ngoài tập đo**, trong khi trên đĩa `grep -o` đếm được **219 occurrence / 43 slug distinct** còn sống.
- 🔴 **Kế-hoạch closeout NÀY cũng không gánh:** mục `[ ] housekeeping @closeout L8` trong WAL liệt **9 việc rất chi-li** (STATUS:6 · session-log · H2 backstop · gom 3 run-folder K4 · hạ-nhãn · errata E-đếm-7-sub · mở lại slot-45 · MIND-5 K5/K6/K2/K3 · quyết OVERDUE 9/6) — **0 chữ** về re-stamp carry, **0 chữ** về ghi segment HANDOFF. Việc chi-li nhất được liệt, việc này thì không.
- **im:** khối carry đứng yên từ **S153** ⇒ **9 nhãn phiên**; **2 segment HANDOFF mới** ghi mà không re-stamp; **1 chu-kỳ tròn** kể từ lúc bị flag HIGH.
- **resolve:** closeout L8 ghi segment mới **kèm khối `Carry MỞ re-stamp @S162` đủ MỌI slug còn mở** (khuôn S151/S152/S153 đã có sẵn) ⇒ detector H24-2 kỳ sau đo được `hook-vs-budget-cap`/`uat-s133`/`uat-s134` trở lại tập đo (streak bao nhiêu cũng được). HOẶC anh chốt khai-tử trục carry-age + ghi vết — lúc đó flag này hết, KHÔNG cần re-stamp nữa.

## FLAG-2 — `gap-decision-sunk` — HIGH

- **hứa:** `.claude/WAL.md` chain — `[ ] 🔴 CHỜ ANH (blocker mạch chính): chốt NGƯỜI DUYỆT 3 trạm PRO/CCM/CEO (trong 18 user prod — em không tự chọn người thật)`; nhắc lại ở `_context-s-8.md:117` PAUSE-3 *"🔴 **BLOCKER duy nhất còn lại**"* và ở `next:` của WAL. Luật gánh: `session-end.md:129` **Luật đánh-số chờ-anh** — *"khối **chờ-anh** trong `HANDOFF` **LUÔN đánh số**"*.
- **hiện:** **VẮNG khỏi mọi bề-mặt owner.** Đo 4 sổ: `grep -i` trên `docs/HANDOFF.md` · `docs/STATUS.md` · `docs/changelog/migration-todos.md` · `.claude/governance/ACTIVE-MARKS.md`:
  - `"3 trạm"` = **0 / 0 / 0 / 0**
  - `"PRO/CCM/CEO"` = **0 / 0 / 0 / 0**
  - `"người duyệt"` = 0 / **3** / 1 / 0 — 🔴 **3 hit của STATUS là DƯƠNG-GIẢ**: đọc ngữ-cảnh ra *"chuông báo người duyệt"* và *"người duyệt cuối THẤY danh sách phiếu trước chưa duyệt"* = mô-tả tính-năng PE cũ (S78/S134), **không phải** blocker này.
  ⇒ Blocker sống **DUY NHẤT** ở `.claude/WAL.md`, tức đúng file mà `session-end §6.4` sẽ **reset**.
- 🔴 **Đòn bất-đối-xứng:** cùng WAL, dòng `[ ] chờ-anh phụ (không chặn)` liệt **6 món nhỏ** (F-10 attachment · mark-read chuông cũ · tài khoản UAT non-Admin · 51-bis `_INDEX` · thư `day-wake` · K7b detectors) — trong đó **51-bis ĐÃ CÓ slot số** ở `HANDOFF:30`. Vậy: món **không chặn** thì có số ở sổ anh đọc; món **chặn toàn bộ mạch chính** (gate W5 → E2E → toàn trình PE→KHKK→HĐ→bản-cứng) thì **không có số, không có dòng nào ngoài WAL**.
- 🔴 **Vì sao HIGH, không phải MED:** đây không phải một mục backlog — nó là **điều kiện duy nhất** để 3 việc `[ ]` còn lại khởi động (dựng 2 workflow type-3/type-10 → W5 → E2E). Nếu WAL reset trước khi có slot, thứ mất **không phải một dòng nhắc**, mà là **cửa duy nhất để anh trả lời**; phiên sau lead phải tự dựng lại ngữ cảnh "18 user prod / 3 trạm / vì sao em không tự chọn".
- **im:** sinh @PAUSE-2 (07-29 17:04, *"dựng workflow 3-trạm Designer"*) → PAUSE-3 (07-30 00:35, lên hạng BLOCKER) → WAL 10:40. **3 cửa-sổ / 2 ngày, 0 lần chạm sổ bền.**
- **resolve:** closeout L8 cấp **slot số mới** (tiếp sau 51/51-bis) trong khối `NEXT anh` của HANDOFF, chép đủ 3 specific: (a) 3 trạm PRO/CCM/CEO · (b) chọn trong **18 user prod** · (c) lý-do em không tự chọn. Hết flag khi `grep "PRO/CCM/CEO" docs/HANDOFF.md` ≥ 1.

## FLAG-3 — `gap-owner-specifics` — MED

- **hứa:** owner trả AskUser (chép ở `runs/2026-07-30-S162-cay-4-folder-gd/run.md:3`): *"(2) áp **CẢ** các trang GĐ khác"* — lượng-từ **CẢ** là specific về **phạm-vi**.
- **hiện:** phạm-vi bị **thu hẹp bởi LEAD**, và chỗ thu hẹp không được đánh dấu là *đi chệch lệnh anh*:
  - `run.md:13` — *"Trang GĐ3 (cụm HĐ 7-loại 6-leaf) = **đợt-2** sau khi anh xem prod"* ⇒ giao 3/4 trang GĐ (GĐ1 PE-list · GĐ2 KHKK-list · GĐ4 HardCopies), thiếu GĐ3.
  - `.claude/WAL.md` (sổ duy nhất còn sống ngoài run-folder) ghi lệnh anh thành **"AskUser chốt vị-trí/phạm-vi"** — một cụm **chung-chung**; chữ **CẢ** biến mất, việc thu hẹp thành "trang GĐ3 = đợt-2" nằm **bên trong một mục `[x]` ĐÃ ĐÓNG**, không phải mục `[ ]`.
- 🔴 **Đo được, không phải cảm-tính:** `grep -c "Duyệt NCC" .claude/WAL.md` = **0** — trong khi chính dòng WAL đó tự khai *"**nhãn VERBATIM anh**"*. Sổ **quảng cáo có verbatim mà không chứa verbatim**; ai đọc WAL sau reset sẽ tin đã có, và sẽ không đi tìm.
- 🔸 **Không thổi phồng:** verbatim ĐÃ được giữ đúng ở `run.md` (git-tracked) và `next:` của WAL CÓ nhắc *"Đợt-2 nếu anh muốn: gắn cây vào cụm trang GĐ3"*. Nên đây là **MED**, không phải HIGH: rủi ro là anh nghiệm thu prod, thấy 3 trang có cây, tưởng đã "CẢ" — chứ không phải mất trắng.
- 🔸 **Khai thẳng về phân-loại:** ca này đứng giữa `gap-owner-specifics` (mất lượng-từ phạm-vi **CẢ**) và `gap-carry-dropped` (phần dư nằm trong mục `[x]`). Tao chọn `gap-owner-specifics` vì **cái mất là CHỮ CỦA ANH**, không phải cái slot. Ring2 muốn đổi nhãn thì đổi — bằng-chứng không đổi.
- **im:** 1 cửa-sổ (từ 09:xx tới 10:40 hôm nay) — **ngắn**, và đó chính là lý do bắt BÂY GIỜ còn rẻ.
- **resolve:** segment HANDOFF closeout chép nguyên 4 nhãn verbatim + ghi **1 dòng minh-bạch**: *"anh chốt áp CẢ các trang GĐ; đợt-1 giao 3/4, **GĐ3 lead hoãn sang đợt-2** — anh xác nhận hoặc bác"*.

## FLAG-4 — `gap-underfill` — MED

- **hứa:** `memory-budget.json:12` `tiep_reload._note` — *"rút gọn ~ **40-60K tok** (input one-shot cache-được)"*, `mode: "rut-gon"`, 5 `sources` khoanh phạm-vi từng mục. Reader = `tiep.md:183` §3-ter (*"nạp NỀN vẫn là việc LEAD"*).
- **hiện:** **trần với-tay-tới của chính danh-sách đó THẤP HƠN sàn mục-tiêu.** Đo tươi từng nguồn theo đúng phạm-vi đã khoanh:

  | nguồn (phạm-vi trong `sources`) | byte |
  |---|---|
  | `STATUS.md` :: dòng CURRENT + bảng CURRENT STATE (L3-24) | 17.114 |
  | `HANDOFF.md` :: **segment Last-updated MỚI NHẤT** (L1-19) | 7.052 |
  | `WAL.md` trọn | 5.326 |
  | `_mind-s-8.md` trọn | 29.184 |
  | `_context-s-8.md` trọn | 12.816 |
  | **TỔNG** | **71.492 B** |

  Quy tok theo dải bảo-toàn của chính repo (VN 3,0-3,5 B/tok, `mfe.honest_caveats.token_estimate`): **[20.426 .. 23.831] tok** ⇒ **~½ sàn 40K**.
  Kể cả đọc **rộng nhất có thể** (lấy `HANDOFF` = "current-segment" theo định-nghĩa của detector H24-4 = **L1..80**, 59.152 B): tổng 123.592 B ⇒ **[35.312 .. 41.197] tok** — **cận trên mới vừa chạm sàn 40K**, cận dưới vẫn hụt.
- 🔴 **Vì sao đây là gap chứ không phải lead lười:** kể cả lead tuân **100%** danh-sách, con số vẫn không tới. Tức **mục-tiêu và danh-sách nguồn không khớp nhau** — một trong hai sai, và không ai biết vì **không có máy đo**: `grep -ci "pct_print|%-print|ngân-sách|tier1"` trên `.claude/commands/tiep.md` = **0**. Cửa `/tiep` **không có bước %-print** nào (đối-xứng `session-start §2.1.6` và `session-end §L.b(c)` thì có).
- 🔴 **Khai cận-dưới trung thực:** tao **không quan sát được** lead thực-nạp bao nhiêu (việc nạp không để lại artifact). Cái tao đo là **TRẦN của danh-sách** — nên mệnh-đề an-toàn là *"dù tuân đủ vẫn dưới hạn"*, không phải *"lead nạp thiếu"*.
- 🔸 **Lặp lần 4** (S143 · S148 · S150 · nay) về việc `/tiep` thiếu %-print — nhưng **lần đầu có SỐ HỤT cụ-thể**, nên báo mới chứ không phải nhai lại.
- **im:** khoá `tiep_reload` land @S153 (adopt `0df10df4` khoản (37)b) ⇒ **9 nhãn phiên**, chưa lần nào được đo.
- **resolve:** một trong hai — (a) thêm 1 dòng %-print vào `/tiep` (đối-xứng §2.1.6) rồi đo thật; hoặc (b) anh chỉnh **một trong hai đầu**: hạ dải xuống ~20-25K cho khớp danh-sách, **hoặc** mở rộng `sources` (ví dụ `HANDOFF` lấy trọn current-segment L1..80 + `ACTIVE-MARKS`) cho khớp dải 40-60K. Số là **quyền anh** (`role_boundary_note`), tao chỉ báo lệch.

---

## Honest-zero (khai rõ, không làm tròn thành "sạch")

- **`gap-carry-aged` = 0** — ĐỌC detector H24-2 (max streak **3** < M=6), **không tự tính**. 🔴 *"Không fire" ≠ "sạch"*: theo phán-quyết ring2 @S159, FLAG-1 (nguyên-nhân) và `[ok]` (hệ-quả) là **MỘT sự-kiện** ⇒ tao **KHÔNG** tách thành flag thứ hai, để tránh *đo một lần đếm hai lần*. Cái mất vẫn là **chứng-nhân**, đã gói trong FLAG-1.
- **`gap-incident-unrecorded` = 0** — 4/4 sub phiên này garble #53 ít nhất 1 lần (`run.md:23`), nhưng sự-cố **CÓ vết**: S159 ở `HANDOFF:16` (*"7 garble / 10 first-return · 6/6 resume sạch · mất 0 B"*) · window-3 ở `_context-s-8.md:118` (*"#53 ×~15 cả cửa"*) · window-4 ở `run.md:23` (git-tracked). 🔴 **Ranh S143:** sổ đếm `.claude/auto-memory/feedback_agent_return_garble_recover.md` mtime **07-28 20:36** (đứng từ S158) — đó là **SỐ CŨ ⇒ turf `view-*`**, KHÔNG phải của tao. Bàn giao cho `lead-stale-auditor`, tao không lấn.
- **`view-*` (5 class)** — ngoài turf, không đo.

## INFORM (không nâng thành FLAG)

1. **6 slot owner đánh số `(42)(43)(44)(46)(47)(48)` không được re-surface ở segment mới nhất.** Segment `S159→S160` (L5-19) **không có khối `NEXT anh` nào** — chỉ trỏ ngang slot (51) trong `NEXT em ②`. 6 slot sống ở segment **S158** (L32-41), vẫn trong file nên `master-checklist` nhóm-3 (`session-end.md:280`) derive được ⇒ **chưa rơi**. Nhưng `(42)(43)(44)` — theo chính `HANDOFF:33` — *"anh **chưa từng được hỏi**"* từ S155, nay im thêm 4 nhãn (S159→S162).
2. **Resolve của FLAG-3@S159 chưa được thi hành.** Điều-kiện ghi rõ: *"(43) trình lại kèm 3 số detector (tập đo 5 · streak max 3 · 3 carry vắng)"*. Segment mới nhất không có `NEXT anh` ⇒ (43) chưa trình lại; hôm nay đo lại vẫn **đúng 3 số đó**. Không nâng FLAG riêng vì trùng nguyên-nhân với FLAG-1.
3. **`migration-todos.md` = 0 hit `"KHKK"`** trong khi 5 wave đã SHIP (Mig 69, 7 bảng) và W5 còn `[ ]`. Roadmap-file (1 trong 5 file đọc-đầu-phiên theo `CLAUDE.md`) không biết module này tồn tại. 🔸 Không nâng FLAG: W5 có nhà ở WAL `[ ]` + 7 spec-wave trong run-folder, và closeout đang mở.
4. **`WAL` chờ-anh-phụ ghi `_INDEX` cicd = 99,2%** trong khi `HANDOFF:30` slot (51-bis) ghi **97,45%** và slot (47) ghi **95,14%**. Đây là trục **số-cũ ⇒ `view-stale-count`**, bàn giao `lead-stale-auditor`. Tao chỉ nêu hệ-quả thuộc trục mình: món này đang bị xếp *"(không chặn)"* trong work-state, mà 99,2% × 20.480 ⇒ headroom còn ~**164 B**.

## Số đo JUMP (SỐ ĐO, không phải đề-nghị — quyết kéo nhịp = em-main/owner)

🔴 **Khai đơn-vị trước khi đưa số** (bài D-4 @S159 — lead suýt xoá lịch-sử 7→3 vì lẫn đơn-vị):
- Ô sổ `class_repeat.counts` dùng đơn-vị **consecutive-audit**. Giá-trị **đang có trên đĩa**: `gap-carry-dropped` **7** · `view-stale-count` 5 · `view-residual-asym` 5 · `view-stale-status` 2 · `gap-decision-sunk` 1 · `gap-underfill` 1 · `view-stale-header` 1 · `gap-owner-specifics` 0 · `gap-carry-aged` 0 · `gap-incident-unrecorded` 0.
- Đóng góp của **kỳ đo NÀY** (đơn-vị trong-phiên, **KHÔNG được chép đè** vào ô trên): `gap-carry-dropped` **fire** ⇒ 7→**8** · `gap-decision-sunk` **fire** ⇒ 1→**2** · `gap-owner-specifics` **fire** ⇒ 0→**1** · `gap-underfill` **fire** ⇒ 1→**2** · `gap-carry-aged` không fire ⇒ **0** · `gap-incident-unrecorded` không fire ⇒ **0**.
- `jump_on_class_repeat` = **3** ⇒ sau kỳ này **1 class của tao chạm/vượt**: `gap-carry-dropped` = **8** (đã vượt từ lâu, nay tăng tiếp — 8 kỳ liên-tiếp cùng một class là tín-hiệu **nghi-thức**, không phải tín-hiệu **sự-cố lẻ**).
- Bộ đếm nhịp: `counter=36`, `light_at_counter=27` ⇒ **9/6 OVERDUE(light)** — kỳ đo này chính là kỳ trả nợ đó.

END
TOTAL: 4
- `gap-carry-dropped` 1 (HIGH)
- `gap-decision-sunk` 1 (HIGH)
- `gap-owner-specifics` 1 (MED)
- `gap-underfill` 1 (MED)
- honest-zero: `gap-carry-aged` 0 · `gap-incident-unrecorded` 0
- BÁC tự-nguyện: trục-3 vế "mất verbatim" · trục-6 "lead im lặng bỏ qua bookend-open"
