# sub-lead-omission-2 — H24 DEEP audit (force-fire SỚM 1 nhịp)

**Vai:** `lead-omission-auditor` · trục CÁI BỊ THIẾU · propose-only
**Phiên:** S143 (2026-07-22) · counter **17** · `deep_at_counter=3` + `deep_every=15` ⇒ tới hạn ở **18**
🔴 **FORCE-FIRE SỚM 1 NHỊP (17/18)** theo direction owner "OK làm hết đi" — KHÔNG phải tới-hạn tự-nhiên. (Run.md ghi 14/15; số đúng đọc từ `.session-counter.json` `last_audit.deep_at_counter=3` + `h24_cadence.deep_every=15` ⇒ ngưỡng 18, hiện 17 ⇒ sớm 1. Cùng kết-luận "sớm 1 nhịp", khác cách trình.)

## Phương-pháp (dựng KỲ-VỌNG trước, so sau)

Nguồn cam-kết đọc để dựng tập kỳ-vọng:
- `docs/HANDOFF.md` segment S141–S143 (Carry MỞ 13 · NEXT anh 9 mục · NEXT em) + segment S140 (Carry MỞ 13 · NEXT anh 8) + segment S138–S139
- `.claude/WAL.md` chain (16 dòng `[x]`/`[ ]`/`[!]`)
- `.claude/governance/.session-counter.json` (last_audit + class_repeat + history)
- `.claude/agent-memory/memory-budget.json` (`token_governor`, `lead_self_audit.flag_classes`)
- `.claude/governance/ACTIVE-MARKS.md`, `docs/governance/owner-decisions-*.md`
- Output MÁY: `scripts/governance-detectors.ps1` (H24-2 carry-age = ĐỌC, KHÔNG tính lại)

---

## LOG ĐO (ghi trong lúc làm)

### Đ1 — Carry set diff S140 → S143 (nguồn: HANDOFF.md, 2 khối "Carry MỞ re-stamp (13)")

S140 (13): carry-age-vacuous · hook-vs-budget-cap · uat-s117 · pe-phanquyen · bvaau · binh-le-decision · tra-bui-relogin · account-trung · uat-s133-budget-freeze · uat-s134-luyke · **dangling-head** · hub-review-wave-1807 · **session-model-adopt**

S143 (13): carry-age-vacuous · hook-vs-budget-cap · uat-s117 · pe-phanquyen · bvaau · binh-le-decision · tra-bui-relogin · account-trung · uat-s133-budget-freeze · uat-s134-luyke · **🆕 tools-whitelist-no-teeth** · **🆕 pull-warn-threshold** · hub-review-wave-1807

Số-học kỳ-vọng: 13 − 1 (đóng `dangling-head`) + 2 (🆕) = **14**. Khai = **13**.
⇒ NGHI: đúng 1 carry bốc hơi = `[carry:session-model-adopt]`. Đang xác minh bằng grep (đĩa).

**XÁC MINH ĐĨA (3 lệnh):**
```
grep -n -o '\[carry:session-model-adopt\]' docs/HANDOFF.md   -> 7 , 10 , 11   (KHÔNG có 6)
for i in 6 7: distinct tags   -> line6 = 14 tag (gồm dangling-head ĐÃ ĐÓNG) · line7 = 6 tag (CÓ session-model-adopt)
union(line6,line7) distinct = 15 ; trừ dangling-head(đóng) = 14 carry SỐNG trong current-segment
```
Bố-cục HANDOFF: `:5` narrative · `:6` **Carry MỞ (13)** · `:7` NEXT anh · `:8` NEXT em · `:9` Prev S140 · `:10` Carry S140 · `:11` NEXT anh S140.
⇒ **KHẲNG-ĐỊNH:** `[carry:session-model-adopt]` vắng ở `:6`, sống ở `:7` mục (8). KHÔNG có dòng `✅ ĐÓNG` cho nó (khối ĐÓNG chỉ 1 slug = `dangling-head`).

**MÁY MÙ ĐÚNG NHƯ DỰ ĐOÁN — có chứng:** `governance-detectors.ps1` H24-2 in `[ok] carry 'session-model-adopt' streak=3 < M=6` ⇒ máy vẫn coi nó **carry sống** (nó grep tag trong mọi NEXT-segment, KHÔNG đọc tư-cách thành-viên của khối ledger). Máy im ⟂ ledger mất — đúng trục §2(1).

---

