# sub-lead-gap-auditor — V2 @open S182 (H24 soi CÁI BỊ THIẾU)

**VERDICT: `LEAD-GAP: 6 FLAG`**
HEAD `936d1aed` · counter 56 · propose-only, 0 Write/Edit/commit, 0 RAG-write.

> ⚠️ **#53 datum:** first-return garble (*"Now let me verify which dropped slugs are genuinely STILL OPEN, with disk measurement."*). Recover bằng SendMessage-resume. **Mất 0 byte.**

---

## FLAG-1 `[gap-carry-dropped]` — **HIGH** — khối re-stamp @S181 (`HANDOFF:9`, 23 slug) tự tuyên là tập-mở đầy đủ, nhưng ≥**2 slug CÒN SỐNG bị bỏ hẳn**

**`[carry:hook-vs-budget-cap]`** — TỪNG tồn tại: `HANDOFF:217` khối *"Carry MỞ re-stamp @S151 — **đủ MỌI slug còn mở**"* · `:218` máy H24-2 đo tươi @S152 **streak = 12** (cao nhất mọi slug, `ring2` re-implement CONFIRMED) · `:213` slot **(29)** *"3 carry-age 12/9/7 — xử hay gia-hạn?"*.
**Đo tươi NAY:** **13/28** tệp `agent-memory/*/MEMORY.md` vượt hook-cap 17.100 B; **3** vượt cả autoinject-cap 25.600 (`ring2-audit` 29.582 · `tooling-auditor` 29.429 · `lead-stale-auditor` 27.658) ⇒ câu hỏi thiết-kế đang treo, và nay **TỆ HƠN** lúc nêu chứ không tự khỏi. Probe nền cũng in `tran-bo-nho 3 over-cap`. **0 hit** trên `WAL.md` (rỗng 182 B) · `STATUS.md` · `error-ledger.md` · `migration-todos.md` · `so-yeu-cau-chu-du-an.md`.

**`[carry:carry-age-vacuous]`** — `HANDOFF:297` *"carry-age structural — detector 0-fire vì tiering<M=6: hạ M hay non-tiered-ledger?"*, tái-stamp qua 8 khối (`:217 :222 :239 :243 :247 :252 :256 :260 :264 :277`, n=11 dòng). Chưa ai trả lời, và **FLAG-2 dưới chứng minh nó vẫn đúng 100%**.

🔴 **Loại được bào-chữa bằng chính DIFF, không bằng lý lẽ:** đợt vá @S179 (`HANDOFF:78-79`) đã với tay qua segment cũ vớt lại **7 slug**, gồm **2/3** slug của slot (29) (`uat-s133-budget-freeze`, `uat-s134-luyke`) — nhưng **bỏ đúng cái thứ 3**, `hook-vs-budget-cap`, cái có streak **CAO NHẤT (12)**. Không phải "bỏ cả khối vì gấp"; là bỏ **có chọn lọc**, trúng món nặng nhất.

**Tự BÁC 4 nghi-vấn của chính vai** (kỷ-luật S179 *"sổ nói dối theo hướng BI QUAN"*): `[carry:mind-tran-nen-moi-cua]` + `[carry:adap-apply-2-thu]` vắng là **ĐÚNG** (`:84` đóng có bằng-chứng đĩa) · `[carry:ctx-verifier-no-self-append]` vắng **ĐÚNG** (đổi tên @S170) · `[carry:hmw-width-vs-roster]` vắng **ĐÚNG** (đóng @S181). Cũng KHÔNG flag `retier-megaline` (dòng dài nhất nay `STATUS:478` = 17.902 ch < cap Read 25K; tiền-đề "55.447 ch" hết đúng), `session-model-adopt`, `restart-s124`, `h24-2vai-chua-chay`.

**Hệ-quả:** khối re-stamp là nghi-thức DUY NHẤT chống carry-rơi, mà nó đang **ban phước cho chính chỗ rơi** — lần thứ **5** liên tiếp. `class_repeat.gap-carry-dropped = 12` = **4× ngưỡng jump**, và ngưỡng đó **không máy nào đọc** ⇒ đếm tới bao nhiêu cũng không đổi hành-vi.

## FLAG-2 `[gap-carry-aged]` — **HIGH** — 🔴 số `gap-carry-aged = 0` là **số 0 CHẾ TẠO**, không phải honest-zero

