LEAD-GAP-DEEP: 6 FLAG (4 HIGH / 2 MED / 0 LOW) — coverage 6/6

# H24 DEEP-audit vai-GAP @S166 (2026-08-01) — soi CÁI BỊ THIẾU

Nợ OVERDUE(deep) 15/15 (counter 40, deep_at cũ 25). Read-only, INFORM-only, propose-only.
Class enum ĐÓNG (họ `gap-*`) đọc từ `.claude/agent-memory/memory-budget.json` -> `lead_self_audit.flag_classes`:
gap-carry-dropped · gap-carry-aged · gap-owner-specifics · gap-decision-sunk · gap-underfill · gap-incident-unrecorded

## Phương-pháp (dựng tập KỲ-VỌNG TRƯỚC, so SAU)
Nguồn cam-kết đọc: `.claude/WAL.md` · `.claude/sessions/session-9/_context-s-9.md` · `docs/HANDOFF.md` ·
`docs/STATUS.md` · `.claude/governance/ACTIVE-MARKS.md` · `docs/governance/error-ledger.md` ·
`.claude/workflows/runs/2026-08-01-*` · `detectors-output.txt` (ĐỌC, không chạy lại).

(đang ghi từng FLAG ngay khi tìm được — chống #53)

---

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

**hứa ở:** `.claude/agent-memory/memory-budget.json:18` — `tiep_reload.sources[3]` =
`".claude/sessions/session-<N>/_mind-s-<N>.md :: tron (doc TU TREN XUONG)"` — chữ **`tron`** + **`doc TU TREN XUONG`**
là nguồn DUY NHẤT trong 5 nguồn được viết thêm chỉ-dẫn cách đọc.
Cam-kết thứ 2 cùng khoá: `:15` `"docs/STATUS.md :: dong CURRENT + bang CURRENT STATE (KHONG ca file)"`.

**hiện (đo @S166, đơn-vị = BYTE trên đĩa, lệnh dưới):**

| nguồn khoanh trong config | trần đúng phạm-vi | lead nạp @S166 | thiếu |
|---|---|---|---|
| `docs/STATUS.md` :: dòng CURRENT + **bảng CURRENT STATE** | dòng CURRENT (`:6`) + bảng `:461-485` = **62.187 B** | head-**60** (27.553 B) — chứa `:6` ✓ | **bảng CURRENT STATE = 0 B ĐỌC** (bắt đầu ở dòng **461**) |
| `docs/HANDOFF.md` :: segment Last-updated MỚI NHẤT | `:1-40` (biên = `:41` `**🧊 (Last updated cũ)**`) = 9.486 B | head-**70** = 20.835 B | **0 — ĐỌC DƯ, không phải cụt** (khai thẳng: trục này SẠCH) |
| `.claude/WAL.md` :: trọn | 3.389 B | trọn | 0 ✓ |
| `_mind-s-9.md` :: **trọn (đọc TỪ TRÊN XUỐNG)** | **30.573 B / 270 dòng** | **165 dòng = 18.925 B** | **11.648 B = 38,1% KHÔNG ĐỌC** |
| `_context-s-9.md` :: trọn | 13.781 B | trọn | 0 ✓ |

🔴 **Chỗ cắt KHÔNG vô-hại — nó rơi ĐÚNG vào khối được dựng để chống mất:**
`_mind-s-9.md:192` = `## MIND-1 … [NÉN @S165 pause-3 — verbatim trong git; **6 ý chỉ-sống-ở-đây GIỮ NGUYÊN**]`.
Dòng 165 cắt ⇒ **toàn bộ MIND-1 (`:192-217`) + toàn bộ MIND-0 (`:218-270`) = 0 byte đọc**. Trong đó:
- `:200` 4 nhánh-ĐÃ-LOẠI *(GIỮ — chỉ sống ở đây)* — ❌ nâng-cap cứu `_INDEX` (slot 57!) · ❌ đọc "④ chưng-cất = 0" thành lành · ❌ ring4-NO-OP…
- `:205` họ-lỗi *"máy trả đúng câu nó được hỏi mà việc vẫn hỏng"* 4-ca/1-phiên *(GIỮ — chỉ sống ở đây)*
- `:206` luật *"luật vừa-viết KHÔNG tự áp cho đoạn văn chứa nó — phải grep lại chính mình"* *(GIỮ — chỉ sống ở đây)*

Tức: S165 tốn công NÉN để 6 ý này sống sót, S166 nạp lại **cắt mất đúng 6 ý đó**. Nén-để-giữ + đọc-cụt = **nén thành xoá**.

**im:** 1 cửa-sổ (`/tiep-3` @2026-08-01 08:29) — nhưng là lượt ĐẦU sau khi MIND-1 được nén, tức hỏng ngay lần dùng đầu tiên.

**hệ-quả nếu không vá:** ba ý được đánh dấu "chỉ sống ở đây" chết lặng; slot (57) `_INDEX` sẽ được cân nhắc lại
mà KHÔNG có nhánh-đã-loại ⇒ lead có thể đề xuất lại đúng phương án `refine` đã BÁC (rời tập-đo).

**resolve:** hết-flag khi (a) `/tiep` đọc `_mind` HẾT 270 dòng (hoặc đọc từ DƯỚI lên nếu muốn ưu-tiên mới),
**và** (b) khoanh-vùng STATUS được nạp đúng 2 phần (dòng CURRENT **+** bảng CURRENT STATE `:461-485`),
hoặc owner sửa lại chữ trong `tiep_reload.sources` cho khớp cái thực nạp.

**lệnh đo (chạm đĩa, tái-lập được):**
```
wc -l -c .claude/sessions/session-9/_mind-s-9.md          # 270 30573
sed -n '1,165p'  .claude/sessions/session-9/_mind-s-9.md | wc -c   # 18925
sed -n '166,270p'.claude/sessions/session-9/_mind-s-9.md | wc -c   # 11648
grep -n 'chỉ-sống-ở-đây' .claude/sessions/session-9/_mind-s-9.md   # 192,200,205,206 -> ĐỀU > 165
grep -n 'CURRENT STATE' docs/STATUS.md                     # 461 (head-60 khong cham toi)
sed -n '461,485p' docs/STATUS.md | wc -c                   # 62187
```

---

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

**hứa ở:** `.claude/sessions/session-9/_context-s-9.md:63` (PAUSE-1, 2026-07-30, khối *"(2) delta còn SỐNG"*),
nguyên văn: *"**2 mồi `ctx-audit` gieo, chờ chấm @close:** MỒI-A **slot (61)** defect liên-danh N-HĐ · MỒI-B **slot (60)** enum."*
⇒ hai SỐ SLOT đã được CẤP (61 và 60) = hai câu hỏi dành cho owner.

**hiện: VẮNG — 0 hit trên MỌI bề mặt owner đọc.**
```
grep -o '(60)\|(61)' docs/HANDOFF.md          -> 0
grep -o '(60)\|(61)' docs/STATUS.md           -> 0
grep -c 'MỒI-A\|MỒI-B' docs/HANDOFF.md docs/STATUS.md .claude/WAL.md -> 0 0 0
```
Control dương (chứng phép đo có răng): cùng lệnh trên `_mind-s-9.md` ra **1** ⇒ regex ĐÚNG, 0-hit là 0 THẬT.
Và bảng CHỜ-ANH của `docs/HANDOFF.md` đánh số **… (57) (58) (59) → (62)** — **thủng đúng 2 số 60, 61**:
```
sed -n '1,40p' docs/HANDOFF.md | grep -o '\*\*([0-9]\+[a-z-]*)' | sort -u
-> (54) (55) (56) (57) (58) (59) (62)
```
Slot (62) tự khai `🆕 @S164` ⇒ lead ĐÃ mở sổ CHỜ-ANH ở S164 và **nhảy qua 60/61** — không phải "quên cả khối", mà bỏ CHỌN LỌC.

**im:** từ PAUSE-1 `2026-07-30T17:35` → nay `2026-08-01` = **2 ngày / 3 nhãn phiên (S164,S165,S166) / 3 cửa-sổ `/tiep`**.
Nặng thêm: mồi ghi *"chờ chấm @**close**"* mà **S163 không hề có @close** (run-folder chỉ có `2026-07-30-S163-bookend-open`,
0 folder `*-S163-*close*`) ⇒ điều-kiện chấm mồi không bao giờ tới, và không sổ nào ghi việc đó.

**hệ-quả nếu không vá:** hai câu hỏi owner biến mất vĩnh viễn khi `_context` bị nén/đóng phiên-logic L9;
tệ hơn — khoảng trống số (60)(61) sẽ bị slot MỚI tái-dụng, và khi đó **không còn dấu vết nào cho thấy có gì đã đứng ở đó**
(đúng class `slot-index tái-dụng xoá IM-LẶNG`, auto-memory `feedback_absence_looks_like_clean`).

**resolve:** hết-flag khi (60) và (61) hiện diện trong khối 🔴 CHỜ ANH của `docs/HANDOFF.md` với nội-dung mồi
(enum · defect liên-danh N-HĐ) — hoặc lead khai tường-minh "mồi đã chấm, kết-quả X, đóng slot" ở một sổ bền.

---

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

🔴 **KHAI ĐƠN-VỊ TRƯỚC (bài ring2 D-4 @S159):** ô tally `gap-carry-dropped` đếm theo **consecutive-audit**,
đang = **8** (chốt @S162). Lượt deep này nếu lead ratify thì thành **9** — **KHÔNG** phải "1" (số trong-phiên).
Đừng chép số trong-phiên đè lên ô tally: làm thế là XOÁ LỊCH-SỬ.

**hứa ở:** `docs/HANDOFF.md:37` tự khai nghi-thức của chính nó —
`**Carry @S162 (RE-STAMP — nghi-thức §L.b(j)(iv), bỏ 2 kỳ liên tiếp S159+S160 nên gap-carry-dropped lên streak 8):**`
và `docs/HANDOFF.md:33` NEXT-em mục 3 tự nhận: *"**Nghi-thức re-stamp carry** — `gap-carry-dropped` **streak 8**,
bỏ lần 2 ngay sau khi bị FLAG HIGH @S159 ⇒ đây là **nghi-thức hỏng**, không phải sự cố lẻ."*

**hiện: khối carry mới nhất VẪN mang nhãn `@S162`** — không có `Carry @S163` / `@S164` / `@S165` / `@S166`.
```
grep -o 'Carry @S[0-9]*' docs/HANDOFF.md      -> chỉ 'Carry @S162'
git log --format='%h %cI' -3 -- docs/HANDOFF.md
   bd68f71 2026-07-31T21:47  (S165 wal: pause)   1 dòng đổi
   15349e8 2026-07-31T18:21  (S164 K3)           1 dòng đổi
   50e6d8c 2026-07-31T15:45  (S164 K1)           7+/5-
git diff e5123ff..HEAD -- docs/HANDOFF.md | grep -c '^[+-]'   -> 16
```
🔴 **Đây KHÔNG phải "quên cả file vì gấp":** HANDOFF bị sửa **3 lần / 16 dòng** sau closeout S162, và **chính dòng
carry `:37` đã bị EDIT** (nó chứa ghi-chú *"2 slug này = TÁCH từ `[carry:orphan-retro-harvest-s159]` **@S164**"*)
— tức lead có mở đúng dòng đó ra sửa mà **vẫn không re-stamp kỳ mới**. Sửa-tại-chỗ ≠ re-stamp:
sửa-tại-chỗ làm **tuổi carry tàng hình** với máy (streak không tăng vì không có đoạn LOGIC mới).

**im:** **3 nhãn phiên (S163 · S164 · S165) + phiên này S166** kể từ lần re-stamp cuối (2026-07-30 e5123ff) = **2 ngày**.
Đây là **lần bỏ thứ 3 liên tiếp** (S159+S160 → FLAG HIGH; S163→S165 → nay).

**đo phụ — cái máy KHÔNG thấy** (đọc detector, KHÔNG tính lại):
`detectors-output.txt:79-84` → `HANDOFF logic-segments = 25 ; carry-lines = 18`, in đúng **5** carry:
`ctx-t9-dogfood` 2 · `ring5-audit-gap` 1 · `hmw-width-vs-roster` 1 · `hmw-subfile-index-collision` 1 · `adap-apply-2-thu` 3 — **tất cả [ok] < M=6**.
Đối chiếu đĩa: khối re-stamp `:37` mang **12 slug**, cả file mang **50 slug / 234 occurrence**
(`grep -o '\[carry:[a-z0-9-]*\]' docs/HANDOFF.md | sort -u | wc -l` = 50; `grep -o '\[carry:' … | wc -l` = 234).
⇒ máy chấm **5/50**; `gap-carry-aged` **không thể fire** không phải vì carry trẻ, mà vì **chứng-nhân không ở trong tập-đo**.
🔸 KHAI THẬT: hình dạng này **đã báo @S159** (Goodhart rời-tập-đo) — ghi lại đây làm **chứng streak còn sống**, KHÔNG tính là phát-hiện mới.

**hệ-quả nếu không vá:** nghi-thức duy nhất giữ tuổi-nợ đã hỏng 3 kỳ liên tiếp ⇒ 50 slug trên đĩa trở thành
nợ **không có đồng hồ**; và vì detector chỉ thấy 5, mọi bản báo cáo "carry sạch" sẽ **đúng về câu chữ, sai về việc**.

**resolve:** hết-flag khi có 1 dòng `**Carry @S166 (RE-STAMP …)**` mới trong segment Last-updated mới nhất,
liệt slug còn MỞ (đóng slug đã xong, ghi rõ lý do đóng) — và streak `gap-carry-dropped` được reset về 0 **bằng hành-vi**, không bằng chữ.

---

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

*(scope-1: việc rớt khỏi work-state so với backlog — món **owner tự tay gác sang giai-đoạn sau** mà không sổ backlog nào nhận)*

**hứa ở:** `.claude/workflows/runs/2026-07-31-S164-4gd-khkk-fanout/spec-4gd-khkk-tong-quat-31-07-2026.md:54`, nguyên văn:
> **BACKLOG giai-đoạn-sau (owner @S164, không làm đợt này):** (1) authz-per-nhóm KHKK (OG-8) · (2) **phiếu điều chỉnh/thay thế**
> cho chứng từ đã duyệt — khuôn amendment ERP, áp PE/KHKK/HĐ (*"Nếu xóa thì có thể làm 1 tính năng điều chỉnh phiếu để cập nhật
> điều chỉnh/thay thế - ko xóa phiếu đã duyệt. Cái này để giai đoạn sau."*) · (3) bung-gộp UI (OG-1/OG-7 nửa sau — máy đã sẵn).

Mục (2) là **lời anh VERBATIM**, phạm-vi **toàn ERP** (PE + KHKK + HĐ), không riêng KHKK.

**hiện: VẮNG — 0 hit / 6 bề mặt, gồm cả sổ backlog chính thức.**
```
grep -c 'OG-8|authz-per-nhóm'        -> HANDOFF 0 · STATUS 0 · WAL 0 · migration-todos 0 · _context 0 · _mind 0
grep -c 'phiếu điều chỉnh|điều chỉnh/thay thế' -> 0 0 0 0 0 0
grep -c 'BACKLOG giai-đoạn-sau'      -> 0 0 0 0 0 0
CONTROL-DƯƠNG (cùng regex, trên chính file nguồn):
   grep -o 'OG-8' spec-4gd…tong-quat…md | wc -l        -> 2
   grep -o 'authz-per-nhóm' … | wc -l                  -> 3
   grep -o 'BACKLOG giai-đoạn-sau' … | wc -l           -> 1
```
⇒ regex có răng; **0 là 0 THẬT**, không phải lỗi phép đo.
🔴 `docs/changelog/migration-todos.md` là **nhà được chỉ định** cho loại này (`CLAUDE.md` §5-file: *"Atomic tasks theo phase"*) — và nó **rỗng** ở cả 3 mục.

🔴 **Phân-định với luật "vắng ≠ bỏ rơi":** anh **CÓ** chủ-động gác ("để giai đoạn sau") ⇒ **việc gác là ĐÚNG, không flag**.
Cái bị flag là: gác **sang đâu**? "Giai đoạn sau" = phải nằm trong **sổ phase**, mà sổ phase 0 hit.
Đây không phải "owner đang giữ trong tay" — anh đã **giao lại cho hệ-thống** và hệ-thống đánh rơi.

**im:** từ `2026-07-31` (S164) → nay = **2 nhãn phiên / 1 ngày**, nhưng đã **đi qua trọn 1 lượt `/pause` (PAUSE-3) + 1 lượt `/tiep` (S166)**
— tức đã qua đúng 2 nghi-thức được thiết-kế để bắt loại này mà cả 2 đều không bắt.

**hệ-quả nếu không vá:** yêu-cầu tính-năng của anh (amendment/điều-chỉnh phiếu — chạm 3 module) tồn tại duy nhất trong
1 file spec 14,7 KB ở run-folder; sang phiên-logic L10, không nghi-thức nào đọc file đó ⇒ **mất hẳn**, và lần sau anh hỏi
"cái điều chỉnh phiếu đâu rồi" thì không sổ nào trả lời được.

**resolve:** hết-flag khi 3 mục backlog này có mặt trong `docs/changelog/migration-todos.md` (hoặc khối backlog của `docs/HANDOFF.md`)
kèm nguồn `spec-4gd…:54` — và mục (2) giữ **nguyên văn câu của anh**, không tóm tắt.

---

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

**hứa ở:** mandate PAUSE-3 (3 tin anh, verbatim `_context-s-9.md:117`) — ② *"Chứ ý kỹ các đầu việc trong plan đã đc review kỹ
trong rurn này nhé."* ③ *"uhm ý tao là plan các thứ đang chạy tới đâu nhớ kỹ, bắt đc lỗi thì tốt."*
Lead diễn-đạt lại ở `.claude/WAL.md:39-40`: *"sổ nhớ kỹ **từng đầu việc** đã review"*.
Bài đã rút @S165 (auto-memory `feedback_pause_track_plan_progress`): *"liệt TỪNG đầu việc đã-review (wave + vá-số + finding treo),
**rà từng dòng OG** trước khi tuyên xong"* — ca sinh ra nó chính là **gap checkbox OG-3 → gate F-1 MAJOR**.

**hiện: SPECIFICS bị nén thành SỐ ĐẾM và thành BIỆT-DANH; khoá tra-cứu (OG-n / F-n) rơi mất.**

*(a) Trục OG — đĩa có 10 ID, sổ bền giữ 4:*
```
grep -oh 'OG-[0-9]\+' runs/2026-07-31-S164-…/*.md | sort | uniq -c
   OG-1:40  OG-2:27  OG-3:25  OG-4:3  OG-5:7  OG-6:36  OG-7:22  OG-8:5  OG-9:18  OG-10:1
bề mặt bền:  HANDOFF{OG-3, OG-9} · STATUS{} · WAL{OG-5, OG-6} · _context{OG-5, OG-6} · _mind{OG-3, OG-5, OG-6}
hợp:         {OG-3, OG-5, OG-6, OG-9} = 4/10  ⇒ VẮNG: OG-1, OG-2, OG-4, OG-7, OG-8, OG-10 = 6/10
```
Nặng nhất: **OG-1 (40 hit)** và **OG-2 (27 hit)** — hai khoản được bàn NHIỀU NHẤT trong cả run — **0 hit** trên mọi sổ bền.
Và `b1b-review-synthesis.md:31` ràng OG vào DoD: *"PRE-gate K1←OG-6, **K2←OG-1+OG-7**, K3←OG-2"* ⇒ đây là **điều-kiện nghiệm-thu**, không phải ghi chú.

*(b) Hệ-quả đo được — claim không kiểm được:* `_context-s-9.md:108` (PAUSE-2) tuyên **"9 OG trọn"** rồi liệt bằng **biệt-danh**
(*gộp+UI-1-1 · đội-hình-cũ · NĐUQ-human-gate · N-phiếu+UI-1 · hiển-thị-không-authz · đảo-PHÁ-VỠ-S155 · freeze-tái-dùng-máy ·
phiếu-bất-tử-ERP · OG-6→soát-SAU*) — **chỉ 1/9 có ID**. Đĩa có **10** ID.
⇒ Không cách nào đối-chiếu "9 tuyên" với "10 trên đĩa": **1 khoản chênh mà không ai chỉ ra được là khoản nào.**
Chính đây là điều mandate ③ *"rà từng dòng OG"* sinh ra để chặn.

*(c) Trục F-n — khoá KHÔNG duy-nhất:* 3 cổng gate dùng **cùng dải ID**
(`grep -o 'F-[0-9]\+' sub-reviewer-gate-k{1,2,3}.md | sort -u` → k1: F-1..F-5,F-7 · k2: F-1..F-10 · k3: F-1..F-8 = **27 finding**).
Sổ bền viết `WAL:41` *"**F-5**-PermGuard-khuôn-cũ"* và `_context:127` *"**F-5** PermGuard nợ khuôn cũ"* — **không tiền-tố cổng nào**,
trong khi F-5 tồn tại ở **cả 3** cổng. Tra ngược = phải mở 3 file. (Đối-chứng: `_context:124` CÓ viết đúng *"gate-K3 F-1"* ⇒ lead
biết cách ghi đủ, chỉ là không nhất-quán ⇒ không phải "không thể", mà là **rơi**.)

**im:** từ PAUSE-3 `2026-07-31T18:35` → nay = **1 ngày / 2 nhãn phiên**, đã qua 1 `/tiep`.

**hệ-quả nếu không vá:** K4a→K8 còn 5 wave chưa build; DoD của chúng neo vào OG-n. Vào wave sau, lead sẽ **không có OG-1/OG-2/OG-7
trong tầm đọc** ⇒ hoặc bỏ điều-kiện nghiệm-thu, hoặc phải mở lại 26 file run-folder — đúng thứ mandate ③ ra đời để ngăn.

**resolve:** hết-flag khi (i) mỗi OG còn hiệu-lực có **1 dòng ID + 1 dòng nội-dung** trong sổ bền (WAL notes hoặc HANDOFF),
và (ii) mọi tham-chiếu `F-n` trong sổ bền mang tiền-tố cổng (`gate-K2 F-5`), và (iii) claim "N OG trọn" liệt **đủ N ID**.

---

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

*(scope-1: DANH-SÁCH VÁ 11 mục — con-trỏ tới nó đã CHẾT, sổ theo-dõi nằm ngoài mọi đường nạp)*

**hứa ở:** `.claude/workflows/runs/2026-07-30-S163-bookend-open/run.md:117-120`:
> `## 🔧 DANH-SÁCH VÁ — 11 mục, CHƯA CHẠM (**nhà canonical của cụm này**; `_mind` §B chỉ TRỎ về đây)`
> *"Anh gõ `/pause` trước khi lead bắt đầu vá ⇒ **0/11 đã làm**."*
> *"🔴 Liệt đích-danh vì `ctx-curator` #7 bắt đúng: cụm '11 mục' trước đó **không có nhà nào giải được** — rơi 1 dòng = mất 11 ý."*

**hiện: con-trỏ đứt ở CẢ HAI đầu.**
```
grep -c '11 mục|danh-sách vá'  -> HANDOFF 0 · STATUS 0 · WAL 0 · error-ledger 0 · ACTIVE-MARKS 0 · migration-todos 0
                                  _context 1 (PAUSE-1, entry immutable đã bị PAUSE-3 thay) · _mind 2
```
- Con-trỏ **duy nhất** nằm trong tập nạp là `_mind-s-9.md:200`: *"Hướng-tiếp cũ (chạy 11 mục vá) đã tiêu ở window-2 — **xem WAL/`_context` PAUSE-2**."*
- Đích của con-trỏ đó: `WAL` = **0 hit** · `_context` PAUSE-2 (`:108-110`) = **0 hit** ⇒ **con-trỏ CHẾT**.
- Và chính dòng `:200` nằm ở **dòng 200 > 165** ⇒ **không được đọc** trong lượt `/tiep` @S166 (xem FLAG-1). Hai lỗi chồng nhau.
- Nhà canonical (`runs/…S163…/run.md`) **không nằm trong `tiep_reload.sources`** ⇒ không nghi-thức nào mở nó.

🔴 **CHẠM ĐĨA TRƯỚC KHI PHÁN (luật S121 — bảng mô-tả Ý-ĐỊNH ≠ TRẠNG-THÁI).** Sổ vẫn ghi "0/11", đĩa nói khác:
| # | việc | đĩa nói gì (lệnh) | thật |
|---|---|---|---|
| 11 | refine A1/A2 L1→L2 `lead-gap-auditor` (23.593 B) · `harvest-curator` (23.493 B) | `wc -c .claude/agent-memory/{lead-gap-auditor,harvest-curator}/MEMORY.md` → **10.777** / **18.781**; cả 2 có `archive/2026-07.md` | ✅ **XONG** |
| 1 | STATUS Gotchas 84→85 | `detectors-output.txt:3` `gotcha=85` (canonical) + disk `gotcha=85` | ✅ **XONG** |
| 2 | `CLAUDE.md` +row `ContractSigningPlans` + Mig 68/69 | có row `ContractSigningPlans … 69` + `+S157 Mig 68` trong CLAUDE.md | ✅ **XONG** |
| 5 | slot (58) viết dạng bất-biến | `HANDOFF:21` = *"Trần `_mind` CỦA PHIÊN-LOGIC HIỆN HÀNH … CẤM neo literal/tên file"* | ✅ **XONG** |
| 8 | `ctx-soft-memory-se-draft.md` header "DRAFT · CẤM wire" | header nay = *"✅ RATIFIED + ĐÃ WIRE @S153 (OWNER-VETO)"* | ✅ **XONG** |
| 7 | skills `ef-core-migration` · `permission-matrix` | `detectors-output.txt:14-25` VẪN flag `ef-core-migration/SKILL.md:93` (MED) + `permission-matrix/SKILL.md:60,:80` | ❌ **CÒN MỞ** (máy đang kêu) |

⇒ **KHÔNG được nói "0/11"** (sai) và cũng **không được nói "xong hết"** (sai). Sự-thật đo được: **≥5 xong · ≥1 còn mở · 5 CHƯA XÁC-ĐỊNH**
— và **không sổ nào ghi được điều đó**, vì sổ theo-dõi bị bỏ lại ở run-folder với con số "0/11" đóng băng từ 2026-07-30.

**im:** **2 ngày / 3 nhãn phiên** (S164 · S165 · S166) kể từ PAUSE-1 (2026-07-30T17:35).

**hệ-quả nếu không vá:** cụm 11 mục rơi vào trạng-thái tệ nhất — **không ai biết đã làm tới đâu**: nếu lead tin "0/11" thì
làm lại 5 việc đã xong; nếu lead tin "đã tiêu rồi" thì bỏ luôn mục 7 mà **máy vẫn đang kêu mỗi lượt detector**.
Đúng cảnh-báo của `ctx-curator` #7 mà run.md tự chép vào: *"rơi 1 dòng = mất 11 ý"* — nay rơi thật, chỉ khác là rơi cả cụm.

**resolve:** hết-flag khi cụm 11 mục có 1 dòng trong sổ **nằm trong đường nạp** (WAL `chain` hoặc HANDOFF NEXT-em) với
trạng-thái từng mục **đo từ đĩa** (không chép "0/11"), hoặc lead khai tường-minh "cụm này ĐÓNG, lý do X" ở sổ bền.

---

# HONEST-ZERO — mục soi mà KHÔNG ra flag (giá của việc khai sạch)

## mục 4 (một nửa): 9 slot cũ — **SẠCH, tự BÁC giả-thuyết của chính mình**

Giả-thuyết vào: *"slot cũ (39)(40)(41)(42)(43)(44)(46)(47)(48) chìm dần khi khối CHỜ-ANH bị viết đè."* → **BÁC.**
```
for n in 39 40 41 42 43 44 46 47 48; do grep -o "($n)" docs/HANDOFF.md | wc -l; done
  (39)2 (40)3 (41)3 (42)3 (43)3 (44)3 (46)2 (47)2 (48)2   -> 9/9 CÒN SỐNG
neo: docs/HANDOFF.md:23  "**Slot cũ còn treo:** (42)(43)(44) … (46) … (47) … (48) … (39) … (40) … (41)"
CONTROL-ÂM (slot chưa từng tồn tại):  (63) -> 0 hit · (64) -> 0 hit   ⇒ phép đo PHÂN-BIỆT được, không phải luôn-dương
```
⇒ Khối *"Slot cũ còn treo"* đang làm **đúng việc của nó**. Lỗ duy nhất của trục này là **(60)(61)** — đã bắt ở FLAG-2,
và chính vì 9/9 kia sống mà (60)(61) mới là **bỏ CHỌN LỌC**, không phải "khối này vốn hay rơi".

## `gap-incident-unrecorded` = **0** — đã cân nhắc, TỰ BÁC

Ứng-viên: 2 ESCALATE của `harness-audit` @S163 — (i) backstop **G-015** rỗng-hoá vì Stop-hook nuốt `.claude/agent-memory/`
vào commit trước khi lead soát · (ii) stray `agent-cwd-relative-memory-misland` tái phát ×3/phiên.
Phép đo: `grep -c 'Stop-hook|nuốt .claude/agent-memory' docs/governance/error-ledger.md` → **0**.
**NHƯNG** class này đòi *"0 hit trên **bất-kỳ** sổ bền nào"*, mà `_context-s-9.md:62` **CÓ** ghi cả 2, và `_context` nằm
trong `tiep_reload.sources` (đọc trọn) ⇒ **KHÔNG đủ điều-kiện** ⇒ **không phát flag**.
🔸 Ghi lại để lần sau khỏi soi lại: nếu tới closeout L9 mà `_context-s-9` bị nén/đóng và error-ledger vẫn 0 hit thì
**lúc đó** mới thành `gap-incident-unrecorded`. Nay chưa.

## `gap-carry-aged` = **0** — và đây là con-số PHẢI đọc kèm caveat

Detector `H24-2` in **5/5 `[ok]`** (streak cao nhất 3 < M=6). 🔴 KHÔNG được đọc thành "carry đều trẻ":
tập-đo của máy là **5 slug**, đĩa có **50**. Số 0 này là **0-của-tập-đo-nhỏ**, không phải 0-của-thực-tế (xem FLAG-3).
Theo luật *"ĐỌC detector, KHÔNG tính lại"* — tôi **không** tự dựng streak thay máy; tôi chỉ khai **mẫu-số**.

---

# mục 6 — CHECKLIST DIARY-SEED cho closeout (không phát FLAG mới)

🔸 **Vì sao KHÔNG phát flag:** cam-kết này **CÒN SỐNG** ở `.claude/WAL.md:27` (`[ ] closeout-nợ: **diary vai (C2)** · …`).
Cái thiếu là **ĐỘ PHÂN-GIẢI** (2 chữ "diary vai" không nói VAI NÀO) — cùng bệnh đã tính ở **FLAG-5**, không đếm 2 lần.
Nhưng lead sẽ dựa vào C11 để biết phải seed ai, mà **C11 chỉ thấy 3/9** ⇒ dưới đây là danh sách đo từ đĩa.

Phép đo: `git log -1 --format='%cI' -- .claude/agent-memory/<role>/MEMORY.md` so với **mtime artifact vai đó**.

| vai | diary commit gần nhất | artifact gần nhất | trạng-thái | C11 có bắt? |
|---|---|---|---|---|
| `ctx-verifier` | **2026-08-01 08:51** | @cửa /tiep-3 | ✅ **ĐÃ SEED** | — |
| `reviewer` | **2026-08-01 09:00** | `sub-reviewer-f1-checkbox.md` 08:58 | ✅ **ĐÃ SEED** | — |
| `cicd-monitor` | 2026-07-31 17:20 | `sub-cicd-verify-k3.md` **2026-08-01 08:44** | ❌ **NỢ** (lượt cicd-K3 re-spawn @S166) | ❌ không |
| `lead-stale-auditor` | 2026-07-30 15:13 | `sub-lead-stale-deep-S166.md` **08:50** | ❌ **NỢ** (deep @S166) | ❌ không |
| `lead-gap-auditor` (vai này) | 2026-07-31 09:55 | `sub-lead-gap-deep-S166.md` (đang ghi) | ❌ **NỢ** (deep @S166) | ❌ không |
| `implementer-backend` | **2026-07-29 21:49** | `sub-implbe-k4a.md` **2026-08-01 08:52** | ❌ **NỢ ×4** (k1 07-31 14:35 · k2 16:20 · k3 17:33 · k4a 08-01) | ❌ không |
| `implementer-frontend` | 2026-07-31 16:47 | `sub-implfe-k3.md` 07-31 **17:42** | ❌ **NỢ ×1** (k3 sau mốc diary) | ❌ không |
| `test-specialist` | 2026-07-31 18:03 | K4a test-lane **đang chạy** | ⚠️ **sẽ NỢ** khi lane đẻ artifact | ❌ không |
| `ctx-audit` | 2026-07-30 15:13 | `sub-ctx-audit-open-S163.md` | ❌ **NỢ 2 ngày** | ✅ có |
| `ring1-audit` | 2026-07-30 15:13 | `sub-ring1-audit-open-S163.md` | ❌ **NỢ 2 ngày** | ✅ có |
| `ring2-audit` | 2026-07-30 15:13 | `sub-ring2-audit-open-S163.md` | ❌ **NỢ 2 ngày** | ✅ có |
| `ctx-curator` | 2026-07-31 21:48 | verdict @/tiep-3 (nếu có chạy) | ⚠️ kiểm lại | ❌ không |

🔴 **Số cần nhớ: nợ ≥ 8 vai, C11 chỉ nêu 3.** Nếu closeout chỉ vá theo C11 thì **5 vai vẫn vào phiên sau mù**,
và bảng sẽ trông như đã sạch. Nặng nhất: **`implementer-backend` nợ 4 lượt / 3 ngày** — vai làm nhiều code nhất chuỗi SP-002.
Lý do C11 mù: nó soi run-folder có `sub-<role>-*` khớp **tên vai chuẩn**, mà lane K1-K4a đặt tên `sub-implbe-*` / `sub-implfe-*` /
`sub-cicd-verify-*` — đúng **206 prefix UNMAPPED** mà chính detector tự liệt ở `detectors-output.txt:94-95` (INFORM, không flag).

---

# TỔNG

**TOTAL: 6 FLAG** — **4 HIGH · 2 MED · 0 LOW**

phân-rã theo class (cho `jump_on_class_repeat` = 3):

| class | số (ĐƠN-VỊ = **TRONG-PHIÊN**) | FLAG |
|---|---|---|
| `gap-carry-dropped` | **2** | FLAG-3 (carry không re-stamp 3 kỳ) · FLAG-4 (backlog owner 0/6 bề mặt) |
| `gap-decision-sunk` | **2** | FLAG-2 (slot 60/61 thủng) · FLAG-6 (11 mục vá — con-trỏ chết) |
| `gap-underfill` | **1** | FLAG-1 (`_mind` cụt 38,1% + bảng CURRENT STATE 0 B) |
| `gap-owner-specifics` | **1** | FLAG-5 (OG 4/10 · F-n không tiền-tố · "9 OG trọn" không kiểm được) |
| `gap-carry-aged` | **0** | (0-của-tập-đo-nhỏ — xem HONEST-ZERO) |
| `gap-incident-unrecorded` | **0** | (đã cân nhắc, tự BÁC — xem HONEST-ZERO) |

🔴🔴 **KHAI ĐƠN-VỊ TRƯỚC KHI LEAD CHÉP (bài ring2 D-4 @S159 — chính vai này từng sai):**
cột số trên là **TRONG-PHIÊN**. Ô tally trong sổ đếm là **consecutive-audit**.
`gap-carry-dropped` đang = **8** (chốt @S162) ⇒ lượt này ratify thì **9**. **CẤM ghi "2" vào ô đó** — ghi 2 là **xoá lịch-sử 8→2**.
Theo đơn-vị consecutive-audit, ngưỡng `jump_on_class_repeat = 3` đã **vượt từ lâu** ở class `gap-carry-dropped`
⇒ đây **không** phải chuỗi sự-cố lẻ, mà là **nghi-thức hỏng** (nguyên-văn NEXT-em #3 của chính lead ở `HANDOFF:33`).

**COVERAGE-LINE: 6/6 mục scope đã soi** — (1) work-state↔backlog: FLAG-6 + FLAG-4 · (2) carry: FLAG-3 · (3) mandate specifics: FLAG-5 ·
(4) quyết-treo: FLAG-2 (60/61) + honest-zero 9/9 slot cũ SẠCH · (5) tiep_reload: FLAG-1 · (6) diary: checklist ≥8 vai, không flag mới.
🔸 **Khai giới-hạn (không làm tròn thành "quét sạch"):** 11 mục vá mới chạm đĩa **6/11** (5 mục CHƯA xác-định trạng-thái);
27 finding gate K1/K2/K3 chỉ đo **có/không xuất-hiện trên sổ bền**, KHÔNG đọc ruột từng finding.
Vai này **read-only, propose-only** — 0 Write ngoài chính file này, 0 Edit doc, 0 commit, 0 RAG-write.

END sub-lead-gap-deep-S166 — VERDICT=6 FLAG (4 HIGH / 2 MED / 0 LOW) · coverage 6/6 · INFORM-only, chờ em-main VERIFY→APPEND

