# sub-lead-gap-close-S153 — H24 vai-GAP, bookend @close (hình B, vô-điều-kiện)

> phiên-logic 6 · counter 27 · INFORM-only / propose-only · KHÔNG Write ngoài file này · KHÔNG store_memory
> model self-report: **claude-opus-5** (Opus 5) — spawn kế-thừa default fleet.

## 0. NỀN ĐO — disk-touch TRƯỚC mọi phán-quyết (bài S121)

Phạm-vi phiên-logic 6 = sau `1b7386d` (wal flush cuối S152) → worktree.

Lượt đo **thứ nhất (15:34)**: `git diff --stat 1b7386d` = 48 file; `docs/HANDOFF.md` **KHÔNG xuất hiện** (0 commit + 0 worktree-M), `docs/STATUS.md` = **đúng 1 dòng**, `docs/changelog/sessions/` = **0 file mới**. ⇒ sổ bền của phiên đang TRẮNG, lead đang mở cửa closeout. Vì vậy phép đo của tao KHÔNG phải "chưa ghi" (vô-nghĩa lúc này) mà là: **cái gì sống DUY-NHẤT ở nơi sắp bị xoá (`§6.4` reset WAL), và cái gì không bước nghi-thức nào gánh.**

🔴 **KHAI THẬT — nền dịch dưới chân tao giữa lúc đo (và tao đã đo lại, không bảo-vệ số cũ):**

| mốc | sự-kiện đĩa | hệ-quả với flag của tao |
|---|---|---|
| 15:34 | HANDOFF 0 đổi · session-log 0 file | dựng tập kỳ-vọng |
| 15:40 | `docs/changelog/sessions/2026-07-26-1600-S153-ctx-adopt-3vai-rename.md` **sinh, 8.935B** | phải đo lại |
| 15:42 | `docs/HANDOFF.md` → **M** (segment S153 land) | **RÚT một FLAG đã viết** (xem §RETRACT) |

Bài tự-rút (bổ cho D-3@S152 *"phán-quyết phải dùng ĐÚNG tập-đo của mệnh-đề"*): ở @close, tập-đo **không tĩnh**. Mọi số dưới đây đo **sau 15:42** và ghi kèm giờ.

Nguồn cam-kết đã đọc: `.claude/WAL.md` · `bookend-open-synthesis.md §Disposition` (10 mục) + `§Owner-gated` · `ctx-adopt-synthesis.md` · `sub-lead-gap-S153.md` (@open của chính tao) · `docs/HANDOFF.md` (fresh) · `docs/STATUS.md` · session-log S153 (fresh) · `.claude/commands/session-end.md` §L.b · `memory-budget.json`.

---

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

**Nghi-thức RE-STAMP carry KHÔNG chạy: segment S153 đóng dấu 5 slug, 26 slug còn-mở bị thay bằng một CON-TRỎ văn-xuôi. Chuỗi tuổi của 3 carry đang FIRE đứt ngay tại đây — và đứt theo hướng làm máy IM.**

- **hứa ở:** `.claude/commands/session-end.md:125` §L.b(iv), nguyên văn: *"🔴 **Nghi-thức RE-STAMP carry (GAP THẬT, vá @S122):** 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."* Lý-lẽ ràng buộc ở `:126` (chính lead viết): *"carry-age detector đo **streak** = số segment LIÊN-TỤC mang cùng slug"*, kèm ca chứng `tra-bui-relogin` *"seg#2 nhắc ĐÚNG việc đó mà **không có dấu** ⇒ tuổi thật ≥2, máy đọc 1"*.
- **hiện (đo 15:43, `git diff -U0 docs/HANDOFF.md` → chỉ dòng THÊM = segment S153, 4.726B):**
  - `grep -o '\[carry:'` = **6 occurrence / 5 slug distinct**: `ctx-t9-dogfood` (×2) · `ring5-audit-gap` · `hmw-width-vs-roster` · `hmw-subfile-index-collision` · `adap-apply-2-thu`.
  - 26 slug kỳ S152 thay bằng văn-xuôi: *"**GIỮ re-stamp toàn bộ carry @S152** (26 slug — **con-trỏ** dòng Carry kỳ S152 bên dưới, **KHÔNG chép để tránh drift**)"* ⇒ **0 token `[carry:…]`**.