Port **NGUYÊN VĂN** regex `scripts/governance-detectors.ps1:892` `(?m)^\*\*(?:[^\x00-\x7F]+\s*)?NEXT\s+(?:anh|em)\b` sang Python trên `HANDOFF.md` @`936d1aed` ⇒ `marks.Count = 25`, **`marks[0]` = HANDOFF:179**.

**Vùng câm L1–178 = 42.606 B / 186.729 B = 22,8%** (S173 đo 31.698 B/L1-129; S180 đo 21,3% — **đơn-điệu TĂNG mỗi closeout**, vì closeout mới prepend segment kiểu **heading** `### 🔵 NEXT em @S179` mà regex neo `^\*\*` không bắt).

Vùng câm nuốt **91 occurrence / 28 slug**, **gồm TRỌN khối re-stamp `:9` (23 slug)**. `carryLines[0]` — tập DUY NHẤT giữ được streak sống — là **hoá-thạch kỷ S159–S160**, đúng **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). **2/5 đã ĐÓNG**. Mọi streak < M=6 ⇒ máy in `[ok]` toàn bộ ⇒ **0 fire, vĩnh viễn**.

`governance-detectors.ps1` commit cuối `febe6b16` **2026-07-29** — **9 ngày không ai chạm** kể từ khi lỗi được chứng lần đầu.

🔴 **Cái THIẾU (đúng trục vai này):** lỗi máy này **không có `[carry:*]` slug nào**, và bị **đóng ké** vào slot đã gạch — `HANDOFF:58` nằm dưới `~~(70)~~ ✅ ĐÓNG @S179` ⇒ mọi lượt quét "slot còn mở" **không thấy nó**. Trên 6 sổ bền: `H24-2` chỉ 4 hit ở HANDOFF (văn kể chuyện), **0 hit** ở `WAL`/`error-ledger`/`migration-todos`/`so-yeu-cau`; control-dương: `S181` ra 4/3/8/16 hit ⇒ grep sống.

🔸 `HANDOFF:58` còn ghi *"HANDOFF:90 ⇒ L1-89 · 12 slug"* — thực đo nay **L1-178 · 28 slug**, số cũ đọc thành **nhẹ gấp đôi** (trục `view-*`, vai không lấn).

**Hệ-quả — mù KÉP:** FLAG-1 làm carry rơi khỏi sổ, FLAG-2 làm máy không thấy carry nào già. Ô `gap-carry-aged = 0` sẽ được đọc thành "lành", và **càng lâu càng câm hơn** vì vùng mù tự nới mỗi phiên.
**Resolve:** neo regex bắt **CẢ 3 dạng** `**` / `##` / `###` (bài `ring2` @S173: gốc là **anchor**, không phải chỉ-số `[0]`), rồi đo lại `marks[0]` phải = `HANDOFF:6-9`.

## FLAG-3 `[gap-decision-sunk]` — **MED-HIGH** — nợ `OVERDUE:deep` trôi thêm 1 nhịp mà bề mặt vẫn in số cũ

`HANDOFF:11` đã viết bằng chữ mạnh nhất cả file: *"Cổng ĐÃ kêu, máy ĐÃ in, lead ĐÃ chép 2 sổ — rồi vẫn hoãn. **Cổng kêu mà không đổi hành-vi = cổng không có răng.**"*
**Đo tươi:** `.session-counter.json` → `counter = 56`, `deep_at_counter = 40` ⇒ **56 − 40 = 16/15**; `light_at = 53` ⇒ 3/6. Nhưng `HANDOFF:7` (dòng hành-động phiên này) vẫn viết **15/15**.

**Cái THIẾU:** chẩn-đoán đúng bệnh rồi **không sinh ra thay đổi hành-vi nào** — slug vẫn ở hàng NEXT-em cạnh "3 tệp over-cap", **không** lên `CHỜ ANH:6`, **không** mốc, **không** điều-kiện hết-hạn. Trên 6 sổ bền: `h24-deep-overdue` chỉ có ở `HANDOFF` (2 hit) + `_end` session-12; **0 hit** ở `STATUS`/`error-ledger`/`migration-todos`/`ACTIVE-MARKS`.

**Hệ-quả:** deep-sweep là cổng DUY NHẤT còn răng theo hình-B (`light_every` nay stats-only). 16/15 = quá hạn hơn **một chu-kỳ light trọn vẹn**. **Ca tự-chứng:** dòng `:11` chẩn-đoán đúng bệnh của chính nó rồi vẫn tái phát ngay nhịp kế.

## FLAG-4 `[gap-owner-specifics]` — **MED** — bảng VERBATIM lời anh bị chốt ở phụ lục; **8 câu P1-P8 chưa vào sổ dưới bất kỳ dạng nào**

