# sub-lead-stale-auditor @close S162 (phiên-LOGIC L8, window-4) — 2026-07-30

Nhịp: hình-B VÔ-ĐIỀU-KIỆN @close (§L.b(j)(ii)). Nền máy = run.md khối §L.b(c) (detectors TOTAL 44 · counter 36 · A7 413/413 · nhip-no light 9/6 OVERDUE) — ĐỌC, KHÔNG chạy lại.
Enum class ĐÓNG: `lead_self_audit.flag_classes` (memory-budget.json:170-182) — 5 view-*.

## Số ĐO nền (đo tươi trong lượt này, để neo FLAG)
- migrations trên đĩa: `src/Backend/SolutionErp.Infrastructure/Persistence/Migrations/*.cs` trừ `.Designer.cs`/`ModelSnapshot.cs` = **69** (mới nhất `20260729122015_AddContractSigningPlans.cs`)
- `b.ToTable(` trong `ApplicationDbContextModelSnapshot.cs` = **95**
- `.claude/governance/.session-counter.json:14` counter = **36**, `last_ticked_session` = **S162**

(FLAG append bên dưới NGAY khi thấy — anti-#53)

---

## FLAG-1 — `view-residual-asym` — HIGH
**GỐC của FLAG-2/3/4.** Commit `a8027c0` (W1 KHKK, 07-29) **vừa tạo Mig 69 + 7 bảng vừa MỞ chính bảng canonical CURRENT STATE** — nhưng chỉ vá **2/5 row** mà nó làm lệch.
- view: `git diff 1d3d167..HEAD -- docs/STATUS.md` = **2 dòng đổi duy nhất** → `docs/STATUS.md:463` Policies 216→**220** · `:464` Menu keys 54→**55** (cả hai gắn nhãn `@S161`).
- source: cùng commit `a8027c0` = `src/Backend/SolutionErp.Infrastructure/Persistence/Migrations/20260729122015_AddContractSigningPlans.cs` (7 × `migrationBuilder.CreateTable`) ⇒ row `:458` Migrations · `:459` SQL tables **cùng bị commit đó làm lệch mà KHÔNG đổi**; `:465` Tests lệch tiếp bởi W2/W3/W6/W7.
- lệch: lead **đứng ngay trong bảng canonical**, sửa 2 row, bỏ 3 row mà chính tay mình vừa làm sai. Không phải "closeout chưa chạy" — là **sửa một phía**.
- resolve: khi 5 row của bảng CURRENT STATE cùng đo lại 1 lượt (mig/tables/test/policy/menu) thay vì vá lẻ theo row nào tình cờ nhớ.

## FLAG-2 — `view-stale-count` — HIGH
- view: `docs/STATUS.md:458` row **canonical** `| Migrations | **68** |` (note dừng ở "+S155: Mig 68 `AddPeAllowApproverDelete`").
- source: đĩa = **69** file migration (`Persistence/Migrations/*.cs` trừ `.Designer.cs`/`ModelSnapshot.cs`); mới nhất `20260729122015_AddContractSigningPlans.cs`. Corroborate: `.claude/WAL.md:30` "mig 69" · `runs/2026-07-29-S161-khkk-w1-schema/cicd-verify-a8027c0.md:267` "Mig 69 áp prod".
- lệch: view **68**, source **69**.
- 🔴 hệ-quả máy: row này là nơi `Get-StatusValue` của `governance-detectors.ps1` resolve canonical (chính note row `:463` khai vậy) ⇒ **TOTAL 44 của khối §L.b(c) đo token `mig` bằng thước sai** — cùng lớp canonical-poison S148 (test 528) và S159 (RAG row `:459`).
- resolve: `:458` = 69 + note Mig 69 `AddContractSigningPlans`.

## FLAG-3 — `view-stale-count` — HIGH
- view: `docs/STATUS.md:459` row canonical `| SQL tables | **89** |` (note tự khai nền = "re-ground S97 … Run #482 LIVE = 89, pre==post Mig 60 no-new-table").
- source: **96** — đo LIVE prod `runs/2026-07-29-S161-khkk-w1-schema/cicd-verify-a8027c0.md:117` `sys.tables WHERE is_ms_shipped=0` 89 → **96** (+7) ✅ khớp toán; `.claude/WAL.md:30` "tables 96". Đối-chứng độc-lập trên đĩa: `ApplicationDbContextModelSnapshot.cs` có **95** `b.ToTable(` distinct (+`__EFMigrationsHistory` = 96) và Mig 69 có **7** `CreateTable` (89+7=96).
- lệch: view **89**, source **96**. Câu "no-new-table" của note nay SAI NGHĨA — Mig 69 tạo 7 bảng.
- resolve: `:459` = 96 + đổi nền note sang Run #431/`a8027c0`.

## FLAG-4 — `view-stale-count` — HIGH
- view: `docs/STATUS.md:465` row canonical `| Tests | **562 PASS** | 45 Domain + 517 Infra`.
- source: **590/0 = 45D + 545I** — `.claude/WAL.md:30` "test 590" + `:15` reconcile "suite 590/0 = 45D+545I" + subject commit `3119cb9` "(suite **590/0**)"; leo bậc trong WAL: 566 (W1) → 574 (W2) → 580 (W3) → 587 (W6) → 590 (W7). `bfc7b79` FE-only, 0 file test ⇒ 590 còn đúng lúc này.
- lệch: view **562** (+ phân-rã Infra 517), source **590** (Infra **545**) — thiếu **28**.
- resolve: `:465` = 590 PASS (45D+545I) + ghi 5 bậc W1..W7.

## FLAG-5 — `view-stale-count` — MED
- view: `docs/STATUS.md:6` (dòng CURRENT) — trích: `counter **34**`.
- source: `.claude/governance/.session-counter.json:14` `"counter": 36`, `:15` `"last_ticked_session": "S162"`; khối máy run.md:16 cũng in `counter=36`.
- lệch: view **34**, source **36** (lệch 2 tick = 2 nhãn phiên S161/S162).
- resolve: `:6` = counter 36.

## FLAG-6 — `view-stale-status` — MED
- view: `docs/STATUS.md:6` — trích: `bundle **admin js D0sXA0fe/css DWDbm5As (frozen-hợp-lệ #69-B)** · **user js Y6dW_5CM/css 6YIAufJR**`.
- source: `.claude/agent-memory/cicd-monitor/MEMORY.md:71` "Bundle hash live: ship-baseline = run **#432** (07-30 `bfc7b79`) admin js `DXoYDy7R`/css `BZ5F-g1w` · eoffice js `o8KDluD1`/css `yNZDmVNz` (**cả 4 rotate**)".
- lệch: **4/4 hash sai**; nặng hơn số là **chú-thích trạng-thái** `frozen-hợp-lệ #69-B` — đợt này css admin ĐÃ xoay, nhãn "frozen" nay mô-tả sai hiện-trạng prod (ai đọc STATUS để kiểm deploy sẽ so nhầm baseline).
- resolve: `:6` chép 4 hash của Run #432 + bỏ nhãn frozen (hoặc ghi rõ frozen thuộc về #426, đã hết hiệu-lực).

## FLAG-7 — `view-stale-count` — HIGH
🔴 **Số đang nằm trong một câu hỏi CHỜ OWNER — và nó nói nhẹ hơn thực tế.**
- view: `docs/HANDOFF.md:30` — "**CÒN CẦN SỐ CỦA ANH — (51-bis):** `cicd-monitor/archive/_INDEX.md` nay **19.958/20.480 = 97,45%**, headroom **522 B**".
- source: đo tươi lượt này `stat` = **20.313 B** / cap `memory-budget.json:59` `l2_index.cap_bytes` 20.480 = **99,18%**, headroom **167 B**. Corroborate chính lead: `.claude/WAL.md:21` "51-bis cicd `_INDEX` **99,2%**".
- lệch: view **97,45% / 522 B**, source **99,18% / 167 B** — headroom thật chỉ còn **~32%** của con số đang trình anh.
- 🔴 vì sao HIGH: đây là slot owner-decision 3 lựa chọn (a) split (b) nâng cap (c) để nguyên "chấp nhận vỡ cap **~1-2 phiên nữa**". Với 167 B, vế (c) không còn là "1-2 phiên" mà là **1 dòng append**. Anh đang chọn trên thước cũ. Đây là **mặt-đối-xứng ngược** của FLAG-3@S159 (khi đó số phóng-đại giết một lượt quyết-định; lần này số **giảm-nhẹ** làm cùng việc đó).
- resolve: `:30` đo lại tại thời điểm trình + ghi "số TRÔI, đo bằng `stat` trước khi hỏi" (đúng luật `:34` tự đặt ra mà `:30` không theo).

## FLAG-8 — `view-stale-status` — HIGH
🔴 **Tự-quy-chiếu: chính FLAG của vai này @S159 làm nên dòng RÚT, và tiền-đề của nó nay đã lật.**
- view: `docs/HANDOFF.md:34` — slot **(45)** gạch ngang + "✅ **RÚT @S159 — BÁO ĐỘNG GIẢ, không cần anh quyết**", lý do ghi trong dòng: file sống `_mind-s-8.md` = **37,9%** (`69,2% @S160` — 22.665 B) ⇒ "**Cửa `/pause` tiếp theo KHÔNG bị chặn**".
- source: `.claude/sessions/session-8/_mind-s-8.md` đo tươi = **29.184 B** / `mind_ctx_kb` 32×1024 = **89,06%**, dư **3.584 B**. Chính lead đã biết: `.claude/WAL.md:20` housekeeping @closeout ghi "**mở lại slot-45 (tiền-đề lật)**" + "MIND-5 … nén MIND-2 (K6: **trần 89,1%**)".
- lệch: view khai trạng-thái **RÚT / không cần anh quyết / cửa không bị chặn**; source = trần đã leo 37,9% → 69,2% → **89,1%** trong 3 window và lead tự xếp việc "mở lại". Sổ owner-facing vẫn hiển thị **đã đóng**.
- 🔴 đọc đúng cái RÚT hồi S159: nó bác **con-số đo trên file đóng-băng**, KHÔNG bác **sự tồn tại của trần**. Dòng `:34` gói cả hai vào một chữ "BÁO ĐỘNG GIẢ" ⇒ nay bảo-vệ ngược cho một tình-trạng đã thật.
- resolve: `:34` lật lại trạng-thái (bỏ gạch ngang, ghi "tái-mở @S162, 89,1%") hoặc chuyển thành slot mới — miễn sổ anh đọc không còn nói "không cần anh quyết".
- ➕ corroborate FLAG-7: số 99,2% đã có ở **HAI** chỗ nội-bộ của lead (`WAL:21` + `_mind-s-8.md:189` "nay 99,2% @MIND-4 PARK") nhưng **chưa tới** slot owner-facing `HANDOFF:30`. Không phải chưa đo — là **đo rồi mà sổ anh đọc không đi theo**.

## FLAG-9 — `view-stale-header` — MED
- view: `docs/STATUS.md:6` neo tiêu-đề `**🔥 CURRENT (S159→S160, 2026-07-29 — phiên-LOGIC L8: window-1 = … ; window-2 /tiep @S160 = closeout sổ bền + PARK chờ anh)**` — liệt kê ĐÚNG 2 window.
- source: `.claude/WAL.md:3` "session: **S162** (phiên-LOGIC L8, **window-4**)"; `.session-counter.json:15` `last_ticked_session S162`; `git log 1d3d167..HEAD` = **6 commit code** sau closeout đó (`a8027c0` `6cbc6ad` `df52fa0` `761d818` `3119cb9` `bfc7b79`).
- lệch: view mô-tả L8 = 2 window; thật = **4 window**, và 2 window vắng mặt là 2 window **chở toàn bộ prod-code** của arc (Mig 69 + 7 bảng + 5 wave + ship cây 4-folder).
- ⚖️ khai thật: `WAL:20` ĐÃ xếp "STATUS:6 arc S160-161 + số mig/test/menu" vào housekeeping @closeout ⇒ flag này lead đã biết. Nhưng dòng housekeeping đó **chỉ nêu `:6`** — KHÔNG nêu bảng canonical `:458/:459/:465` (FLAG-2/3/4) và **không nêu HANDOFF** ⇒ đừng đọc "đã có trong to-do" thành "đã phủ hết".
- resolve: `:6` re-stamp nhãn S162 + kể đủ 4 window.

## FLAG-10 — `view-stale-header` — MED
- view: `docs/HANDOFF.md:5` `**🆕 Last updated:** 2026-07-29 chiều (**S159→S160** … window-1 `/pause` @14:40 + window-2 `/tiep` closeout)`.
- source: `git log -1 --format=%ad -- docs/HANDOFF.md` ⇒ chạm cuối tại `1d3d167` (07-29); sau đó **window-3 (S161) chạy TRỌN 5 wave build + 5 commit SHIP rồi `/pause`** mà 0 byte HANDOFF đổi (`git diff 1d3d167..HEAD -- docs/HANDOFF.md` = rỗng).
- lệch: sổ brief-5-phút của anh dừng ở **S160** trong khi 2 window đã đi qua; ai đọc HANDOFF để nối việc sẽ không thấy KHKK W1–W7 tồn tại.
- ⚖️ khai thật: closeout đang chạy chính lúc này ⇒ phần **S162** là bình-thường-chưa-tới-lượt. Cái KHÔNG bình thường là **window-3 đóng bằng `/pause` mà không chạm sổ** — đó mới là chỗ flag neo.
- resolve: `:5` bump nhãn + đoạn tóm S161 (5 wave) và S162 (cây 4-folder).

## FLAG-11 — `view-residual-asym` — HIGH
🔴 **Tái-phạm NGUYÊN VĂN bài S143, đúng lớp "enumeration bằng TÊN lão-hoá mà grep-theo-SỐ không bắt".**
- view: `.claude/agents/README.md:242` — dòng tự xưng "**VALID_ROLES (whitelist `hmw.js` — ĐỦ roster** …)" rồi liệt kê **20 tên**.
- source: `.claude/workflows/hmw.js:22-43` `VALID_ROLES` = **23 tên** (`:41` `ctx-audit`, `:42` `ctx-curator`,`ctx-verifier` — +S153). Đối-chứng đĩa: `ls .claude/agents/*.md | grep -v README | wc -l` = **23**. Đối-chứng thứ 3: `memory-budget.json:28` `_roster_note_S153` "VALID_ROLES = 23".
- lệch: mirror thiếu **đúng 3 vai bộ-ba Ctx**; dòng lại **tự khai "ĐỦ roster"** ⇒ người đọc dừng tra. `:244` của chính file cảnh báo "đổi roster = đổi **2 BỀ-MẶT ĐỘC-LẬP**" — S153 sửa bề-mặt `hmw.js`, bỏ bề-mặt README ⇒ **dư-lượng sửa-một-phía sống 9 nhãn phiên** (S153→S162).
- 🔴 vì sao grep im: cả `README:3/:6/:242/:289` đều **cố ý KHÔNG chép số** (B1) ⇒ mọi acceptance dạng `grep "roster 2[0-9]"` = **0 hit = trông sạch**. Phải **ĐẾM PHẦN-TỬ rồi so canonical** — đúng câu `README:28` tự ghi làm bài học S143, ngay **214 dòng phía trên** chỗ tái-phạm.
- resolve: `:242` thêm 3 tên ctx-* + acceptance = đếm phần-tử 2 bề-mặt bằng 1 lệnh, không grep số.

## FLAG-12 — `view-stale-role-desc` — MED
- view: `.claude/agents/README.md:242` cuối dòng — "🔸 **Cả 10 monitor đều INFORM-only, lane RETURN-only** (propose-only)".
- source: đếm monitor INFORM-only thật = **13** — 10 cũ (tooling · harvest · lead-stale · lead-gap · harness-eval/refine/audit · ring1/2/4) **+3 ctx**: `hmw.js:41` ctx-audit "INFORM-only", `hmw.js:42` ctx-curator + ctx-verifier "**cả 2 INFORM-only** trả-văn-bản".
- lệch: view **10**, source **13** — con-số trong mô-tả VAI, hệ-quả trực-tiếp của FLAG-11 (số đi kèm danh-sách thiếu).
- resolve: sửa cùng lượt với `:242`, hoặc bỏ số và ghi "mọi monitor" (B1: đừng chép số đếm được).

## FLAG-13 — `view-stale-count` — MED
- view: `CLAUDE.md:69` (root, **auto-inject mỗi phiên**) row Modules `| PurchaseEvaluation … | 12,13,15,49,50,52-61,65-67 |` — tập migration của module PE.
- source: `Mig 68 = 20260727033522_AddPeAllowApproverDelete` = **migration của PE** (`STATUS:458` tự mô tả "PE cho phép approver xóa phiếu"). Tập đúng phải kết thúc ở **68**, không phải 67.
- lệch: enumeration thiếu **68**. Cùng lỗi ở `CLAUDE.md:62` "Lịch sử mig gần đây: **+S133 Mig 67**" — "gần đây" nay trỏ 2 migration về trước (68, 69 đã land).
- 🔴 lớp giống FLAG-11: `:62` mở đầu bằng đúng câu "**KHÔNG copy số ở đây để tránh drift**" rồi dòng ngay dưới copy một **danh-sách số** — luật B1 chặn được "con-số tổng", KHÔNG chặn được "danh-sách phần-tử".
- resolve: `:69` + 68 · `:62` nối 68/69 (hoặc bỏ hẳn liệt-kê per-module, trỏ canonical).
- ↪️ **KHÔNG phải turf tao (chuyển `lead-gap-auditor`):** bảng Modules `CLAUDE.md:66-77` **hoàn toàn VẮNG row** cho module mới `SolutionErp.Domain.ContractSigningPlans` (7 bảng, Mig 69, policy `KeHoachKyKet`) — đó là *cái THIẾU*, tao chỉ trỏ, không đếm vào TOTAL của tao.

## FLAG-14 — `view-stale-header` — MED
- view: `docs/STATUS.md:649` `## 🔥 In Progress (**S155→S157** — phiên-LOGIC **L7**)` — đây là section In-Progress **trên cùng** (các `## 🔥 In Progress` khác ở `:660/:667/:674` là S117/S113/S112 đã lùi tầng).
- source: phiên-LOGIC đang chạy = **L8**, nhãn **S162** (`.claude/WAL.md:3` · `.session-counter.json:15` · `run.md:3`). L7 đóng từ 07-28 (`docs/changelog/sessions/2026-07-28-0930-S155-S157-*`).
- lệch: tiêu-đề "việc ĐANG LÀM" mang nhãn **phiên-LOGIC đã đóng** — lệch trọn 1 phiên-logic, không phải 1 window.
- resolve: bump `:649` sang L8/S162 (nội-dung row là việc khác — xem ghi-chú turf dưới).
- ↪️ **turf `lead-gap-auditor`:** bảng dưới `:649` **0 row** cho arc KHKK 5 wave + cây 4-folder ⇒ *cái THIẾU*, tao không đếm.

## FLAG-15 — `view-stale-count` — MED
- view: `.claude/sessions/session-8/_context-s-8.md` §PAUSE-3 (`:105`+, khối "(1) quyết-định đã CHỐT") — "W1 `a8027c0` (Mig 69, 7 bảng, 88→95… **menu 135→142**)".
- source: `runs/2026-07-29-S161-khkk-w1-schema/cicd-verify-a8027c0.md:129` `COUNT(*) MenuItems`: pre **142** → post **142** ⇒ "**GIỮ NGUYÊN, 0 row thêm**"; `:66` "MenuItems **142 GIỮ** (seeder không thêm menu-row; `KeHoachKyKet` menu-row **đã có từ S159**)"; `:268` PASS.
- lệch: view gán cho W1 một mức tăng menu **135→142**; source đo pre==post==**142**, mức tăng của W1 = **0**. Số 142 đã đúng từ S159 (`STATUS:6` "MenuItems prod 142").
- 🔴 vì sao đáng sửa dù chỉ là sổ nội-bộ: `_context-s-8.md` nằm trong `memory-budget.json:19` `tiep_reload.sources` ⇒ **nạp lại MỖI `/tiep`**. Sai-số ở đây tự tái-sinh mỗi cửa, và cửa sau không còn cicd-verify trong tay để bác.
- resolve: sửa thành "menu 142 GIỮ (0 row)" — hoặc bỏ số, trỏ `cicd-verify-a8027c0.md`.

## FLAG-16 — `view-stale-count` — LOW
- view: cùng dòng `_context-s-8.md` §PAUSE-3 — "W1 … 7 bảng, **88→95**".
- source: `cicd-verify-a8027c0.md:117` `sys.tables WHERE is_ms_shipped=0` **89 → 96** (+7) ✅ khớp toán; `.claude/WAL.md:9` "Mig 69 · **96 bảng**".
- lệch: **cùng-tên khác-ĐƠN-VỊ** — 88→95 là đếm theo `ToTable` của EF-snapshot (loại `__EFMigrationsHistory`), 89→96 là đếm prod `sys.tables` = **đơn-vị canonical** mà `STATUS:459` dùng. Delta +7 đúng cả hai; **mốc thì lệch 1 ở cả hai đầu**.
- 🔴 đây đúng lớp `ring2` D-4 @S159 đã chặn lead một lần (*"cùng tên ≠ cùng đơn-vị"*, tally 3 vs 7): số không sai về toán nhưng **sai thước**, và nó nằm trong file reload-mỗi-`/tiep` cạnh số canonical khác thước ⇒ lượt sau rất dễ bị chép chéo.
- resolve: đổi sang đơn-vị canonical (89→96) hoặc ghi rõ "(đơn-vị EF-snapshot, canonical prod = 89→96)".

---

## VERIFIED-CLEAN (đo rồi, KHÔNG flag — chống báo-động-giả; kèm LỆNH để ai cũng bác được)
1. **roster 23** — `STATUS:6` "roster 23" + row `:469` "Sub-agents 23" == đĩa `ls .claude/agents/*.md | grep -v README | wc -l` = **23**. KHỚP.
2. **gotcha 84** — row `:466` "84" == `grep -o '^### [0-9]*\.' docs/gotchas.md | sort -n | tail -1` = **84**. KHỚP (S161/S162 không thêm gotcha).
3. **menu 142 / policy 220 / menu-key 55** — `STATUS:463/:464` vừa vá @S161 khớp `cicd-verify-a8027c0.md:129`; đây chính là 2 row ĐÚNG trong FLAG-1.
4. **`_mind-s-8.md` MIND-4 "OVERDUE:light 8/6"** = **KHÔNG stale**: MIND-4 đóng dấu `2026-07-30T00:35 @2c11005` (window-3, counter còn 35 ⇒ 35−27=8). Đúng-tại-thời-điểm, block append-only ⇒ **frozen hợp lệ** (bẫy #3). Số 9/6 thuộc MIND-5 mà `WAL:20` đã xếp.
5. **MIND-4 §E "ctx-verifier CO-CO 10 cờ"** vs `run.md:21` "8 cờ K1..K8" = **2 SỰ-KIỆN KHÁC NHAU** (10 cờ = `/tiep` window-3 → `_tiep-2.md`; 8 cờ = `/tiep` window-4 → `_tiep-3.md`). KHÔNG flag.
6. **`_context-s-8.md` + `_mind-s-8.md` tuân B1** — cả hai TRỎ khoá (`session_ctx_kb` / `mind_ctx_kb`), không chép số. `_mind` header còn ghi thẳng "CẤM chép số vào tệp này". Sạch trên trục chép-số.
7. **Persona cặp H24 (bài S153 tự-quy-chiếu)** — `lead-stale-auditor.md:53` + `lead-gap-auditor.md:46` đều đã ghi "VÔ-ĐIỀU-KIỆN @open+@close"; con-trỏ `session-start §2.1.8(e)` **CÒN ĐÚNG** (`session-start.md:242` = `### 2.1.8`, `:269` = `(e)`). 6 site lệnh vá @S159 vẫn giữ (`session-start:244` · `session-end:46/:47/:112/:114`). 0 tái-phát.
8. **Báo-cáo lead cho owner đợt cây 4-folder** (`runs/2026-07-30-S162-cay-4-folder-gd/ship-synthesis.md`) — `:3` "5/8 flag vá … 2 giới-hạn … 1 sửa-memory" == `:16` liệt F-1/3/4/6/7 (5) + F-8 (memory) + `:20/:21` F-2/F-5 (2 giới-hạn) = **8/8 khớp**, `:26` test-gate 590 khớp WAL. **Sau khi lead tự vá F-1/3/4/6/7, KHÔNG claim nào trong báo-cáo bị lệch** — 0 FLAG.
9. **`.claude/WAL.md`** — đọc trọn 30 dòng, là bề-mặt **TƯƠI NHẤT** (mig 69 · tables 96 · test 590 · counter 36 · 99,2% · slot-45 tiền-đề-lật). 0 FLAG; WAL chính là SOURCE bác phần lớn FLAG ở trên. 🔴 Đọc đúng: mọi số đúng ĐÃ nằm trong tay lead — **khoảng cách là giữa nơi lead làm việc và nơi anh đọc**, không phải giữa lead và sự-thật.

## COVERAGE — khai thẳng, CẤM làm tròn thành sạch
| Bề mặt | Nấc |
|---|---|
| `docs/STATUS.md` dòng CURRENT `:6` | ✅ chạm ĐỦ (mọi token: mig/bảng/test/gotcha/counter/roster/menu/bundle/RAG) |
| `docs/STATUS.md` bảng CURRENT STATE `:456-470` | ✅ chạm ĐỦ 15 row |
| `docs/STATUS.md` phần còn lại (830 dòng: mega-diary `:25`, Recently-Done `:479`+) | ⚠️ **CHƯA** — chỉ mở `:649` (In-Progress trên cùng). Mega-diary `:25` tự khai FROZEN ⇒ bẫy #3, cố ý không soi |
| `docs/HANDOFF.md` | ⚠️ **PARTIAL** — chạm `:1-34` (header, NEXT-em, slot (45)/(50)/(51)/(51-bis)); **383/417 dòng còn lại CHƯA đọc** |
| `.claude/WAL.md` | ✅ chạm TRỌN 30/30 dòng |
| `.claude/sessions/session-8/_context-s-8.md` | ⚠️ **PARTIAL** — chạm (a) STOCK-map · (c) STOCK-touched · PAUSE-3; **PAUSE-1/PAUSE-2 thân bài CHƯA đọc** |
| `.claude/sessions/session-8/_mind-s-8.md` | ⚠️ **PARTIAL** — chạm header + MIND-4 (A–E) + sổ-carry `:185-189`; **MIND-1/MIND-2/MIND-3 CHƯA đọc** (29.184 B) |
| `.claude/agents/*.md` | ⚠️ **PARTIAL** — chạm `README.md` (+ mirror `hmw.js:22-43`) + 2 persona `lead-*`; **20/23 persona CHƯA mở từng file** (chỉ quét grep-số ngang) |
| `CLAUDE.md` root | ⚠️ **PARTIAL** — chạm `:62` mig-history + `:66-77` bảng Modules; phần Quick-Rules/Tests/Skills chỉ lướt |
| Báo-cáo lead → owner (ship-synthesis S162) | ✅ chạm TRỌN 27 dòng |
| `runs/2026-07-30-S162-cay-4-folder-gd/` sub-* (designer/reviewer/cicd, ~47 KB) | ❌ **CHƯA CHẠM** |

🔴 **Vì thế 16 = SÀN, KHÔNG PHẢI TỔNG.** 5/11 bề-mặt mới PARTIAL, 1 chưa chạm ⇒ **không được đọc phần chưa soi thành sạch** (bài S159: coverage thiếu mà làm tròn = lỗi nặng hơn thiếu FLAG).

## END
TOTAL: **16 FLAG** (SÀN) — phân-rã theo class ĐÓNG:
- `view-stale-count` = **8** (FLAG-2,3,4,5,7,13,15,16)
- `view-stale-header` = **4** (FLAG-9,10,14)  ← ⚠️ đếm lại: 3 (FLAG-9,10,14)
- `view-residual-asym` = **2** (FLAG-1,11)
- `view-stale-status` = **2** (FLAG-6,8)
- `view-stale-role-desc` = **1** (FLAG-12)
Tổng kiểm: 8+3+2+2+1 = **16** ✅ (dòng `view-stale-header` ở trên gõ nhầm "4", số ĐÚNG = **3** — giữ vết errata thay vì sửa lặng).
0 finding nào rơi ngoài enum ⇒ **0 đề-nghị mở rộng enum** lượt này.
--- END sub-lead-stale-close-S162 ---