- **hệ-quả ĐO ĐƯỢC trên đúng 3 carry mà máy vừa báo FIRE:**

| slug | occurrence toàn HANDOFF | trong segment S153 | streak máy in @close (15:31) | streak sau segment |
|---|---|---|---|---|
| `hook-vs-budget-cap` | **18** | **0** | **13** | chuỗi ĐỨT ở segment mới nhất |
| `uat-s133-budget-freeze` | **12** | **0** | **10** | ĐỨT |
| `uat-s134-luyke` | **10** | **0** | **8** | ĐỨT |

- **🔴 vì sao HIGH — hỏng theo chiều IM, không theo chiều kêu:** streak đếm segment **liên-tục tính từ segment mới nhất**. Segment mới nhất (S153) không mang 3 slug ⇒ lần đo kế `13/10/8` **không tụt dần mà rơi về 0**, `gap-carry-aged` **thôi fire**. Bảng số phiên sau sẽ **trông y hệt "đã xử xong 3 carry quá-già"**. Đúng lớp `feedback_goodhart_leave_measurement_set` — *"flag-count giảm trông y hệt thành công ⇒ hỏi cái mất đi là dương-giả hay CHỨNG-NHÂN?"*: ở đây mất **chứng-nhân**, 3 carry vẫn còn nguyên trên đĩa (18/12/10 occurrence), chỉ mất khả-năng bị nhìn thấy.
- **thời-điểm đo của máy KHÔNG cứu được:** `instrument-detectors-close.txt` chạy **15:31**, segment S153 land **15:42** ⇒ số `13/10/8` đo trên HANDOFF **chưa có** segment mới. Máy sẽ không đo lại trong phiên này. ⇒ **không lớp nào bắt được, kể cả máy — đúng định-nghĩa catch-layer của tao.**
- **và nó xoá đúng thành-quả của 1 phiên trước:** @S151 lead vá segment-cut làm detector H24-2 hồi sinh; @open phiên NÀY chính tao ghi INFORM-1 *"thước ĐÃ NHÍCH ĐÚNG 1 NHỊP … vá segment-cut @S151 đang giữ và đang đo thật"*, chấm dứt chuỗi 3 phiên đứng chết ở `7/9/13`. Segment S153 **trả thước về trạng-thái vacuous** — cái mà `:127` gọi là *"đường DUY NHẤT còn lại"* vì `§Q3 no-retrofit` cấm đóng dấu vào segment cũ.
- **vì sao KHÔNG phải "owner/lead chủ-động gác":** lý-do tự khai là *"KHÔNG chép để tránh drift"* — một lý-do **hợp-lý về mặt tài-liệu** (chống lệch bản sao). Nhưng `§L.b(iv)` tồn-tại **chính vì** đánh-đổi đó đã được cân một lần rồi và chọn ngược: dấu carry **không phải bản sao nội-dung**, nó là **phiếu đo**. Lead vẫn tự khai đang tuân (*"GIỮ re-stamp toàn bộ carry"*) ⇒ đây là **tin mình đã làm**, không phải quyết-định bỏ ⇒ đúng ca cần vai-GAP.
- **đòn-bẩy bất-đối-xứng (chống đọc thành "chính-sách mới"):** trong **cùng** dòng Carry đó, 4 slug MỚI được ghi **đầy đủ token `[carry:…]`** kèm ruột. Nếu là chính-sách "dùng con-trỏ thay dấu" thì 4 slug mới cũng phải là con-trỏ. Hai cách ghi **cạnh nhau trong một dòng** ⇒ **bỏ sót**, không phải đổi luật.
- **im:** 0 nhãn phiên (sinh trong lượt closeout này) — nhưng cửa vá là **TRƯỚC** commit chốt; sau đó `no-retrofit` khoá lại.
- **resolve:** dòng Carry @S153 mang **26 token `[carry:<slug>]` tường-minh** (chép dấu, không chép ruột — ruột vẫn để ở kỳ S152). Hết flag khi `git diff -U0 docs/HANDOFF.md | grep -c '^\+.*\[carry:'` cho ≥ 30 occurrence, và `grep -o "carry:hook-vs-budget-cap"` trên dòng thêm ≥ 1.