`HANDOFF:16` tự khai lý-do sinh ra bảng: *"vá `lead-gap-auditor` FLAG-4; trước đó specifics chỉ sống trong WAL, mà WAL reset trắng ở closeout ⇒ suýt mất"*. Câu (4) `HANDOFF:6` = **VK-5**: *nhập bảng vào khối chính sổ, hay giữ phụ lục?*

⚠️ Anh trả **"1,2,3,4 → OK"**; commit `936d1aed` tự khai đọc thành *"lấy nhánh AN TOÀN theo bậc-2: giữ phụ lục"*. Nhưng (4) là câu **chọn A-hay-B**, không phải yes/no — **"OK" trên câu chọn không chỉ ra nhánh nào**. Lead có tự khai điều này trong commit message (*"Anh muốn nhánh kia thì 1 chữ là đổi"*) — kỷ-luật đúng. Nhưng **hệ-quả đo được**: `so-yeu-cau-chu-du-an.md` giữ **0 dòng nguyên-văn** của bảng `:16-27`.

🔴 **Nặng hơn:** **8 câu P1-P8 @S181** — trong đó **P4 là lệnh đổi số THẬT** (`hmw_width.cap` 20→30, `memory-budget.json:_cap_raised_S181` ghi *"chu du an noi dut khoat 'nang cap'"*) — nguyên-văn P1-P8 **không có nhà nào** ngoài HANDOFF/commit-message. Trong khi chính `_cap_raised_S181` ghi bài học ngược: @S179 anh nói "OK" mà lead tự thu-hẹp thành *"CHƯA phải lệnh đổi số"*.

**Hệ-quả:** đúng cơ-chế mà bảng `:16-27` được dựng để chặn — chữ của anh sống ở nơi bị nén/xoay vòng, sổ REQUEST thì trống. Lần thứ **2** cùng lớp trong 3 phiên; `class_repeat.gap-owner-specifics = 5`.

## FLAG-5 `[gap-decision-sunk]` — **MED** — slot **(67)** *"CHỈ ANH PHÁN"* chìm dần theo tiering, 0 lần surface

`HANDOFF:48-51`: người **SOẠN** có được upload file-khi-duyệt không. Đo prod: `test.drafter@` (Drafter+Procurement) **qua được** `[Authorize(Policy="KeHoachKyKet.Update")]` ở `POST /api/contract-signing-plans/{id}/approval-attachments`. Chữ anh nguyên văn (ảnh 2 @S171): *"File do **người duyệt** tải lên trong quá trình duyệt"* — discriminator ở **CHỦ THỂ**, không ở **BƯỚC** ⇒ *"policy hiện **rộng hơn ý định**"*.

**Đo tươi:** khối chứa (67) mang tiêu-đề `## 🧊 CHỜ ANH @S172` — 🧊 = lineage/đóng băng; hàng xóm (68)(69)(70)(71) đều `~~gạch~~ ✅ ĐÓNG`. S181 có **8 lượt owner** + phiên này 4 câu — **0 lượt** dùng cho (67). `CHỜ ANH:6` segment mới **không nhắc**. Slot (67) **0 hit** trên `STATUS`/`WAL`/`migration-todos`/`error-ledger`; control-dương `KeHoachKyKet` = 8 hit ở `CLAUDE.md`.

**Hệ-quả:** món **DUY NHẤT** mang nhãn "CHỈ ANH PHÁN" **và** đã có đo prod chứng minh lỗ authz thật. Im **9 nhãn phiên** (S172→S181), nằm dưới heading 🧊 giữa 4 dòng đã gạch ⇒ mắt lướt đọc thành *"khối này xong rồi"*. Theo tiering `HANDOFF:3`, segment S172 sắp bị archive ⇒ **chìm luôn**.

## FLAG-6 `[gap-carry-dropped]` — **MED** — 2 ý `{treo-chờ-anh}`/`{đang-cãi}` trong `_mind-s-12.md` không được carry sang phiên-logic 13

**Đo tươi bàn giao:** `session-12/_end:3` chỉ carry **3 slug** · `:4` chỉ 4 câu pending · `session-13/_context-s-13.md` = scaffold trắng · `WAL.md` rỗng 182 B.

🔸 **Tự BÁC một phần:** **P5/P7/P8 KHÔNG còn là gap** — `HANDOFF:5` xác nhận *"Anh chốt 8 câu P1-P8"* ⇒ đã trả lời (đo tiền-đề trước khi leo thang, bài `HANDOFF:73`).