### Đ2 — Việc rớt khỏi work-state so với 2 lượt owner gật

| lượt | owner nói | bản-ghi bền trên đĩa | đủ? |
|---|---|---|---|
| 1 | "OK làm đi" → **6 mục** | `HANDOFF:5` liệt đủ **6** (adap-report 7/7 · email hub `6c94873f` · STAGE-2 0-pending · squash K=8 push · vá skill-matrix 15→17 · +vế-4 `pull-cach`) + `WAL:16` 4 tiểu-mục + `WAL:17` | ✅ ĐỦ |
| 2 | "OK làm hết đi" → **4 mục** | CHỈ `run.md:3` = *"2 việc anh gật @S143"* + taskList 3 lane. `WAL` = **0 dòng chain** · `HANDOFF` = **0** · `STATUS` = **0** | ❌ **2/4 KHÔNG NEO ĐƯỢC** |

- `.claude/WAL.md` mtime **12:31** < run-folder **12:55** ⇒ sổ mạch-việc H22 được viết TRƯỚC khi 3 lane chạy và **chưa có dòng nào** cho lượt gật thứ 2. Nếu phiên chết bây giờ, `/tiep` đọc WAL thấy `next: chờ anh quyết 2 mục [!]` — KHÔNG thấy 3 lane đang chạy.
- Không tìm thấy mục nào **được gật mà lead lặng-lẽ bỏ**: 6/6 của lượt-1 đều có vết đĩa. Vấn đề là **ghi lượt-2 thiếu**, không phải làm thiếu (đã chạm đĩa: git log 3 commit S143 + 7 adap-report + email + `_index`).

### Đ3 — Quyết-định treo: NGUỒN CAM-KẾT tìm thấy = `spec-adap-dot-9-10-20-07-2026.md:68`

Verbatim:
> **Chờ-anh (không block implement):** (1) ranh refine⟂lead-omission ratify · (2) 5 câu session-model (`session_ctx_kb`=64? · N=L map + folder-form? · VC từng dòng · hook 4-path? · prereq unblock) · (3) consent-form trio dài hạn (mỗi phiên gật hay luật đứng).

Đối-chiếu bề-mặt owner-facing (grep đĩa, 4 file × 9 token):
```
ratify / refine⟂ / consent-form / luật đứng / session_ctx_kb / van-ngưỡng / N↔L / folder-form / 4-path
HANDOFF=0  STATUS=0  WAL=0  ACTIVE-MARKS=0   (cả 9 token, cả 4 file)
```
- (1) **ranh refine⟂lead-omission ratify** → 0 owner-surface. Sống ở: `spec:68` · `sub-reviewer-fable-spec:61` · `adap-report 4-khoan:30` (khai "SE **tự vạch**, chưa được hub/owner ratify") · diary invest S141 ("cần owner ratify"). ⇒ Ranh ĐÃ WIRE vào `harness-refine.md:22-30` **trước** khi được ratify, và câu-hỏi ratify thì chìm.
- (2) **5 câu session-model** → `NEXT anh :7` mục (8) chỉ mang **1/5** (VC từng dòng). 4 câu còn lại: chỉ ở email `b9ef5ede` + adap-report. `Q4 van-ngưỡng`/`session_ctx_kb` = **0 hit** HANDOFF/STATUS.
  🔴 **Đối-chứng làm bật omission:** cùng phiên, ngưỡng ANH-EM song sinh `pull_warn_days` được lead cấp **carry #12 + NEXT anh #2** với đúng lý-lẽ *"em CỐ Ý không tự đặt số (quyền anh)"*. `session_ctx_kb` cùng HÌNH (số ngưỡng, SE từ chối tự đặt — adap-report §4 *"SE bịa số vào sẽ thành con số không ai chịu trách nhiệm"*) mà **0 carry, 0 NEXT anh**. Bất-đối-xứng này ⇒ bỏ sót, không phải chủ-động gác.
- (3) **consent-form trio dài hạn (mỗi phiên gật hay luật đứng)** → 0 owner-surface. Hub `58e28bae` Câu-3 đã trả *"nhóm có luật cứng no-auto-run riêng thì giữ nguyên hình thức consent của nhóm"* ⇒ **câu hỏi CÒN NGUYÊN cho owner** (chọn per-phiên hay luật-đứng), SE giữ per-phiên mặc-định mà không hỏi lại.

