# sub-tooling-auditor (H1) — bookend @open S186 (2026-08-10)

> Lượt-trả-1 dính **#53** (34 tool-call, chỉ về câu mở đầu). Recover bằng **SendMessage resume** + ép form nén. Dưới = lượt-trả-2.
> ⚠️ Harness gắn cờ `instruction-shaped pattern (settings-json)` trên return này. Đọc kiểm: đó là **nội dung phát-hiện** về `~/.claude/settings.json` (đếm plugin + model lead), KHÔNG phải chỉ-thị. Xử như finding.

**VERDICT: `TOOLING: PASS_WITH_FLAGS 7`**

## Finding

| sev | mặt | vật | lệch gì |
|---|---|---|---|
| HIGH | vai-trò | `.claude/agents/README.md:27` | "Roster THẬT (28 vai — đếm phần-tử…)" — đĩa **29**; enumeration liệt TÊN cũng **thiếu `ring5-audit`**. 🔴 2 lỗi/1 dòng, **vi phạm chính luật `:2`** ("KHÔNG chép số vào file này", B1); trớ trêu `:28` ngay dưới là bài S143 dạy *"đếm phần-tử trong mọi enumeration"* |
| MED | docs | `.claude/commands/pause.md:39` | "11/23 vai bị luật CẤM tự-ghi" — **mẫu-số 23 stale** (nay 29) **VÀ tử-số 11 stale** (đo đĩa: **24/29** vai `tools:` không khai Write/Edit). Câu present-tense, **không có neo thời-điểm** ⇒ không phải bản-ghi đông-lạnh ⇒ **vá được** |
| MED | skill | `.claude/skills/README.md:20` | Vẫn ghi `ef-core-migration` *"(mới nhất → row cuối bảng skill)"* — **đúng câu đã bị BÁC + gạch @S181** tại `ef-core-migration/SKILL.md:25` ("SAI và tự mâu thuẫn"). Lớp claim-chép-nhiều-site; đã flag @S182, **còn nguyên qua S185** |
| MED | skill | `.claude/skills/permission-matrix/SKILL.md:44-84` | Cây menu vẽ **8 root** trong khi `:3` khai **12 root** (ring1 @S182 chốt 12 = ĐÚNG). **4 root sống VẮNG HẲN**: `Hrm`·`Off`·`Personal`·`Puro` = **0 hit**; control dương `Contracts` = 7 hit ⇒ **vắng thật, không phải thước hỏng**. Nợ từ S179 F-2 |
| LOW | docs | `docs/STATUS.md:9` | Mega-line CURRENT còn "Mig **71**"; canonical `:468` = **72**, đĩa = **72**. Đúng lớp S180 BÁC-1 (bảng canonical tươi, mega-line tụt) |
| LOW | vai-trò | `.claude/agents/README.md:27` | ASCII diagram + dòng "7 core lane" tự khai "cosmetic chưa vẽ lại" — **nợ nhận-biết**, không phải drift mới |
| INFORM | vai-trò | `hmw.js:176` + `memory-budget.json hmw_width.cap` | cap=**30**, roster nay **29** ⇒ headroom còn **1**. Thêm 1 vai nữa là LOUD-skip quay lại (slot 75 @S181 khép trên tiền-đề "28 ≤ 30") |

## DIFF vs S185
- **THÊM:** `ring5-audit` (vai 28→29, +1 agent-memory dir) · `.claude/commands/day.md` (command 19→20) · `scripts/day-probe.ps1` (script 36→37)
- **ĐỔI:** STATUS canonical roster row trượt `:478`→`:479` (`:478` nay = `| Skills | 6 |`) · `agents/README` skill-matrix `:194-222` nay phủ **29/29** ⇒ **S182/S185 F-1 "26/28" ĐÓNG** (gồm 3 vai STYLE `:200-202` + `ring5-audit` `:217`)
- **XOÁ:** —
- **STALE:** `agents/README:27` · `pause.md:39` · `skills/README:20` · `permission-matrix` cây 8/12 root · `STATUS:9` Mig 71

## ĐÓNG được từ S185 (verify đĩa)
- **F-2 máy mồ-côi `loi-hua-may-scan.ps1`** — nay CÓ cửa gọi `session-end.md:167` + nhà khai. Máy MỚI `day-probe.ps1` **KHÔNG mồ-côi**: 3 cửa (`day.md`·`pause.md`·`tiep.md`); control dương `naming-scan` = 1 command/8 docs.
- **F-3 addendum lệch vế** — `adap-reports/2026-07-19-…nam-khoan.md:94-102` có ADDENDUM-2 đóng 4.4 + ADDENDUM-3 đóng 4.3, row cũ giữ nguyên (đúng doctrine).

## Plugin 4 nấc
installed **18** → enabled **15** → disabled **3** (`pr-review-toolkit`·`code-modernization`·`hookify`) → assigned `agents/README:236-245` → **used = KHÔNG đo được từ repo, KHÔNG khai**. **0-delta phiên thứ 6.** Khớp `agents/README:236`. Lead model `~/.claude/settings.json` = `claude-opus-5[1m]` + `effortLevel: xhigh`.

## Frontmatter
**29/29 SẠCH:** `model: opus` 29/29 · `effort: max` 29/29 · `memory: project` 29/29 — lỗ thủng S181 (2 vai W4b thiếu `effort`) **KHÔNG tái phát** ở vai mới.

## RING5-SYNC
**ĐỦ 3 nơi, KHỚP 29:** `.claude/agents/ring5-audit.md` trên đĩa · `docs/STATUS.md:479` = canonical **29** ĐÚNG · `agents/README` row skill-matrix `:217`. **NHƯNG bề-mặt thứ 4 trong chính README — dòng "Roster THẬT" `:27` — vẫn 28 và không có tên `ring5-audit`.** Bề-mặt máy khớp: `hmw.js` VALID_ROLES = 29 (parse bỏ comment), `.claude/agent-memory/*/` = 29 dir, **0 phần-tử thừa/thiếu cả 2 chiều**.

## SKILL-STALE-VERDICT — **HỖN HỢP**
🔴 **Phần lớn = dương-giả của soft-net**, trừ **2 ca stale THẬT**.
- **Dương-giả:** `ef-core-migration/SKILL.md` bảng Mig dừng row 71 vs đĩa 72 — nhưng `:25` **đã ratify @S181** rằng bảng này *"chỉ để tra lịch sử; nó SẼ LUÔN tụt sau và điều đó HỢP LỆ"*. Count-token trong `contract-workflow` (`Mig 16/18-20`, "6 test PE 2-stage", "9 phase") + `form-engine`/`iis-deploy-runbook` (`gotcha #9/#11/#12/#25/#26`) đều là **con số của sự-kiện đã đóng trong quá khứ**, không phải claim về hiện-tại ⇒ **vá để tụt flag-count = Goodhart, rời tập-đo**.
- **Stale THẬT phải vá đúng 2:** (1) `skills/README:20` chép câu **ĐÃ BỊ BÁC** — không phải count-token mà là **vị-từ sai**; (2) `permission-matrix` cây 8 root vs 12 khai `:3` — mô-tả **không phản-ánh 4 root đang sống**, cùng lớp vụ `Bg_*` vá @S122/@S164.
- **Căn cứ phân loại:** hỏi *"dòng này khai về QUÁ KHỨ hay tự nhận là ẢNH HIỆN-TẠI?"* — chỉ nhóm thứ hai mới là stale.