**Cái THẬT SỰ rơi — 2 món:**
- **(a) 7 baseline `-Expect`** (`_mind-s-12.md:115`, nhãn `{đang-cãi}`): giữ-tripwire-thêm-ngày ⟂ tách-file-dữ-liệu, tự khai *"cả hai đều đổi thiết kế máy governance"*. Chuỗi `-Expect` **0 hit** trên HANDOFF+STATUS+WAL+error-ledger+migration-todos; control-dương `baseline` có hit ở STATUS.
- **(b) đề-nghị `ring2`** *"đòi phép đo trước khi vào tally"* (`:84`) — **luật về chính bộ đếm H24**, ghi cùng lượt với 2 FLAG khác, **chỉ sống ở `_mind` của phiên đã đóng**.

**Hệ-quả:** món (b) đặc biệt đắt — nó là **bản vá cho chính cơ-chế đang sinh ra FLAG-1/FLAG-2**. Rơi ⇒ tally H24 tiếp tục nhận flag không-kèm-số, vòng sau phải phát hiện lại từ đầu.

---

## TOTAL: 6 — phân-rã theo class (cho `jump_on_class_repeat`)

| class | n | FLAG |
|---|---|---|
| `gap-carry-dropped` | **2** | FLAG-1, FLAG-6 |
| `gap-carry-aged` | **1** | FLAG-2 |
| `gap-decision-sunk` | **2** | FLAG-3, FLAG-5 |
| `gap-owner-specifics` | **1** | FLAG-4 |
| `gap-incident-unrecorded` | **0** | *honest-zero CÓ LẬP LUẬN* — sự-cố lớn nhất phiên trước (9/9 spawn garble #53) ĐÃ ghi đích danh `_mind-s-12.md:96` + `:125`. Có sổ ⇒ không phải class này |
| `gap-underfill` | **0** | 🔴 **KHÔNG phải honest-zero — là `CHƯA ĐO`**. `ring2` đã bác flag underfill @S179 vì *"fire ngược chiều phán quyết mà không kèm số"*; vai chấp nhận ràng buộc ⇒ không phát flag khi chưa đo trọn 9 nguồn `tiep_reload.sources`. *(Datum còn nợ: mốc `_expand_S168` = 182.160 B; @S179 đo ra 373.881 B = **2,05× lỗi-thời**)* |

## Điểm PIN được BÁC / RÚT

- **Slot (73) — RÚT HOÀN TOÀN, không thành FLAG.** Vai đã dựng nghi-vấn từ đĩa (3 persona land `57e672f7`; 3 diary ở nấc SEED mang chữ "chưa chạy"; `HANDOFF:32` + `:7` không liệt). **Nhưng lead ĐÃ chạy probe trong chính phiên này, 5/5 ALIVE** ⇒ tiền-đề **hết đúng trước khi vai kịp phát**. Đúng khuôn `HANDOFF:73`. Không leo thang. *(INFORM-only: `HANDOFF:32` giờ là số cũ — trục `view-*`, không lấn.)*
- **4 câu `HANDOFF:6` — ĐÃ CHỐT, không chìm.** Commit `936d1aed` thi hành thật: (1) báo-cáo-cuối lật DA DUYET + gửi outbox (stamp_verify OK) · (2) điều-kiện-3 ghép `§LT3` · (3) P3 forward-only · (4) VK-5 giữ phụ lục. Chỉ vế SPECIFICS của (4) đi vào FLAG-4, **không đếm trùng**.

## Khai kẽ của chính vai (không giấu)

1. FLAG-2 vai **tính lại streak** thay vì chỉ đọc máy — trái chữ thường lệ ("đọc detector, KHÔNG tính lại"). Lý do: **máy mù đúng chỗ cần đo**, im theo máy sẽ báo sạch một cách SAI. Port **nguyên văn** regex `:892`, không viết lại logic — cùng đường `ring2` @S173/@S180.
2. Tập **34 slug** vắng khỏi `HANDOFF:9`, vai **chỉ kết luận chắc 2** (có đo đĩa dương). **30 món còn lại = `CHƯA ĐO` từng món** — **không gộp vào FLAG-1 để thổi số**. Đây là **cận-dưới**, không phải tổng.
3. Con số `20` ở `:8` vs **23** slug đếm ở `:9` — giải-thích được (20 cũ + 3 mới) ⇒ **không** phải gap; lệch-số là trục `view-*`, không lấn.