---

## FLAG-2 — `gap-carry-dropped` — MED

**Disposition-queue 10 mục: 4 mục đã có nhà, 1 nửa — nhưng 5 mục rớt hẳn, và cả 5 đều thuộc đúng HAI lane (V2-stale + V1-tooling).**

- **hứa ở:** `bookend-open-synthesis.md:25` — *"Disposition queue @close (lead-fixable, trong khung — **chạy @closeout S153**)"*, 10 mục.
- **hiện (đo 15:43 trên HANDOFF+STATUS+session-log fresh; disk-touch từng mục, KHÔNG suy từ bảng — bài S121):**

| # | mục | phép đo | trạng-thái |
|---|---|---|---|
| 1 | STATUS:454 trio-consent-stale + H24-nhịp + 3-cite | 🔄 **LAND lúc 15:49** (STATUS 1 dòng → **9 dòng**): `consent-stale`/`consent retired` = **0**, `hình B` = **3 hit** ⇒ 2 vế chính xong. Dư: còn **1** cite số-dòng (`STATUS:448`) | ✔ (dư 1 cite) |
| 2 | STATUS:439 header S151→S153 | header nay ở `:441`, đọc tươi: *"CURRENT STATE (baseline S40 … **mốc gần nhất S151**)"* ⇒ **chưa bump**; 0 hit trong segment S153 | ❌ **rớt** |
| 3 | HANDOFF slot (29) → trỏ-canonical thay số | HANDOFF S153 ghi *"slot cũ (26)**(29)**(33)(34) … **giữ nguyên**"* ⇒ số `12/9/7` không đổi, và fix **không** vào NEXT-em | ❌ **rớt** |
| 4 | persona hình-B `lead-stale-auditor.md:51-54` + `lead-gap-auditor.md:44-46` | `git status` 2 file = **untouched**; `:51` vẫn `## Nhịp — mày KHÔNG chạy mỗi phiên`; `hình-B`/`M-1` = **0** trong segment S153 | ❌ **rớt** |
| 5 | HANDOFF hợp-nhất 2 khối NEXT-em + slot H7 | ④⑤ **đã bắc cầu** (NEXT-em @S153 ⑦ *"khi UAT nối lại: đọc kỳ S151 NEXT-em ④⑤"*) ✔; **⑦ + H7 KHÔNG**: `H7`=0 · `convention-only`=0 · `per-item-L1-presence`=**2, cả 2 vẫn ở segment kỳ-S151** | 🟡 2/3 |
| 6 | agents/README :222 tách heading 4 dòng **+** governance/README :5/:35 | README: +3 hàng `ctx-*` & 2 dòng roster ✔ nhưng `:216` bảng vẫn 1 heading gộp (**chưa tách enabled⟂used**); `docs/governance/README.md` **untouched**; `F-7` = **0** mọi bề-mặt | ❌ **rớt** |
| 7 | refine A1 + A2 **14 file** + A3 | NEXT-em @S153 ② ghi đủ *"A1 nén `_INDEX` cicd · A2 **14 file** COVERAGE-TOKENS [audit T2 sửa từ 13] · A3 luật cấm-neo-mtime + audit-escalate-3"* | ✔ có nhà |
| 8 | C11(b) filter `(sub\|harness)-*` | NEXT-em @S153 ③ ghi đủ + lý-do *"đóng điểm mù trio-artifact"* | ✔ có nhà |
| 9 | baseline corruption S154 | NEXT-em @S153 ⑥ *"baseline corruption S154 theo bản H2 @close (m#20 mang mệnh-đề-loại-trừ)"* | ✔ có nhà |
| 10 | email hub 2 datum | outbox `…ctx-adopt-executed-va-datum.md` 3.915B: `return-only` **×2 ✔**; `C11(b)`/`trio-blind` = **0** (nhưng C11(b) đã thành NEXT-em ③) | 🟡 nửa |

