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

**Vai:** `lead-view-auditor` — H24 §2(1) trục VIEW LỆCH SOURCE.
**Nhịp:** counter=**17**, `last_audit.deep_at_counter=3`, `h24_cadence.deep_every=15` ⇒ tới hạn tự nhiên = counter **18**. Đây là **FORCE-FIRE SỚM 1 NHỊP** theo direction owner @S143 "OK làm hết đi" — **KHÔNG phải tới hạn tự nhiên**.
**Ghi đĩa TRONG LÚC LÀM** (anti-#53).

---

## 0. Machine baseline (chạy 1 lần, KHÔNG lặp lại)

`scripts/governance-detectors.ps1` → **TOTAL FLAGS: 47** (INFORM-only 0, tách riêng).
So mốc gần nhất (S140 light-audit #3): 45 → **+2**.

Phân-rã máy đã đo (nền — KHÔNG phải việc của tao):
- C2/B3 derived-stale count: 15 (CLAUDE.md:86 · contract-workflow SKILL ×6 · ef-core-migration SKILL ×7 · session-end.md:148)
- C1 dangling-wikilink: 24
- C3 vocab-fork: 3 (wave-folder/run-trace · Dự trù PRO/Ngân sách PRO · two-tier/all-inherit/worker-tier-pin)
- H24-1 title-freshness: 2 (rag-setup-plan:4 2026-05-12 · form-engine/SKILL:15 2026-04-30) — mốc-phải = **2026-07-22** từ HANDOFF:5
- H24-2 carry-age INFORM: 3 (uat-s134-luyke 7 · uat-s133-budget-freeze 9 · hook-vs-budget-cap 13)
- H25 GAP-2 ritual: OK 3/3 · GAP-3 role-notebook: roster=**17**, diaries-ok=**17**, flagged 0
- H24-5 counter-ancestor: SQUASH-BENIGN (đúng contract v2), 0 flag
- C4 self-match: 0

→ Từ đây trở xuống **chỉ** phần máy MÙ (ngữ-nghĩa).

---

## 1. Bề mặt soi (S143 lead vừa surface) — trạng thái đĩa

`git status` lúc audit: **STATUS.md · HANDOFF.md · scripts/nhip-no-probe.ps1 = MODIFIED chưa commit** (closeout còn dở). 2 commit đã push: `2757e41` (56 file) + `3f4310f` (1 file).

Đã đọc: `docs/STATUS.md` (:435-462 CURRENT STATE + Recently Done S141–S143) · `docs/HANDOFF.md` (:5-8) · `.claude/WAL.md` (31 dòng) · `.claude/agents/README.md` (:3/:5/:27/:172-184/:190/:236) · `scripts/nhip-no-probe.ps1` (vế-4 CÓ trên đĩa, dòng 162-201) · 7 adap-report mới · email outbox `2026-07-22-...-bao-nac-wave-dot-9-10.md` · `.claude/governance/.session-counter.json` · `.claude/workflows/hmw.js` VALID_ROLES.

**Neo canonical:** `docs/STATUS.md:450` §Sub-agents = **17** ; đĩa `ls .claude/agents/*.md | grep -v README | wc -l` = **17** ⇒ canonical KHỚP đĩa, an toàn làm gốc so.

---

## 2. FLAG (ngữ-nghĩa — phần máy MÙ)

### F1 — `view-residual-asym` | MED | "chặn-bằng-thiếu-tool" chưa lật ở CANONICAL cell
- **view:** `docs/STATUS.md:450` ô §Sub-agents — mô-tả bộ-ba: *"Read-only INFORM-only propose-only, **NO Write/Edit** (chặn-bằng-thiếu-tool)"*.
- **source:** `docs/STATUS.md:462` (đoạn Recently Done S141–S143, CÙNG FILE, mới hơn) khai đo @S143: whitelist `tools:` KHÔNG chặn ghi ở runtime, 6 vai read-only vẫn bị cấp Write/Edit ⇒ *"chặn-bằng-thiếu-tool" là **tuyên-bố ý-định***. Cùng nội dung ở `.claude/auto-memory/feedback_monitor_residual_write_containment.md` (khối "⚠️ S143 — premise correction, measured", commit `3f4310f`).
- **lệch:** ô CURRENT-STATE (canonical, cái người ta đọc để biết hiện-trạng) vẫn ghi cơ-chế chặn; đoạn narrative + memory đã lật. Đợt sửa `3f4310f` chỉ vá 1 phía.
- **resolve:** ô :450 đổi `(chặn-bằng-thiếu-tool)` → `(khai-báo ý-định — runtime VẪN cấp Write/Edit, đo S143; backstop thật = git-diff commit-gate)`.

### F2 — `view-residual-asym` | MED | cùng root F1, site thứ 2
- **view:** `.claude/agents/README.md:190` — *"2 monitor sub (tooling-auditor H1 + harvest-curator H2 …): read-only toolset = `[Read, Grep, Glob, Bash, +4 RAG-read]`, **NO `store_memory`, NO Write/Edit**"*.
- **source:** `.claude/auto-memory/feedback_monitor_residual_write_containment.md` khối S143 (đo 6 vai read-only: runtime **append `Write`/`Edit`** ở cuối tool-list dù frontmatter không khai).
- **lệch:** README vẫn tuyên-bố "NO Write/Edit" như SỰ-THẬT tool-grant. Chính dòng này đã có caveat G-015 cho `Bash` nhưng CHƯA có caveat mới cho `Write/Edit`. Commit `3f4310f` vá memory, KHÔNG vá README.
- **phụ (cùng dòng, không tách flag):** "**2** monitor sub" nay là **7** vai cùng shape read-only (H1, H2, 2×H24, 3×trio) — số trong mô-tả vai lệch, nhưng câu neo mốc "2026-06-07" nên đọc được là phạm-vi lịch-sử ⇒ gộp vào resolve của F2, không đếm riêng.
- **resolve:** thêm 1 câu "S143 đo: runtime vẫn cấp Write/Edit — whitelist = ý-định, không phải cơ-chế" + mở phạm-vi câu sang mọi vai read-only hiện-hành.

### F3 — `view-residual-asym` | MED | roster enumeration trong CÙNG file, sửa 1 phía
- **view:** `.claude/agents/README.md:27` — *"Roster THẬT = 7 core (diagram) + frontend-designer + database-agent + office-document + tooling-auditor + harvest-curator + lead-view-auditor + lead-omission-auditor (H24, S121 W2)"* ⇒ **14 vai**.
- **source:** `docs/STATUS.md:450` = **17** ; đĩa = **17** ; và **CÙNG FILE** `.claude/agents/README.md:5` ĐÃ liệt kê đủ *"trio-memory `harness-eval` + `harness-refine` + `harness-audit`, **S141**"*; `:236` cũng đã "17 folder" đủ tên.
- **lệch:** dòng :27 tự xưng "Roster THẬT" nhưng thiếu đúng 3 vai mới. Sweep S141-S143 đụng `agents/README.md` 4 hunk (`git show 2757e41 -- .claude/agents/README.md`: dòng ~5, decision-tree, skill-matrix, "14 folder→17 folder") — **bỏ sót hunk :27**.
- **resolve:** thêm 3 vai trio vào :27 (hoặc bỏ enumeration, chỉ trỏ canonical — đúng luật dòng :3 "vá bằng BỎ số").

