# sub-lead-gap-open-S163 — H24 §2(1) vai-GAP · bookend @open · phiên-LOGIC L9

> **Trục:** soi CÁI KHÔNG CÓ (⟂ `lead-stale-auditor` soi cái CÓ-nhưng-LỆCH).
> **Chống #53:** file này ghi TRONG LÚC LÀM, append từng FLAG. Nếu return garble ⇒ ruột vẫn còn ở đây.
> **Enum ĐÓNG** (`memory-budget.json` → `lead_self_audit.flag_classes`, 11 phần tử; 6 gap-* thuộc vai này):
> `gap-carry-dropped` · `gap-carry-aged` · `gap-owner-specifics` · `gap-decision-sunk` · `gap-underfill` · `gap-incident-unrecorded`
> **Nhịp:** `h24_cadence` → `light_every`=6 (stats-only) · `deep_every`=15 (còn cổng) · `jump_on_class_repeat`=3. M (carry-age) = `light_every` = 6.
> **Bản phiên trước (PIN):** `.claude/workflows/runs/2026-07-30-S162-bookend-close/sub-lead-gap-close-S162.md` (4 FLAG; `gap-carry-dropped` streak 8).

## 0. Trạng-thái chạy

- [x] Đọc `memory-budget.json` — enum xác nhận 11 class, 6 gap-*.
- [x] Dựng tập KỲ-VỌNG (commitment sources) — xem §1
- [x] Nhóm A — carry re-stamp (CA NẶNG NHẤT, streak 8) ⇒ **FLAG-1**
- [x] Nhóm B — việc rớt khỏi work-state ⇒ **0 FLAG** (`_end` ↔ `HANDOFF` khớp 1:1; ứng-viên orphan → **`RÚT-1`** tự BÁC)
- [x] Nhóm C — BLOCKER (54) người duyệt 3 trạm ⇒ **0 FLAG (tự BÁC — đã resolve)**
- [x] Nhóm D — owner specifics (ca cũ) ⇒ **0 FLAG (đã resolve)**; ca mới xử ở Nhóm E
- [x] Nhóm E — quyết-định treo chìm ⇒ **FLAG-2** (HIGH) + **FLAG-3** (MED) + INFORM-E1
- [x] Nhóm F — memory under-fill + 6 vai không baseline ⇒ **FLAG-4** (HIGH) + 2 BÁC
- [x] Nhóm G — orphan run-folder S159/S160 (owner CỐ Ý hoãn) ⇒ **0 FLAG** + INFORM-G1

🔴 **Hệ số hiệu CHỐT (quét lại toàn file, khớp cả heading + dòng tổng kết + bảng này):** `FLAG-1..FLAG-4` = 4 heading `## FLAG-` · `RÚT-1` **không** mang số FLAG, **không** vào TOTAL. `grep -c '^## FLAG-'` = **4** == `TOTAL` ở END-line.

---

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

**Nguồn cam-kết đã đọc trên đĩa:**
`docs/HANDOFF.md` (154.300 B / 452 dòng / 25 logic-segment theo detector) · `.claude/WAL.md` (**182 B — RỖNG**, đã reset @closeout S162) · `.claude/sessions/session-8/_end` (2.246 B, FROZEN) · `_mind-s-8.md` (32.181 B) · `_context-s-8.md` (12.816 B) · `_context-s-9.md` (2.938 B, scaffold mới) · `.claude/governance/.session-counter.json` · `.claude/agent-memory/memory-budget.json` · detector `governance-detectors.ps1` (chạy tươi) · run-folder S162-bookend-close + S163-bookend-open.

**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 --oneline -4 -- docs/HANDOFF.md` ⇒ ghi cuối = `e5123ff` (closeout S162). HEAD = `77b1ad8` (wal: flush 16:08).
- `ls .claude/sessions/session-9/` ⇒ **CHỈ có `_context-s-9.md`** (scaffold 16:01). Chưa có `_mind-s-9.md` (đúng — `_mind` sinh @`/pause`).
- `ls .claude/workflows/runs/2026-07-30-S163-bookend-open/` ⇒ 4 file sub, **KHÔNG có `run.md`** (S159-bookend-open, S154-bookend-open, S162-bookend-close đều CÓ). Xử ở Nhóm E.
- `.session-counter.json`: `counter=37` · `last_ticked_session=S163` · `light_at_counter=36` · `deep_at_counter=25` ⇒ light 1/6, deep 12/15 — **KHÔNG overdue**; kỳ đo này là bookend vô-điều-kiện (hình B), không phải trả nợ.

---

## Nhóm A — carry re-stamp (CA NẶNG NHẤT)

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

**hứa:** `.claude/commands/session-end.md` §L.b(j)(iv) — *"khi ghi segment `HANDOFF` mới, ĐÓNG DẤU LẠI `[carry:<slug>]` cho **MỌI** carry còn mở"*. Cộng: resolve-condition tự-đặt của **FLAG-1 @S162** (`sub-lead-gap-close-S162.md:44`) nêu **đích danh** cái quan sát được: *"⇒ detector H24-2 kỳ sau đo được `hook-vs-budget-cap`/`uat-s133`/`uat-s134` **trở lại tập đo**"*.

**hiện:** nghi-thức **ĐÃ CHẠY** (`HANDOFF.md:35` khối `Carry @S162 (RE-STAMP…)` 10 slug — công nhận, không phủ nhận) **nhưng acceptance KHÔNG ĐẠT**, và không ai đo lại.

🔴 **Đo cứng — detector H24-2 (ĐỌC, KHÔNG tự tính), chạy tươi hôm nay, `M = light_every = 6`:**
```
HANDOFF logic-segments (NEXT anh/em) = 25 ; of those, carry-lines = 18
  [ok] carry 'ctx-t9-dogfood'              streak=2 < M=6
  [ok] carry 'ring5-audit-gap'             streak=1 < M=6
  [ok] carry 'hmw-width-vs-roster'         streak=1 < M=6
  [ok] carry 'hmw-subfile-index-collision' streak=1 < M=6
  [ok] carry 'adap-apply-2-thu'            streak=3 < M=6