### Đ4 — gap-carry-aged: ĐỌC máy, KHÔNG tính lại
`H24-2` (M=6 đọc từ config): 66 logic-segment, 19 carry-line. FIRE 3: `uat-s134-luyke` streak **7** · `uat-s133-budget-freeze` **9** · `hook-vs-budget-cap` **13**. Cả 3 đều còn trong `NEXT anh :7` (#4/#5/#7) ⇒ **owner đang GIỮ** ⇒ INFORM-only, KHÔNG flag (anti-pattern #3).
Coverage-gap S140 (cụm 7-carry S117/S118 vô hình với carry-age) **VẪN NGUYÊN** — máy chỉ đo 6/14 carry. Đã báo S140 → repeat, không báo lại như mới.

### Đ5 — gap-underfill: ZERO có lý-do (không phải chưa soi)
- `/tiep` (`tiep.md`, 138 dòng) **không có** bước tương-đương `§2.1.6` hot-feed %-print/bảng-ngân-sách (chỉ `§2.5` tick + dòng-nợ). S143 vào bằng `/tiep` ⇒ **0 điểm quan-sát** ngân-sách ⇒ under-fill phiên này **bất-khả-đo từ đĩa**, cả 2 chiều.
- `crystallized_backfill.target=210000` (owner-set S115, ON): planner DRY, pour = em-main thủ-công. Vết cuối cùng = log S131-S132 *"(c) bảng-số backfill (target 210K DRY)"*; log **S138-S139 và S140 = 0 hit** `crystallized|backfill`. Không đủ để kết-luận nạp-dưới-hạn (log là bản tóm-tắt) ⇒ **KHÔNG flag**, chuyển INFORM.
- Ứng-viên đã CÂN-NHẮC RỒI BÁC: spawn-prompt của chính 3 sub phiên này mỏng so `memory_sub_tokens=60K` + `spawn_fill_directive`. BÁC vì (a) không phân-biệt được "mỏng có chủ-đích cho vai audit độc-lập" vs under-fill, (b) tự-flag spawn của chính mình = tự-phục-vụ. Ghi lại để owner biết nó đã được soi.

### Đ6 — #53 garble ×3/3 phiên này: có bản-ghi bền không?
- Đĩa **HIỆN TẠI**: `WAL:12` + `HANDOFF:5` mang chữ "garble" nhưng nội-dung là **S142 vòng-2 "2/2 lane 0-garble"** — tức bề-mặt đang QUẢNG-CÁO 0-garble cho wave. Sự-kiện S143 3/3 garble = **0 hit** trên WAL/HANDOFF/STATUS/error-ledger/run-folder.
- **Tiền-lệ chứng minh rủi-ro có thật:** sổ đếm class ở `auto-memory/feedback_agent_return_garble_recover.md` dừng ở *"×20 qua S118"*, commit cuối `23bbe97` **2026-07-15 (S124)** — 8 nhãn phiên không cập-nhật dù class tiếp-tục fire. Và S140 từng bắt đúng lớp này (diary S137 chưa từng seed, phải backfill sau 3 phiên).
- **KHÔNG xếp được vào enum 5 gap-\*** (không phải carry, không phải quyết-định-treo, không phải owner-specifics, không phải underfill) ⇒ theo `_note` của `lead_self_audit`: báo **verbatim + đề-nghị owner mở-rộng enum**, CẤM bịa class. Ra INFORM-3.

---

## KẾT — 3 FLAG / 3 INFORM (chi-tiết ở return)
1. FLAG MED-HIGH `gap-carry-dropped` — session-model-adopt rớt khỏi ledger (Đ1)
2. FLAG MED `gap-owner-specifics` — lượt gật #2 ghi 2/4 (Đ2)
3. FLAG MED-HIGH `gap-decision-sunk` — khối "Chờ-anh" 3 mục spec:68 (Đ3)
INFORM-1 carry-age 3 fire owner-held + coverage-gap repeat (Đ4) · INFORM-2 `/tiep` mù ngân-sách + backfill 210K không vết 2 closeout (Đ5) · INFORM-3 garble ×3 chưa có chỗ bền + xin mở enum (Đ6).

**class_repeat sau lượt này (lead cập-nhật, không phải em):** gap-carry-dropped 0→1 · gap-owner-specifics 1→2 · gap-decision-sunk 0→1 · gap-carry-aged giữ (INFORM không tính FLAG). `jump_on_class_repeat=3` — **không chạm jump**; em KHÔNG né-jump khi chọn class.