⇒ **5 ❌ · 2 🟡 · 3 ✔** (mục 5 tính 🟡 vì ④⑤ đã bắc cầu).
- **🔴 phát-hiện đắt hơn cái bảng — RỚT CÓ CẤU-TRÚC, không rải rác:** 5 mục rớt = **1,2,3,4,6**; 3 mục có nhà = **7,8,9**. Xếp theo **lane sinh ra chúng**: 7/8/9 ← lane **trio (refine/audit) + harvest**; 1/2/3/4/6 ← lane **`lead-stale-auditor` (V2)** và **`tooling-auditor` F-6/F-7 (V1)**. ⇒ **100% mục rớt thuộc 2 lane, 100% mục sống thuộc 2 lane khác** — phân-hoạch sạch, không phải xác-suất. Cùng dấu-hiệu: `M-1` (THÁCH-CLEAN MISS của ring2, hạng nặng nhất phiên) = **0 hit** trong segment S153 dù có 3 hit ở segment cũ.
- **vì sao vẫn chỉ MED (không tô đậm quá):** NEXT-em @S153 ② có **cửa điều-kiện tường-minh** *"disposition-queue @open **còn lại nếu bookend @close nêu**"* ⇒ cơ-chế **được thiết-kế để tao gọi tên**, và việc gọi tên chính là resolve. Tao KHÔNG đọc đó thành "lead bỏ"; tao đọc đúng: **cửa mở nhưng rỗng cho tới khi có danh-sách.** Đây là ca nghi-thức hoạt-động, không phải ca vỡ.
- **im:** 0 nhãn phiên; cửa DUY NHẤT — hình B chỉ soi @open/@close, phiên sau không ai đi đọc lại `runs/2026-07-26-S153-bookend-open/`. (Bài GAP-3@S146: *"con-trỏ sang runs/ ⇒ verdict chìm"*.)
- **resolve:** 5 mục `1,2,3,4,6` + vế `⑦/H7` của mục 5 nhận **một** trong: dòng trong NEXT-em @S153, `[carry:<slug>]`, hoặc `🧊/✅` disposition tường-minh (làm/bác/hoãn). Hết flag khi `grep -c` cho `consent-stale|STATUS:439|hình-B|F-7` trên segment thêm của HANDOFF > 0. 🔸 **Ranh turf:** *văn-bản đang lệch* ở mục 1/2/3 = `view-stale-*` ⇒ **`lead-stale-auditor`**; phần của tao **chỉ là** cam-kết-vá bị bỏ rơi.

---

## RETRACT — 1 FLAG tao đã viết rồi TỰ RÚT (đo lại sau 15:42)

**`gap-decision-sunk` cho slot chờ-anh — RÚT HẲN, không hạ mức.** Số cũ (đo 15:38, trước khi 2 sổ land): `(35)(36)(37)(39)` = **0 hit / 4 bề-mặt owner**, `(41)` = **0 hit / mọi nơi kể cả WAL** ⇒ tao đã viết flag HIGH kèm khuôn "repeat cấu-trúc lần 5".

Đo lại **15:43**, cả hai sổ bền đã mang trọn:

| slot | HANDOFF `NEXT anh @S153` | session-log §7 |
|---|---|---|
| (35)(36)(37) | ✔ *"veto-window 3 quyết còn lại (trần `mind_ctx_kb`=32KB · máy-$0-mỗi-pause · nạp-nền-rút-gọn `tiep_reload`) — không veto = giữ"* | ✔ |
| (38) | ✔ `~~(38)~~ ✅ anh đã VETO + chốt hub-form 3-vai @S153` | ✔ |
| (39) | ✔ RAG Qdrant DOWN + **3 lựa-chọn cụ-thể** cho anh | ✔ |
| (40) | ✔ *"cap 20 < roster 23 ⇒ LOUD-skip 3 lane cuối — nâng cap hay giữ?"* | ✔ |
| **(41)** | ✔ **`(41) 🆕`** *"`ring5-audit`: build SE-form ngay hay chờ nhịp adopt chung với VIPIX?"* | ✔ §7 + **bảng 5 vòng §4** đánh dấu `❌ gap → slot (41)` |