```
⇒ **Y HỆT bộ số của S159 VÀ của S162.** Một segment mới + khối re-stamp 10 slug đã land, thước **không nhích 1 ly**. 3 carry già nhất (`hook-vs-budget-cap` · `uat-s133-budget-freeze` · `uat-s134-luyke`) **vẫn ngoài tập đo** — đúng thứ resolve-condition gọi tên. **6 slug MỚI của chính khối @S162** (`ctx-verifier-no-self-append` · `orphan-retro-harvest-s159` · `endline-sub-md` · `tra-bui-relogin` · `mind-tran-nen-moi-cua` · `tiep-reload-underfill`) cũng **không có mặt** trong tập đo.

🔴 **Vì sao vá đúng-hình mà máy vẫn mù — nguyên nhân ĐO ĐƯỢC, không phải suy đoán.** Khối @S162 giữ phần còn lại bằng MỘT CÂU con-trỏ: *"(26 slug re-stamp @S152 giữ nguyên hiệu lực — con-trỏ segment S152, KHÔNG chép để tránh drift.)"*. Mở đúng con-trỏ đó (`HANDOFF.md:86`, khối `Carry @S152`):
- token `[carry:…]` trong dòng đó = **6** (3 MỚI `adap-apply-2-thu`/`h24-end-total-line`/`ring4-write-lane` + 3 ĐÓNG).
- **23 slug "GIỮ re-stamp"** viết dạng **TÊN TRẦN trong backtick** — `` `account-trung` `` · `` `hook-vs-budget-cap` (12↑) `` · `` `uat-s133-budget-freeze` (9↑) `` … — **KHÔNG có token `[carry:…]`**.
⇒ Máy grep `[carry:` ⇒ **không tồn tại**. Đây không phải "detector hỏng"; đây là **cam-kết được lưu ở dạng máy không đọc được**.

🔴 **Con-trỏ trỏ vào khối mà chính luật của file hẹn sẽ XOÁ.** `HANDOFF.md:3` tự viết: *"Tiering rule (S40): giữ **2-3 session gần nhất**. Cũ hơn → `docs/changelog/sessions/`."* Segment S152 nay đứng **thứ 4** tính từ mới nhất (S161→S162 · S159→S160 · S153 · **S152**), cách **5 nhãn phiên**. Và `[carry:retier-megaline]` (re-tier HANDOFF) là **carry đang mở**. ⇒ **Ngày nghi-thức tiering hoặc re-tier chạy, 25 cam-kết bốc hơi im lặng** — không dòng nào kêu, vì chúng chưa từng là token.

🔴 **Tập-đo vừa THỪA vừa THIẾU (bằng-chứng nó không đo cái nó tưởng đang đo):** `adap-apply-2-thu` **ĐÃ ĐÓNG @S153** (`HANDOFF.md:79` — *"✅ ĐÓNG @S153: `[carry:adap-apply-2-thu]`"*) mà vẫn trong tập-đo, **streak=3**. ⇒ tập-đo 5 phần tử = **1 carry CHẾT + 4 sống**, trong khi **25 carry sống nằm ngoài**. Nếu carry chết đó chạm 6, máy FIRE **báo động giả** cho việc đã xong.

🔸 **Đòn bất-đối-xứng (loại bào-chữa "nghi-thức bị bỏ cả khối"):** cùng closeout đó lead **CÓ** viết `NEXT em @S163` 7 mục, **CÓ** cấp 6 slot mới (54)-(59), **CÓ** ghi `_end` với `carry:` đủ 10 slug. Nghi-thức bên cạnh chạy đầy đủ; riêng vế "MỌI carry" bị thay bằng con-trỏ.

🔸 **Số nền (mega-line safe — `grep -o … | wc -l`, KHÔNG `grep -c`):** occurrence `[carry:*]` trên `HANDOFF.md` = **229** · distinct = **48** · dòng vật-lý chứa = 37. (Bẫy đo #1: `grep -c` ra 37 ≠ 229.)

🔸 **Khai thẳng ranh giới:** con số *"26 slug @S152"* trong câu con-trỏ **sai đối-tượng** — khối 26 slug thật ở `HANDOFF.md:91` (`Carry MỞ re-stamp @S151`); tại S152 chỉ còn **23** giữ (3 đã ĐÓNG). Vế "số sai" = `view-stale-count` ⇒ **turf `lead-stale-auditor`**, tao không lấn. Vế của tao: **con-trỏ 2-nhịp + lưu-trữ-không-token ⇒ 25 cam-kết không có lớp bắt nào.**

**im:** khối machine-visible đứng yên từ **S153** ⇒ **10 nhãn phiên**; nghi-thức bỏ 2 kỳ (S159+S160), chạy lại @S162 mà acceptance vẫn không đạt ⇒ kỳ thứ **9** liên-tiếp class này fire.

**resolve:** một trong hai, cả hai đều rẻ —
(a) **Chép token, đừng chép chữ:** khối carry mỗi segment mới liệt `[carry:<slug>]` đủ 25 slug (annotation vẫn giữ ở con-trỏ). Hết flag khi detector in ≥ 25 dòng carry VÀ `hook-vs-budget-cap` có streak > 0.
(b) **Owner trả lời slot (43)** (`carry con-trỏ-vs-slug`, đang treo ở `HANDOFF.md:21`): nếu chốt "con-trỏ hợp lệ" thì phải **đồng thời** sửa detector đi theo con-trỏ, **hoặc** khai tử trục carry-age + ghi vết.
🔴 Điều-kiện phụ **bắt buộc**: gỡ `adap-apply-2-thu` khỏi tập-đo (đã đóng 10 nhãn phiên trước).

---

## Nhóm B — việc rớt khỏi work-state

**Đối-chiếu 2 sổ closeout (honest-zero CÓ kiểm chứng):** `_end` (session-8, FROZEN) dòng `carry:` liệt **đúng 10 slug**, khớp 1:1 khối `HANDOFF.md:35`. Dòng `pending-anh:` liệt (54)(55)(56)(57)(58)(59) + *"slot cũ (39)-(48) treo"*, khớp `HANDOFF.md:9-21`. ⇒ **KHÔNG có slug/slot nào rơi giữa `_end` và `HANDOFF`.** Vế này SẠCH — nêu ra vì "vắng ≠ chưa soi".

## RÚT-1 — ứng-viên `gap-carry-dropped` — **TỰ BÁC, KHÔNG tính vào TOTAL**

*(Giữ nguyên vết quá-trình, không xoá — bài "vắng ≠ bỏ rơi" + anti-pattern #3.)*

**Giả-thuyết ban đầu:** `_end` dòng `pointers:` liệt **3** run-folder S159/S160; `HANDOFF.md:28` NEXT em #2 chỉ nói *"Retro-harvest **2** orphan"* ⇒ nghi phạm-vi co 3→2.

🔴 **BÁC — chạm đĩa thì lộ ngay (đúng bài S121: bảng mô-tả Ý-ĐỊNH ≠ TRẠNG-THÁI).** Đọc TRỌN mục #2 chứ không dừng ở 4 chữ đầu: nó kết thúc bằng *"+ `git mv review-synthesis-clone-s160.md` → `review-clone-s160-synthesis.md` (glob neo ĐUÔI)"* ⇒ **món thứ 3 CÓ trong work-state**, chỉ là được gọi bằng **cách chữa** thay vì bằng tên folder. Đối-chứng độc-lập cùng phiên: `sub-harvest-curator-open-S163.md:85` xếp `S160-khkk-dryrun-plan` = *"🟢 ORPHAN DO TÊN (dương-giả), nội dung ĐÃ harvest"*, remedy = **đúng 1 lệnh `git mv`**. ⇒ con số "2 orphan" của lead **CHÍNH XÁC** theo nghĩa orphan-nội-dung; món thứ 3 là orphan-tên và đã có dòng riêng.

**Bài rút cho chính tao:** suýt phát `gap-*` từ việc đọc **4 chữ đầu của một mục dài** — cùng họ với lỗi S159 F5 (lead dừng đọc HANDOFF ở dòng 55). Đọc HẾT mục trước khi kết luận VẮNG.

---

## Nhóm C — BLOCKER (54) NGƯỜI DUYỆT 3 trạm → **0 FLAG — tự BÁC, đã resolve**

FLAG-2 HIGH @S162 của chính tao (*"0 hit trên cả 4 bề mặt owner, sống duy nhất ở WAL sắp reset"*) **ĐÃ XỬ**. Đo lại:
- `HANDOFF.md:9` — **(54) 🔴🔴 BLOCKER MẠCH CHÍNH — chốt NGƯỜI DUYỆT 3 trạm PRO/CCM/CEO** — có **số**, đứng đầu khối `## 🔴 CHỜ ANH — ĐÁNH SỐ`.
- 3 specifics resolve-condition đòi: đủ **3/3** — (a) *"3 trạm PRO/CCM/CEO"* ✓ (b) *"chọn trong 18 user prod"* ✓ (c) *"em KHÔNG tự chọn người thật"* ✓. Kèm downstream (2 workflow type-3/type-10 → W5 → E2E) + cảnh báo `KHÔNG SQL tay #84`.
- Neo lại ở `_end` `pending-anh:` dòng đầu.
- WAL nay **RỖNG** (182 B) ⇒ nếu không di-trú thì đã mất; di-trú xảy ra **trước** reset. Đúng thứ tự.
**⇒ Honest-zero có giá: tao tự BÁC ứng-viên flag của trục này.**

## Nhóm D — owner specifics (ca cũ) → **0 FLAG — tự BÁC, đã resolve**

FLAG-3 MED @S162 (chữ **CẢ** trong *"áp CẢ các trang GĐ khác"* bị lead tự thu hẹp 3/4 trang) **ĐÃ XỬ**: `HANDOFF.md:11` slot **(55)** chép **verbatim trong ngoặc kép** *"áp **CẢ** các trang GĐ khác"*, khai thẳng *"em giao **3/4** … và **tự hoãn** cụm Duyệt hợp đồng (7 loại HĐ × 6 leaf) sang đợt-2"*, đủ 4 nhãn, kèm câu hỏi đóng *"Làm tiếp ngay, hay giữ nguyên 3 trang?"* ⇒ dòng minh-bạch mà resolve-condition đòi **có mặt nguyên vẹn**. Tự BÁC.

*(Ca `gap-owner-specifics` MỚI — nếu có — nằm ở Nhóm E vì bản-chất là "lời anh còn treo mà không có slot".)*

---

## Nhóm E — quyết-định treo bị chìm

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

**hứa:** `.claude/sessions/session-8/_end` dòng `errata:` — *"…· **enum thiếu class \"số đúng đơn-vị không-canonical\" → owner** · …"*. Đây là một **yêu-cầu MỞ RỘNG ENUM ĐÓNG** gửi owner. Luật gánh nó có **hai** lớp, cả hai đều tự-viết:
- `memory-budget.json` → `lead_self_audit._note`: *"CLOSED = a monitor may NOT invent a class; an unclassifiable finding is reported verbatim + **escalated to the owner to extend this list**"* — và tiền-lệ **S143** ghi ngay trong cùng note đó: `gap-incident-unrecorded` sinh ra **chính bằng đường này** (vai từ chối bịa class → escalate → owner mở enum 10→11).
- `.claude/commands/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 100% bề-mặt owner.** `grep "không-canonical|khong-canonical"` toàn repo ⇒ **đúng 4 file, 0 file nào là bề-mặt owner**:
| file | loại |
|---|---|
| `.claude/sessions/session-8/_end` | file **FROZEN** của phiên-logic **ĐÃ ĐÓNG** |
| `.claude/workflows/runs/2026-07-30-S162-bookend-close/close-synthesis.md` | artifact run-folder |
| `.claude/workflows/runs/2026-07-30-S162-bookend-close/sub-ring2-audit-close-S162.md` | artifact run-folder |
| `.claude/agent-memory/ring2-audit/MEMORY.md` | diary của **một vai**, không phải sổ owner |

Đếm trên 4 sổ owner: `docs/HANDOFF.md` **0** · `docs/STATUS.md` **0** · `docs/changelog/migration-todos.md` **0** · `.claude/governance/ACTIVE-MARKS.md` **0**. `.claude/WAL.md` = **RỖNG** (đã reset). ⇒ **không có số, không có dòng, không có cửa nào để anh trả lời.**

🔴 **Đòn bất-đối-xứng — loại sạch bào-chữa "closeout gấp nên bỏ cả dòng errata".** Cùng dòng `errata:` đó có **4 khoản**; 3 khoản kia đều là **ghi-sổ nội-bộ, KHÔNG cần owner** (tally `view-stale-count` thổi 1 · tổng L1 lệch **54 B** tự khai *"decision-impact NIL"* · A2 distill chạy trên trigger dương-giả). Khoản **DUY NHẤT** mang mũi tên **"→ owner"** lại là khoản **duy nhất không có nhà**. Thêm: cùng closeout đó lead **đúc MỚI 6 slot** (54)(55)(56)(57)(58)(59) ⇒ máy cấp-số **chạy tốt**; món này chỉ là không được đưa vào.

🔴 **Vì sao HIGH, không phải MED — thiệt hại đã ĐANG xảy ra, không phải rủi ro tương lai.** Chính `_end` khai nguyên-nhân của khoản errata thứ nhất: *"tally `view-stale-count` **thổi 1** (ring2 chứng FLAG-16 **ép-vừa-enum**…)"* — tức một finding **đã bị nhồi nhầm class** vì enum không có ô cho nó, và hậu quả là **một con số thống-kê sai đã được ghi vào sổ đếm**. Enum còn thiếu ⇒ mọi kỳ audit sau đều đứng trước cùng hai lựa chọn xấu: **ép-vừa** (làm bẩn tally, đúng thứ H24 sinh ra để chặn) hoặc **bỏ** (mất finding). Giá để đóng = **một câu của anh**. Giá đang trả = **mỗi kỳ một lần**.

🔴 **Và nơi nó đang sống là nơi tệ nhất có thể:** `_end` là file **FROZEN + ghi-một-lần** của phiên-logic 8 **đã khép**; nó **KHÔNG** nằm trong `tiep_reload.sources` (5 nguồn: STATUS · HANDOFF · WAL · `_mind-s-<N>` · `_context-s-<N>` — với `<N>`=**9**, mà session-9 chưa có `_mind`). ⇒ **không nghi-thức nào đọc `_end` của phiên trước**. Nó không bị xoá — nó chỉ **không bao giờ được mở lại**, khác kiểu chìm của WAL nhưng cùng kết quả.

**im:** sinh @closeout S162 (2026-07-30 ~15:11) → nay. **1 cửa-sổ** — ngắn, và đó chính là lý do bắt BÂY GIỜ còn rẻ (đúng khuôn FLAG-3@S162 đã ăn).
**resolve:** cấp **slot số mới (60)** trong khối `## 🔴 CHỜ ANH — ĐÁNH SỐ`, chép đủ 3 phần: (a) tên class đề-xuất **verbatim** *"số đúng đơn-vị không-canonical"* · (b) ca đẻ ra nó (ring2 FLAG-16 ép-vừa-enum ⇒ `view-stale-count` thổi 1) · (c) hai lối: anh **mở enum** (như S143) hay **bác** + chỉ chỗ nhồi. Hết flag khi `grep -c "không-canonical" docs/HANDOFF.md` ≥ 1.

## FLAG-3 — `gap-decision-sunk` — MED

**hứa:** `docs/HANDOFF.md:44` (bên trong khối 🧊 lineage S159→S160) — *"nhãn leaf Hdc `\"- Bảng cứng\"` **theo verbatim anh vẽ** (nghi `\"Bản cứng\"` — 1 lệnh đổi được, **chờ anh**)"*. Ba chữ *"chờ anh"* = tự-khai đây là quyết-định của owner. Luật gánh: cùng `session-end.md:129` (chờ-anh LUÔN đánh số).

**hiện:** **có chữ, không có số, và đang nằm trong khối bị hạ cấp.** `grep -o "Bảng cứng"` ⇒ `HANDOFF` **1** hit (dòng 44) · `STATUS` **1** hit (chỉ mô-tả tính-năng, không mang dấu chờ) · `migration-todos` **0** · `ACTIVE-MARKS` **0**. Hit HANDOFF duy nhất nằm dưới dòng 37 *"🧊 Segment trước (S159→S160) giữ nguyên bên dưới **làm lineage**"* — tức khối đã được tuyên là **lịch-sử**, không phải work-state. Khối `CHỜ ANH — ĐÁNH SỐ` (dòng 9-21) **không có** món này; "Chờ-anh phụ (không chặn)" (dòng 23) liệt 4 món khác, cũng **không có** nó.

🔴 **Đòn bất-đối-xứng:** cùng dòng 44 đó, hai nhãn owner khác (*"Trình ký Hợp đồng đổi thành Duyệt hợp đồng"*, *"ký cứng → Hợp đồng cứng"*) đã được **thi hành xong**. Chỉ nhãn thứ ba — nhãn **duy nhất còn treo** — là không có đường về anh.

🔸 **Không thổi phồng (MED):** verbatim của anh **được giữ đúng** (lead cố ý không tự sửa — đúng luật, không phải lỗi `gap-owner-specifics`); và nó **đã ship prod**, nên "im" nghĩa là **prod đang chạy nhãn mà chính lead nghi sai**, chứ không phải mất việc. Rủi ro thật = anh nhìn prod, thấy "Bảng cứng", tưởng đó là quyết-định đã chốt.

**im:** từ closeout S159→S160 (`1d3d167`, 07-29 chiều) → S162 → nay = **3 nhãn phiên / 2 cửa-sổ closeout**, và **đã trôi từ work-state xuống lineage** mà chưa lần nào được hỏi.
**resolve:** một dòng trong "Chờ-anh phụ (không chặn)" hoặc slot số: *"nhãn leaf Hợp-đồng-cứng: giữ `- Bảng cứng` (verbatim anh vẽ) hay đổi `- Bản cứng`?"*. Hết flag khi món này xuất hiện trong khối dòng 9-23.

**INFORM-E1 — `run.md` VẮNG khỏi run-folder bookend @open S163 (KHÔNG nâng FLAG).** `ls` cho thấy S163-bookend-open có 4 file `sub-*` nhưng **0 `run.md`**, trong khi S154-bookend-open · S159-bookend-open · S162-bookend-close **đều có**. Hệ-quả thuộc trục tao: **"Khối số máy ĐÓNG BĂNG"** mà mọi vai phải dùng chung (S162 để ở `run.md`) kỳ này chỉ sống trong **prompt spawn** — ephemeral. Bằng chứng nó vẫn được truyền: `sub-tooling-auditor-open-S163.md:8` chép *"Nền đã đo sẵn (KHÔNG chạy lại): governance-detectors TOTAL 44 flag (+6 INFORM)"*. ⇒ số CÓ, nhưng **không có bản gốc trên đĩa để đối chiếu khi 2 vai khai lệch** (đúng ca `_end` vừa ghi: *"tổng L1 khối đóng-băng lệch 54 B — lỗi run.md lead"*). Không nâng FLAG vì (i) phiên đang chạy, lead có thể ghi sau; (ii) tính toàn-vẹn run-folder là turf `harvest-curator` (H2). Bàn giao.

- [x] Nhóm E — xong: **2 FLAG** (**FLAG-2** `gap-decision-sunk` HIGH · **FLAG-3** `gap-decision-sunk` MED) + 1 INFORM.

🔴 **Đính-chính đánh-số (self-catch `partial-landing`):** bản nháp giữa chừng của file này gọi 2 flag trên là FLAG-3/FLAG-4 (vì lúc đó ứng-viên orphan còn mang số 2). Sau khi ứng-viên đó bị **TỰ BÁC → `RÚT-1`**, hệ số hiệu chốt lại là **FLAG-1 · FLAG-2 · FLAG-3 · FLAG-4**, `RÚT-1` KHÔNG mang số FLAG và KHÔNG vào TOTAL. Đã quét lại toàn file cho khớp cả heading, dòng tổng kết và checkbox mục 0 — đúng lớp lỗi *vá site-A quên site-B trong cùng file* mà H1 vừa nêu là hình-dạng chung của phiên này; báo cáo đi tố lỗi đó thì không được mắc nó.

---

## Nhóm F — memory nạp dưới hạn-mức

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

**hứa:** hai khoá tự-viết trong `memory-budget.json`, không phải suy diễn của tao —
- `crystallized_backfill._target_note`: *"the script … performs NO auto-pour — actual hot-feed fill is **em-main manual per-session from `source_order`** (gist → value-marked-archive → curated-RAG, dedup vs hot-load)"*. ⇒ nghĩa-vụ RÓT thuộc về **nghi-thức người**, máy chỉ lên kế-hoạch DRY.
- `token_governor.pct_print._note`: *"**Headroom > 0 WHILE high-value content still unloaded = under-fill (WRONG) → load more**; chưa headroom ONLY when high-value content truly exhausted. Headroom = a **FLAG**, NOT a saving target."*

**hiện:** cả hai điều-kiện của mệnh-đề "under-fill (WRONG)" **ĐỀU ĐÚNG hôm nay**, và không có bước rót nào tồn tại.

🔴 **Vế 1 — headroom > 0** (số tươi lead đã đo, **KHÔNG đo lại**): hotload **657.229 B** / 6 nguồn · tok RANGE **[164.307 .. 219.076]** · cap **380.000** · **`measured_headroom` = 160.924 tok** · target owner 210.000 ⇒ **headroom BINDS** (rót được = `min(target, headroom)` = **160.924**). Tức **42,3 % của cap** đang để trống.

🔴 **Vế 2 — "high-value content truly exhausted" là SAI, với biên rất rộng.** Đo kho đúng theo `source_order`:

| tầng `source_order` | vật thật trên đĩa |
|---|---|
| ① `archive/<period>.gist.md` | **20 file / 277.963 B** |
| ② value-marked archive verbatim | **31 file / 889.038 B** |
| ③ curated-RAG | (không đo — ngoài đĩa) |
| **tổng ①+②** | **1.167.001 B** ≈ **[333K..389K] tok** |

⇒ kho sẵn **gấp ~2,1–2,4 lần** headroom. Việc rót sẽ là **chọn-lọc theo giá-trị**, không phải "đã vét hết". Mệnh-đề miễn-trừ duy nhất mà config cho phép ⇒ **không áp dụng được**.

🔴 **Vế 3 — số bước RÓT = 0. Đo trên cả 4 lệnh nghi-thức:**

| lệnh | `source_order` | `pour`/`rót` | `backfill` | `%-print` |
|---|---|---|---|---|
| `session-start.md` | **0** | **0** | 3 | 3 |
| `session-end.md` | **0** | **0** | 5 | 5 |
| `tiep.md` | **0** | **0** | 0 | **0** |
| `pause.md` | **0** | **0** | 0 | 0 |

⇒ nửa **ĐO** và nửa **BÁO** đã cắm đủ (chạy DRY planner + %-print); riêng nửa **NẠP** chưa từng tồn tại. Đây là lý do headroom lớn **trông như dư dả** thay vì trông như lỗi — đúng thứ câu *"Headroom = a FLAG, NOT a saving target"* dựng lên để chặn.

🔴 **0-hit KÈM CONTROL-DƯƠNG (không phải "grep hỏng"):** `grep -oi source_order` trên 4 bề-mặt owner = **0 / 0 / 0 / 0** (HANDOFF · STATUS · ACTIVE-MARKS · migration-todos). Cùng phép grep, cùng file, các từ lân-cận: `backfill` = **13 / 53 / 0 / 3** · `crystallized` = **5 / 10 / 0 / 0** · `headroom` = **5 / 6 / 0 / 0**. ⇒ chủ-đề có mặt **dày đặc**, riêng **nghĩa-vụ rót** không ở đâu cả.

🔴 **Cái làm nó CHÌM chứ không chỉ thiếu — slot (26) đã rơi khỏi bảng liệt-kê mà không có dấu đóng.** Mục duy nhất từng chở câu hỏi này lên anh là **(26)** (`HANDOFF.md:87`, segment S152): *"⚑ `crystallized_backfill.target` 210000 > headroom đo tươi **190.437** tok ⇒ chỉ-báo underfill **hỏng mẫu-số**"*. Đo enumeration hai đầu:
- S153 (`HANDOFF.md:80`): *"slot cũ **(26)(29)(33)(34)** + (4)-(25) giữ nguyên"*.
- **HIỆN HÀNH** (`HANDOFF.md:21` "Slot cũ còn treo"): **(42)(43)(44) · (46) · (47) · (48) · (39) · (40) · (41)** — **(26)(29)(33)(34) và cả khối (4)-(25) VẮNG**.
- `grep "(26)"` toàn file ⇒ **0 dấu gạch-ngang-đóng, 0 `✅ ĐÓNG`**. Cùng vậy với **(29)**. *(Ngoại lệ công-bằng: (33) được **tái-cấp số** thành (44) "END-line-thành-luật" — không rơi, chỉ đổi tên; (34) ring4-scribe đã thi hành @S162. Nêu ra để không thổi phồng.)*

🔴 **Và khung của (26) đóng sai bản-chất — nên kể cả anh trả lời, gap vẫn còn.** (26) gọi đây là *"hỏng mẫu-số"* = vấn-đề **ĐO**. Nhưng `crystallized_backfill._note` ghi precondition *"expected_backfill opens ONLY when `target>0` AND `measured_headroom>0`"* — **cả hai đúng hôm nay** — và lượng rót là `min(target, headroom)`. Không mẫu-số nào hỏng; chỉ là **chưa ai rót**. Trả lời một câu hỏi đóng-khung sai sẽ đóng slot mà **không đóng lỗ**.

🔸 **Ranh với `lead-stale-auditor` (chống đếm đôi):** số **190.437** ở (26) nay là **160.924** ⇒ vế *"số cũ"* = `view-stale-count`, **turf vai-stale, tao không lấn**. Vế của tao là **nghĩa-vụ rót vắng mặt** + **slot rơi khỏi enumeration không dấu đóng**.

🔸 **Lặp lần thứ 3, nhưng datum MỚI:** tao nêu đúng mệnh-đề "0 bước rót" @S153 (đo trên 3 lệnh). Nay đo trên **4** lệnh ⇒ vẫn **0**, sau **10 nhãn phiên**. Cái mới = lần đầu có **đủ 3 số cùng lúc**: headroom **160.924 tok** · kho sẵn **1.167.001 B** · bước rót **0**. Trước đây chỉ có vế thứ ba.

**im:** (26) sinh @S152, biến khỏi bảng slot từ **S158** ⇒ **5 nhãn phiên** không ai hỏi; nghĩa-vụ rót chưa từng được cắm kể từ khi `target` bật lên 210.000 @S115.

**resolve:** (a) thêm **1 bước rót** vào `session-start §2.1.6`: đọc `source_order` → chọn value-gated tới `min(target, headroom)` → dedup vs hot-load → `%-print` **số THỰC RÓT** (không phải số kế-hoạch); **hoặc** (b) anh chốt `crystallized_backfill.target = 0` (tắt backfill có chủ đích) + ghi vết — lúc đó headroom > 0 hết là lỗi. Hết flag khi `grep -c source_order .claude/commands/session-start.md` ≥ 1 **HOẶC** `target` = 0. Kèm: **mở lại (26)** với khung đúng, hoặc đánh dấu đóng tường minh.

### Nhóm F — hai vế còn lại: **BÁC cả hai**

🔹 **6 vai KHÔNG có baseline `measured{}` → BÁC (lead ĐÃ surface).** Xác nhận sự-thật: `measured{}` có **17 row** / roster **23** ⇒ thiếu đúng **6** = `ctx-audit` · `ctx-curator` · `ctx-verifier` · `ring1-audit` · `ring2-audit` · `ring4-audit` (3 ctx + 3 ring). Nhưng `HANDOFF.md:33` NEXT em #7 đã ghi **nguyên văn**: *"Monthly drift-audit **2026-08-01 (2 ngày nữa)** + re-sync `measured{}` — 🔴 6 vai (3 ctx + 3 ring) **KHÔNG có baseline** ⇒ 'delta 0' với chúng = **chưa từng đo**"*. ⇒ đúng cảnh-báo, đúng ngày, đúng con số, **có mặt trên bề-mặt owner**. Không phải gap. BÁC.

🔹 **Slot (59) `tiep_reload` ½ sàn → BÁC (chính FLAG-4@S162 của tao, đã được cấp số).** `HANDOFF.md:19` slot **(59)** chép đủ: *"Khoá hẹn nạp nền **40-60K tok**, nhưng đo tươi ĐÚNG 5 nguồn đã khoanh = **71.492 B ⇒ ~20-24K tok ≈ ½ sàn**; đọc rộng nhất có thể vẫn chỉ ~35-41K. Tức **tuân 100% danh sách vẫn dưới hạn**, và `/tiep` không có bước %-print nên **không máy nào thấy**. Sửa mục tiêu xuống, hay mở rộng danh-sách nguồn?"* ⇒ resolve-condition của FLAG-4@S162 **đạt đủ**. BÁC.

🔸 **Ranh rõ với FLAG-4 kỳ này (chống đếm đôi):** (59) nói về khoá **`tiep_reload`** (nạp nền mỗi `/tiep`, sàn 40-60K). FLAG-4 kỳ này nói về khoá **`crystallized_backfill`** (rót vào hot-feed 380K, headroom 160.924). **Hai khoá khác nhau, hai con số khác nhau, hai nghi-thức khác nhau.** (59) KHÔNG phủ được cái này — và đó chính là lý do phải báo riêng.

- [x] **Nhóm F — xong: 1 FLAG (FLAG-4 `gap-underfill` HIGH) + 2 BÁC.**

---

## Nhóm G — orphan run-folder S159/S160 (owner CỐ Ý hoãn) → **0 FLAG**

🔴 **Không FLAG việc hoãn** (anh chọn *"bootstrap tiếp, bỏ mạch"* = owner chủ-động giữ ⇒ **INFORM-only** theo broadcast §2(2), đúng anti-pattern #3). Chỉ soi **đúng một câu hỏi**: nhãn carry có được mang sang không?

**ĐO:** `[carry:orphan-retro-harvest-s159]` **CÓ MẶT** trong khối `Carry @S162` (`HANDOFF.md:35`), đánh dấu *(MỚI)*; và món thứ ba đi kèm dưới dạng lệnh chữa `git mv review-synthesis-clone-s160.md → review-clone-s160-synthesis.md` trong NEXT em #2. ⇒ **nhãn không rơi. 0 FLAG.**

**INFORM-G1 — nhãn mô tả nợ ĐẮT HƠN thực tế (đo được, nhưng chưa đến kỳ để FLAG).** `harvest-curator` cùng phiên vừa **phân loại lại** trên đĩa (`sub-harvest-curator-open-S163.md:57,:85,:259-260`):

| folder | phân loại mới | chi phí thật |
|---|---|---|
| `S159-bookend-open` | **SYNTHESIS-orphan** (10/10 sub-file **đã có con-trỏ trong đúng sổ của vai sở hữu**) | **cuộn lại** một lớp — KHÔNG phải đọc 236 KB để gom |
| `S160-khkk-dryrun-plan` | **orphan do TÊN** (dương-giả) | **1 lệnh `git mv`** |
| `S159-tong-quan-pipeline-menu` | orphan thật | 1 file thật lọt sổ |

Chữ **"retro-harvest"** trong slug ngụ ý *đọc-và-gom-lại* ⇒ ước-lượng chi phí phiên sau **cao hơn thực tế**, và một nợ trông đắt thì dễ bị hoãn tiếp. 🔸 **Không nâng FLAG, hai lý do:** (i) phân-loại này **vừa sinh ra trong chính phiên này**, closeout chưa chạy — theo khuôn S153, đo sổ bền khi phiên đang mở là vô nghĩa; (ii) *"nhãn CÓ nhưng LỆCH"* nghiêng về turf `lead-stale-auditor`. Bàn giao. Đề nghị nhẹ cho closeout: tách slug thành `[carry:synthesis-roll-s159-s160]` (rẻ) và `[carry:harvest-orphan-s159-tongquan]` (thật).

- [x] **Nhóm G — xong: 0 FLAG + 1 INFORM.**

---

## 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 (*đo một lần, đếm hai lần*). Nhưng nêu thẳng: `[ok]` kỳ này là **Goodhart-sạch** — thước chỉ thấy 5 slug, trong đó **1 đã chết**, và 25 slug sống nằm ngoài tầm. Trục carry-age hiện **không thể fire** cho tới khi FLAG-1 được vá.
- **`gap-owner-specifics` = 0** — ca @S162 (chữ **CẢ**) đã resolve ở slot (55) với verbatim nguyên vẹn (Nhóm D). Rà thêm các verbatim owner còn sống trên HANDOFF: 4 nhãn GĐ (*"Trình ký Hợp đồng đổi thành Duyệt hợp đồng"* · *"ký cứng → Hợp đồng cứng"*) · *"Ồ đẹp đấy, vậy bỏ cái trên đi nhé"* · *"đang phát triển → cho hiển thị hết để mọi người góp ý, còn duyệt NCC thì cứ để như cũ"* · *"chỗ hợp đồng cứ từ từ"* · *"đã xong bước thứ 6 tức CEO duyệt rồi nhé…"* — **tất cả đều còn nguyên văn trong ngoặc kép** trên bề-mặt owner. Ca duy nhất còn treo (`- Bảng cứng`) đã bắt ở **FLAG-3** dưới class `gap-decision-sunk` (cái mất là **câu hỏi**, không phải **chữ của anh**).
- **`gap-incident-unrecorded` = 0 — nhưng ĐANG MỞ, và tao là nhân-chứng.** Sự-cố kỳ này: **chính lượt chạy của tao** chết #53 **hai lần**, lần đầu để lại `sub-lead-gap-open-S163.md` **1.302 B / ruột toàn heading** = sub-class **`skeleton-nấc-2`** (byte > 0 nên guard *"verify byte tăng"* **KHÔNG bắt được**). Chưa FLAG vì (i) sự-cố **CÓ vết**: file này git-tracked trong run-folder; (ii) closeout chưa chạy ⇒ chưa đến lúc đo sổ bền (khuôn S153). 🔴 **Bàn giao có điều kiện cho `@close`:** nếu closeout L9 kết thúc mà `.claude/auto-memory/feedback_agent_return_garble_recover.md` **không** ghi ca `skeleton-nấc-2` này thì **đủ điều-kiện FLAG** — sổ đó đang khai *"×66-cận-dưới **qua S158**"*, tức garble của S159–S162 **chưa nhập**, và mỗi kỳ im thêm là một tầng số cũ chồng lên. *(Vế "số trong sổ đã cũ" = `view-*` ⇒ turf `lead-stale-auditor`, tao không lấn — tao chỉ giữ vế "sự-cố MỚI chưa có sổ nào nhận".)*
- **`view-*` (5 class)** — ngoài turf, không đo.

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

1. **Slot (58) `_mind` — chu-kỳ thứ BA cùng một trục, nhưng KHÔNG phải flag của tao.** `lead-stale-auditor` cùng phiên đã bắt: (58) trỏ `_mind-s-8.md` — file **đóng băng** khi `session-9` mở — và số **89,06%** thật ra là **98,21%**; lead đã đính chính với anh. 🔴 **Ranh tường minh để 2 vai không đếm đôi:** đây là **số sai trên một tham-chiếu đã chết** = `view-stale-count`/`view-stale-status`, **turf vai-stale, tao KHÔNG tính vào TOTAL**. Vế thuộc trục tao — *"câu hỏi thiết-kế có được hỏi không"* — **đã được hỏi**: `HANDOFF.md:17` slot (58) nêu đủ 3 lựa chọn (*nâng khoá `mind_ctx_kb` · đổi luật nén · giữ nguyên*). ⇒ **BÁC**, không có gap. Chỉ ghi nhận hình-dạng: S159 (`_mind-s-7`) → S162 (`_mind-s-8`) → S163 = **3 lần hỏi anh bằng một CON SỐ đo trên file sắp đóng băng**, trong khi câu hỏi thiết-kế thì bất-biến.
2. **`.session-counter.json` — `signal_reset_done: false`, `signal_session: "S162"`.** Bộ quyết-định class của **L8-close** chưa được reset khi **L9-open** mở. Đơn-vị tally = **phiên-LOGIC** (2 lượt bookend = 1 quyết-định/class, `h24-signal-write.ps1` thi hành) ⇒ nếu kỳ này ghi đè lên bộ cũ mà chưa reset, tally có thể lệch. Tao **KHÔNG tự sửa** (lead = single-writer sổ này) và **KHÔNG tự tính lại**; chỉ nêu để lead kiểm trước khi ghi.
3. **Nhịp: KHÔNG overdue.** `counter=37` · `light_at_counter=36` ⇒ light **1/6** · `deep_at_counter=25` ⇒ deep **12/15**. Kỳ đo này chạy vì **hình B vô-điều-kiện** (`session-start §2.1.8(e)`), không phải trả nợ.
4. **`INFORM-E1`** (`run.md` vắng khỏi run-folder S163-bookend-open) — xem Nhóm E. `harvest-curator` độc-lập cũng ghi nhận và xếp **KHÔNG orphan** (in-progress).

## 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á 7 vòng lịch-sử vì lẫn đơn-vị; *cùng tên ≠ cùng đơn-vị*):
- Ô sổ `class_repeat.counts` dùng đơn-vị **consecutive-audit**. Giá-trị **đang có trên đĩa**: `gap-carry-dropped` **8** · `view-residual-asym` 6 · `view-stale-count` 6 · `view-stale-status` 3 · `gap-decision-sunk` **2** · `gap-underfill` **2** · `view-stale-header` 2 · `gap-owner-specifics` **1** · `view-stale-role-desc` 1 · `gap-carry-aged` **0** · `gap-incident-unrecorded` **0**.
- Đóng góp của **kỳ đo NÀY** (đơn-vị **trong-phiên**, 🔴 **CẤM chép đè** vào ô trên): `gap-carry-dropped` **fire** ⇒ 8→**9** · `gap-decision-sunk` **fire** (2 instance = **1** quyết-định/class) ⇒ 2→**3** · `gap-underfill` **fire** ⇒ 2→**3** · `gap-owner-specifics` **KHÔNG** fire ⇒ về **0** · `gap-carry-aged` không fire ⇒ **0** · `gap-incident-unrecorded` không fire ⇒ **0**.
- `jump_on_class_repeat` = **3** ⇒ sau kỳ này **3 class của tao chạm/vượt**: `gap-carry-dropped` **9** · `gap-decision-sunk` **3** · `gap-underfill` **3**. Hai class sau **vừa chạm ngưỡng lần đầu** kỳ này.
- 🔴 Đọc cho đúng: `gap-carry-dropped` **9 kỳ liên-tiếp** = tín-hiệu **NGHI-THỨC**, không phải chuỗi sự-cố lẻ — và kỳ này là kỳ đầu tiên nghi-thức **CÓ CHẠY** mà acceptance **vẫn trượt** (xem FLAG-1), tức nguyên-nhân đã dịch từ *"quên làm"* sang *"làm sai hình"*.

---

END lead-gap-open-S163 — VERDICT=GAP-NẶNG (3 HIGH + 1 MED) · 3 class chạm/vượt jump=3 · nghi-thức carry CHẠY-MÀ-TRƯỢT — TOTAL=4 FLAG — COVERAGE=7/7 nhóm

**Phân rã theo class (cho `jump_on_class_repeat`):**
- `gap-carry-dropped` **1** (HIGH) — FLAG-1
- `gap-decision-sunk` **2** (1 HIGH + 1 MED) — FLAG-2, FLAG-3
- `gap-underfill` **1** (HIGH) — FLAG-4
- `gap-carry-aged` **0** · `gap-owner-specifics` **0** · `gap-incident-unrecorded` **0** (honest-zero, có lý do từng cái ở trên)

**Ngoài TOTAL:** RÚT **1** (`RÚT-1` — ứng-viên `gap-carry-dropped` orphan, TỰ BÁC sau khi chạm đĩa) · BÁC **4** (Nhóm C blocker (54) · Nhóm D owner-specifics ca cũ · Nhóm F 6-vai-baseline · Nhóm F slot (59)) · INFORM **4**.