⇒ 6/6 slot có **số** (đúng `session-end.md:280` *"chờ-anh — 🔢 BẮT BUỘC ĐÁNH SỐ"*) và có nhà bền. **Không có gì chìm.** Ghi lại vụ này làm vết: nếu tao trả verdict ở 15:40 thì đã **bác oan** một closeout làm đúng — cùng lớp lỗi D-3@S152 (tráo tập-đo), lần này chiều thời-gian thay vì chiều phạm-vi. Kết luận phương-pháp: **@close phải đo lại ngay trước khi kết, và ghi giờ đo.**

🔸 Dư-lượng **INFORM (không phải flag):** cả 6 slot chưa có mặt trên `ACTIVE-MARKS.md`/`migration-todos.md`; đường anh gặp chúng là HANDOFF-segment-mới — **nằm trong** `tiep_reload.sources` (*"docs/HANDOFF.md :: segment Last-updated MỚI NHẤT"*) ⇒ **đủ để không chìm**. Nêu để khỏi ai tưởng tao chưa soi.

---

## @OPEN 3 FLAG — disposition (đo 15:43)

| @open | phép đo lại | verdict |
|---|---|---|
| **FLAG-1** `gap-carry-dropped` (2 khối NEXT-em song song; ④⑤⑦) | khối `:8` kỳ-S152 được **thay** bằng NEXT-em @S153; **④⑤ bắc cầu** tường-minh (⑦ của khối mới: *"khi UAT nối lại: đọc kỳ S151 NEXT-em ④⑤"*); **⑦ per-item-L1-presence vẫn 2 hit, cả 2 ở segment kỳ-S151**, 0 hit segment S153 | 🟡 **2/3 xử** — vế ⑦ chưa |
| **FLAG-2** `gap-decision-sunk` (H7 trio → owner) | `H7` = **0** · `convention-only` = **0** trên HANDOFF *và* session-log S153 *và* STATUS. NEXT anh @S153 có (35)-(41) nhưng **không có slot nào cho H7** | ❌ **CHƯA xử** — điều-kiện resolve tao đặt @open (*"H7 có slot đánh số trên NEXT anh"*) **không đạt** |
| **FLAG-3** `gap-underfill` (target 210K, 0 bước rót) | vế A owner-held slot **(26) giữ nguyên** ✔ hợp-lệ; vế B: `grep -c "source_order\|đã rót\|rót backfill\|poured"` trên `session-start.md`+`session-end.md`+`tiep.md` = **0/0/0** ⇒ **vẫn không tồn-tại bước rót** | ❌ **CHƯA xử** (vế B) |

🔴 **KHÔNG đếm lại 2 flag chưa-xử thành flag @close.** Luật `session-end.md:115`: *"đơn-vị tally = phiên-LOGIC … 2 lượt bookend cùng phiên = MỘT quyết định/class"*. `gap-decision-sunk` và `gap-underfill` **đã fire @open** ⇒ tally class đã ghi; báo lại như flag mới sẽ **phồng số**. Nêu ở đây để cửa resolve không tự đóng im lặng.

---

## INFORM

**I-1 — carry-age: ĐỌC detector, KHÔNG tính lại.** Máy @close (`instrument-detectors-close.txt`, 15:31): FIRE **3** — `hook-vs-budget-cap` **13** · `uat-s133-budget-freeze` **10** · `uat-s134-luyke` **8**; cả 3 owner-held (slot (29)). ⇒ INFORM theo trục "owner đang giữ". 🔴 Nhưng số này **đo trước 15:42** và FLAG-1 chỉ ra chuỗi sẽ đứt ⇒ **đừng đọc `13/10/8` như số sẽ còn đó phiên sau**. Ranh: slot (29) ghi `12/9/7` vs máy `13/10/8` = số CÓ nhưng LỆCH ⇒ **`lead-stale-auditor`**, không lấn.

**I-2 — số-học carry: 43 slug distinct / 222 occurrence** toàn HANDOFF (đo `grep -o`, KHÔNG `grep -c` — bẫy mega-line). 39 @S153-open → 43 = **+4 slug mới**, khớp đúng 4 slug lead khai. **0 slug biến mất im lặng** (khác S143). Trục *"có mặt hay không"* SẠCH; trục *"có được đóng dấu lại hay không"* = FLAG-1.

**I-3 — `gap-incident-unrecorded` = 0, và ghi rõ vì sao BÁC.** 3 ứng-viên đều **có** vết bền trong session-log S153 (15:40): (a) **#53 = 14-cận-dưới** phân-rã `8 @open + 4 arc ctx + 2 @close` — **bao gồm cả 2 lượt garble của chính tao**, kèm 3 đường recover; (b) **residual-write `test-specialist` tự-compact 22.140→13.189B không được giao** → verify A7 28/28 pointer + entry S133/S134 nguyên ⇒ `ACCEPT verified-KEPT` (tiền-lệ AS-10); (c) 4 dòng `wf: … run=<id>` §6 phủ **3/3** run-folder sinh trong phiên (đúng Sàn-5 `session-end.md:107` *"session-log = sổ cái cho hậu-kiểm"*). ⇒ BÁC cả 3. 🔸 Ranh: `.claude/auto-memory/feedback_agent_return_garble_recover.md` mtime **01:50** (kỳ S152) ⇒ tally ở đó **chưa** cộng 14 — nhưng đó là **số cũ ⇒ `view-*` turf**, KHÔNG phải turf tao (ranh đã ghi từ S143/S150). `docs/governance/error-ledger.md` **untouched** toàn phiên; không nêu thành flag vì 0 sự-cố nào của phiên này đạt ngưỡng ledger theo phân-loại của chính lead (đều recovered, 0 mất dữ liệu).

**I-4 — đóng-băng bề-mặt-đo: BÁC ứng-viên flag của chính tao.** Ban đầu tao nghi "ghi HANDOFF/STATUS **sau** khi 8 instrument đã chạy" là vi-phạm. Đọc `session-end.md:68` (C1): *"KHÔNG ghi vào bề-mặt-đo … **việc ghi phát sinh giữa chừng → xếp hàng SAU verdict**"* ⇒ ghi sau verdict là **đúng luật**, không phải lỗi. Nêu vì nó là tiền-đề của FLAG-1 (máy không đo lại) — **cùng một sự-thật, hai kết-luận khác nhau**, và chỉ một cái là lỗi.

---

## Honest-zero (soi rồi, KHÔNG fire)

- **`gap-owner-specifics` = 0 — trục này SẠCH, đo từng lời anh chứ không cảm-tính:**
  **(a)** pipeline *"/check-email + /adap-apply · fable-real invest → spec+checklist · hmw Opus 5 MAX xử lý"* → session-log §1 chép **trọn chuỗi 3 chặng đúng thứ tự** + số cụ-thể (`se=0 · all=2 thư 07-25` · `SPEC-READY 9 task / 24 checklist-item` · `hmw Opus 5 MAX 2 đợt`) + **3 đề-KHÁC của engine được ACCEPT** ghi riêng, kèm dấu **`[sau bị T10 đảo]`** ×2 ⇒ giữ cả vế bị lật, không làm đẹp lịch-sử.
  **(b)** *"còn thiếu 2 vai ctx?"* → AskUser *"Build đủ 3 vai như hub"*: session-log §0 hàng-4 chép **cả câu hỏi lẫn câu chốt nguyên văn**; **nhãn quyết-định ĐÚNG** — §1 phân-biệt tường-minh *"(38) **sau đó bị anh VETO thật** ⇒ nhãn (38) = **owner chốt THẬT**"* vs (35)(36)(37) = *"OWNER-DELEGATED → ENGINE-PROPOSED → LEAD-DECIDED"*; HANDOFF khớp (`~~(38)~~ ✅ anh đã VETO + chốt`). Đây đúng nghĩa-vụ `memory-budget.json:14` *"GHI PHAN BIET NAY LA BAT BUOC"* — **chấp-hành 3/3**, khác hẳn 1/3 mà tao đo @S150.
  **(c)** *"kiểm lại label 5 vòng → đặt tên đúng giống hub và sisters để dễ audit"* — **cả HAI vế**, kể cả vế dễ mất: vế *"đặt tên"* = rename 2 vai + sweep; vế *"kiểm lại label 5 vòng"* = **bảng §4 so 3 nhà × 6 hàng (V1-V5 + vòng Ctx)** — và chính bảng đó **sinh ra phát-hiện (41)**. Ghi cả chuẩn chọn (*"hub-form khi hub ≠ sister"*, tiền-lệ S149), cả **nghịch-lý tự-bất-lợi** (*"VIPIX gọi vai-2 ĐÚNG là `ctx-reload` — trùng tên khai-sinh SE — vẫn theo hub"*), cả **bẫy đếm của chính lead** (regex `]` trong comment ⇒ 18 vs 23). ⇒ **0 thu-hẹp phạm-vi** — ngược hẳn ca FLAG-4@S148 (`session-model` mất vế định-nghĩa).
- **M9 seed 3 vai ctx = ĐỦ, BÁC ứng-viên flag `gap-underfill`.** Đo đĩa: `ctx-audit/MEMORY.md` **3.288B** · `ctx-curator` **2.940B** · `ctx-verifier` **2.663B**; `ls -d .claude/agent-memory/*/` = **23** = roster 23 (verify `VALID_ROLES` chứa `'ctx-audit'`:41 + `'ctx-curator','ctx-verifier'`:42 — chạm đĩa, không tin bảng). session-log §5 khai đúng *"dir 20→23 khớp roster"*. **0 vai câm.**
- **Sàn-5 = 3/3 phủ** (I-3c) ⇒ không fire trục "run dựng xong mà 0 marker".
- **Tập kỳ-vọng đã dựng TRƯỚC khi so** (chống anti-pattern #1): 10 mục disposition + 5 `[ ]`/`next:` của WAL + 3 lời anh + 6 slot + 3 flag @open + 26 carry = **53 mục kỳ-vọng**, mỗi mục có 1 phép đo đĩa ở trên. Không mục nào bỏ trống.

---

## Tally cho `jump_on_class_repeat` (SỐ ĐO, không phải đề-nghị)

Đơn-vị = **phiên-LOGIC 6** (@open + @close = MỘT quyết-định/class, `session-end.md:115`). Đĩa trước phiên: `gap-carry-dropped 6` · 5 class kia `0`.

| class | trước | @open | @close | phiên-logic 6 |
|---|---|---|---|---|
| `gap-carry-dropped` | 6 | fire | **fire ×2** (FLAG-1, FLAG-2) | **7** — tính **1 lần** |
| `gap-decision-sunk` | 0 | fire | không (RETRACT) | **1** |
| `gap-underfill` | 0 | fire | không (đã tính @open) | **1** |
| `gap-owner-specifics` · `gap-carry-aged` · `gap-incident-unrecorded` | 0 | 0 | 0 | **0** |

⇒ **1 class chạm/vượt `jump=3`** (`gap-carry-dropped` = 7). Anh **đã phân-xử** trục này @S152 slot (30) *"ĐỂ-NGUYÊN-theo-nhịp, deep kế ~counter 40"* (nay 27) ⇒ tao **chỉ báo số, KHÔNG đề-nghị kéo nhịp**.

<!-- END sub-lead-gap-close-S153 · TOTAL=2 FLAG -->
