# sub-lead-stale-auditor — DEEP sweep @open S192 (phiên-LOGIC L16)

- ngay: 2026-08-13 · counter H24 = 66 · nhip: `light 6/6 deep 1/1 OVERDUE:light,deep` => DEEP (bao trum light)
- vai: `lead-stale-auditor` (H24 §2(1) vai-STALE) — **propose-only, INFORM-only, KHONG Write/Edit vao repo ngoai file NAY**
- enum ĐÓNG doc tu `.claude/agent-memory/memory-budget.json` -> `lead_self_audit.flag_classes` = **12 class** (6 `view-*` + 6 `gap-*`); vai nay CHI dung 6 nhanh `view-*`:
  `view-stale-count` · `view-stale-status` · `view-stale-header` · `view-stale-role-desc` · `view-residual-asym` · `view-claim-broader-than-sample`
- may-nen da chay TRUOC (KHONG chay lai): `governance-detectors.ps1` TOTAL 58 + INFORM 29 · `memory-selfimprove-audit` GAP C-spectrum ×2 · `crystallized-backfill` headroom 114223 · `nhip-no-probe`.

## Quy uoc ghi
Ghi TUNG FLAG NGAY khi tim ra (chong #53). Moi FLAG bat buoc 3 chan: **view** (`file:anchor`) · **source** (`file:anchor`) · **lech cu the** (view noi X vs source noi Y) + `resolve`.

---

## SO SONG doi chieu (lead do tuoi hom nay + vai tu do lai)

| datum | so SONG | cach do (vai tu do) |
|---|---|---|
| Sub-agents tren dia | **29** | `ls .claude/agents/*.md \| wc -l` = 30, tru `README.md` = **29** — KHOP row STATUS |
| session-<N> max | **16** | `ls .claude/sessions/` -> session-1..16 |
| counter H24 | **66** | run.md + `.session-counter.json` |
| Mig / tables / test / gotcha / menu / policy | 73 / 97 / 697 / 92 / 120 / 480 | lead do tuoi, doi chieu tung o ben duoi |

---

## FLAG-1 — HIGH — `view-residual-asym`
**Ô "audit định kỳ": 2 site, 2 số, và site tự-xưng-duy-nhất thì SAI ngay ở vế "duy nhất".**

- **view:** `CLAUDE.md:128` — khai `ĐÃ CHẠY 2026-08-07 (S179)` · `Lần kế: 2026-09-01` · và tự tuyên ô này là **"giá-trị SỐNG duy nhất trong repo"**, kèm lý do *"rules.md trỏ về STATUS nhưng STATUS KHÔNG có row canonical"*.
- **source-1:** `docs/STATUS.md:848` (§🔧 Maintenance backlog) — CÓ row cùng chủ đề, nội dung: `✅ 2026-07-01 DONE (S96 881783c)` … `next 2026-08-01`.
- **source-2:** `docs/rules.md:559` + `docs/rules.md:307` — CẢ HAI đều chỉ định `next-date → docs/STATUS.md (canonical)`.
- **lệch:**
  1. Vế **"STATUS KHÔNG có row canonical"** = SAI. Row tồn tại (`STATUS:848`), mang **ngày**, và là đúng thứ 2 con-trỏ `rules.md` gọi tên ⇒ mệnh-đề nền của cả ô sụp.
  2. `STATUS:848` (nhà mà rules.md gọi là **canonical**) nói `next 2026-08-01` → hôm nay 2026-08-13 đọc thành **QUÁ HẠN 12 ngày**; nó cũng **không hề biết** lượt S179 (2026-08-07) đã chạy. `CLAUDE.md:128` (nhà **derived**) mới là nhà giữ số đúng.
  3. ⇒ **B1 bị lộn ngược**: derived tươi, canonical thối. Đợt sửa @S179 land **một phía** (CLAUDE.md) và bỏ phía kia — đúng định-nghĩa `view-residual-asym`.
- 🔴 **Tự-phạm luật của chính nó:** cùng dòng `CLAUDE.md:128` ra lệnh *"đóng audit thì phải lật ô này trong CÙNG lượt, không thì đúng lượt đóng lại đẻ neo thối mới"* — lượt đóng S179 lật ô này nhưng **không lật ô kia**, nên neo thối mới đã đẻ đúng như câu cảnh báo.
- **resolve:** chọn MỘT nhà (đề nghị `STATUS:848` vì 2 con-trỏ `rules.md` đã trỏ về đó), lật nó thành `ĐÃ CHẠY 2026-08-07 (S179) · next 2026-09-01`, phía kia hạ thành con-trỏ trần. Hết flag khi row Maintenance không còn `2026-08-01` **và** `CLAUDE.md:128` không còn chữ "duy nhất".

---

## FLAG-2 — HIGH — `view-stale-status`
**Dòng `🔥 CURRENT` khai đang làm việc của L9/S168; và cái CỚ bào chữa cho nó ("advance @closeout") bị chính git bác.**

- **view:** `docs/STATUS.md:11` — `🔥 CURRENT (S161→S168, 2026-07-31→08-01 — phiên-LOGIC L9: chuỗi SP-002 B0→B4 TRỌN 8/8 wave …)`.
- **view-2 (cớ bào chữa):** `docs/STATUS.md:9` — *"Dòng CURRENT ngay dưới đây advance @closeout nên tụt sau"*; `docs/STATUS.md:697` cùng khuôn — *"Section này STALE-BY-DESIGN: nó chỉ advance @closeout"*.
- **source:** `docs/STATUS.md:6` (`S190→S191 ĐÓNG`) · `.claude/sessions/session-15/_end` (`summary-frozen-s15`, mtime 13/08 02:00) · `.claude/sessions/session-16/` đã tạo · `.session-counter.json` `last_ticked_session: S192`.
- **lệch:** view nói việc hiện-hành = **L9 / S168 / chuỗi SP-002**; source nói **L15 ĐÃ ĐÓNG, L16 đang mở** ⇒ lệch **6 phiên-LOGIC / 24 nhãn phiên**.
- 🔴 **Đo giết cớ "by-design"** (phần MÁY KHÔNG phán được — máy chỉ thấy "số cũ", không thẩm được lời bào chữa): `git log -S "S161→S168" --oneline -- docs/STATUS.md` ⇒ **1 hit duy nhất = `a2b37dcc` (S168 closeout)**. Tức dòng này **chưa advance ở BẤT KỲ closeout nào** trong S172·S179·S181·S185·S188·S191. Cơ-chế mà câu bào chữa viện dẫn **không tồn tại trên thực tế** ⇒ KHÔNG phải "đóng-băng có chủ-đích" (bẫy #3), mà là stale thật được che bằng một mệnh-đề sai.
- 🔴 **Đắt vì tái-sinh:** `memory-budget.json` → `tiep_reload.sources[0]` = *"docs/STATUS.md :: dong CURRENT + bang CURRENT STATE"* ⇒ câu "đang làm SP-002 @S168" **nạp lại vào context lead MỖI `/tiep`**. Cùng lớp ca `migration-todos` mà `lead-gap` bắt @S186.
- 🔸 **Chuỗi cứu-hộ cũng rỗng đúng lúc cần:** `STATUS:9` bảo *"giữa phiên đọc `.claude/WAL.md`"*, mà WAL lúc này = `goal: (trống — không có mạch dở)` (reset sau closeout S191). Đúng thời-điểm một người đọc @open, cả hai đầu đều không trả lời được "đang làm gì".
- **resolve:** hoặc advance `:11` về L15/S191, hoặc GỠ hẳn mệnh-đề *"advance @closeout"* ở `:9`/`:697`, thay bằng khai thật *"đóng băng từ S168, đọc `:6`"*. Hết flag khi `git log -S` trên mốc mới cho hit ở commit closeout gần nhất.

---

## FLAG-3 — HIGH — `view-stale-count`
**Slot `CHỜ ANH (89)` trình owner một tập 4 class với 4 con số — cả 4 số đã thối và tập thì thiếu 2 class LỚN NHẤT.**

- **view:** `docs/HANDOFF.md:20` — slot `(89)`: *"**4 class** H24 đang Ở/VƯỢT ngưỡng JUMP=3 sau khi hoàn số"*, liệt `view-residual-asym` **13** · `view-stale-status` **10** · `gap-decision-sunk` **9** · `view-stale-header` **8**; rồi hỏi anh chọn (a)/(b)/(c).
- **source:** `.claude/governance/.session-counter.json` → `class_repeat.counts` (đọc tươi hôm nay): `gap-carry-dropped` **18** · `view-stale-count` **16** · `view-residual-asym` **15** · `view-stale-status` **12** · `gap-decision-sunk` **11** · `view-stale-header` **10** · `gap-owner-specifics` 2 · `gap-underfill` 1 · 4 class còn lại 0.
- **lệch:**
  - 4 con số: 13/10/9/8 → thật **15/12/11/10** (mỗi ô +2).
  - Số **class** ở/vượt ngưỡng: view nói **4**, source đếm **6** (`jump_on_class_repeat = 3`).
  - 🔴 **Hai class BỊ BỎ lại đúng là hai class CAO NHẤT**: `gap-carry-dropped` 18 (= 6,0× ngưỡng) và `view-stale-count` 16. Owner đang được mời quyết trên một tập **không chứa đỉnh**.
- 🔴 Vì sao đây là việc của mắt-người: `governance-detectors` không đối chiếu văn-bản slot với `class_repeat.counts`; và ngưỡng `jump_on_class_repeat` **không có máy nào đọc** (khai thẳng ở `memory-budget.json` → `_sealed_P3B_S181`) ⇒ 0 lớp nào bắt được ngoài lượt đọc tay.
- **resolve:** dựng lại slot (89) TỪ NGUỒN ngay lượt trình, hoặc bỏ digit khỏi slot và trỏ khoá. Hết flag khi mọi số trong `:20` khớp counter-file tại thời điểm trình.

---

## FLAG-4 — MED — `view-stale-header`
**Header bảng `CURRENT STATE` tự xưng mốc S179 trong khi chính bảng đó đã re-ground tới S191 — tái phạm lần thứ 4 của đúng một dòng.**

- **view:** `docs/STATUS.md:466` — `## 🎯 CURRENT STATE (baseline S40 — re-ground sống liên tục, mốc gần nhất **S179** …)`.
- **source (cùng section, dưới header):** row `Migrations` = **73 @S191** · row `Gotchas` = **92 @S191** · row `Tests` = **697 @S190** · row `Policies` = **480 @S187** · row `Menu keys` = **120 @S187**.
- **lệch:** header nói mốc re-ground mới nhất = **S179**; giá-trị mới nhất TRONG section = **S191** ⇒ trễ **12 nhãn phiên**.
- 🔴 **Luật nằm ngay trong chính dòng bị vi phạm:** header tự viết *"bump theo lần re-ground giá-trị mới nhất TRONG section"* — rồi không bump. 🧊 lineage do chính nó khai: bump @S157 → vá @S153 FLAG-2 → bump @S168 → bump @S179 → **thối lại @S192**. Ô rụng đều mỗi ~10 nhãn phiên; vá bằng ĐỔI SỐ đã hỏng 3 lần liên tiếp ⇒ đề nghị theo khuôn `agents/README:3` (**BỎ số, trỏ nguồn**).
- **resolve:** thay `mốc gần nhất **S179**` bằng con-trỏ không-digit. Hết flag khi header không còn literal nhãn phiên.

---

## FLAG-5 — MED — `view-residual-asym`
**Dòng "mốc SỐNG" đầu STATUS: nhãn bump lên S191, THÂN CÂU + con-trỏ vẫn của S185.**

- **view:** `docs/STATUS.md:9` — `🔴 mốc SỐNG = S191, phiên-LOGIC L15, window 3 (2026-08-13)` — rồi liệt `YC-013 KHKK 8-panel + YC-016 guard tay-cầm-phiếu · YC-017 pipeline email/adap · YC-018 ONE-SHOT bookend · bookend @close 9 vai`, "chi tiết" → `runs/2026-08-09-S185-bookend-close/`.
- **source:** `docs/STATUS.md:6` — S190→S191 thật = **YC-029 5 wave + YC-030 Q1-Q5, deploy #600, Mig 73, cron Gitea**. `docs/STATUS.md:8` — **YC-013→022 là của S185**. Run-folder lượt đóng S191 có trên đĩa: `.claude/workflows/runs/2026-08-13-S191-bookend-close/`.
- **lệch:** view gắn **nhãn S191** lên **nội dung S185**, "chi tiết" trỏ run-folder **cũ 2 mốc**.
- 🔴 **Chứng một-phía bằng git:** chuỗi `runs/2026-08-09-S185-bookend-close/` vào file ở `f69af273` (**S185**); chuỗi `mốc SỐNG = S191` vào file ở `d6026b14` (**S191 closeout**) ⇒ lượt S191 sửa **nửa câu** rồi dừng.
- **resolve:** đồng-bộ thân câu + con-trỏ với nhãn (hoặc hạ nhãn). Hết flag khi run-folder trong câu khớp nhãn phiên của câu.

---

## FLAG-6 — MED — `view-stale-status`
**Segment mới nhất HANDOFF khai phiên-LOGIC L15 "GIỮ MỞ" trong khi L15 đã đóng bằng 5 nhân chứng.**

- **view:** `docs/HANDOFF.md:5` (mega-line ⇒ neo bằng trích) — `Last updated: 2026-08-13 (S189→S191, phiên-LOGIC L15 window 1-3 — GIỮ MỞ chờ anh kiểm prod)`.
- **source (đếm nhân chứng, 5/5 cùng chiều):** ① `.claude/sessions/session-15/_end` tồn tại, nội dung `summary-frozen-s15` + `h24-tick: counter=65` · ② `.claude/sessions/session-16/` đã tạo (`_context-s-16.md`) · ③ `.session-counter.json` `last_ticked_session: S192`, counter 66 · ④ commit `23a7a668` *"S191 ĐÓNG L15"* · ⑤ `.claude/WAL.md` đã reset trống.
- **lệch:** view nói phiên-LOGIC **đang GIỮ MỞ**; source nói **đã đóng-băng, phiên-LOGIC kế đã mở**. Cái còn mở thật chỉ là **việc của anh** (kiểm prod GĐ3) — hai thứ khác nhau, câu hiện tại gộp làm một.
- 🔴 **Đắt vì là nguồn `tiep_reload[1]`** (*"HANDOFF :: segment Last-updated MOI NHAT"*): mỗi `/tiep` nạp lại "L15 đang mở" ⇒ rủi ro ghi nhầm vào `session-15/`.
- **resolve:** đổi vế trong ngoặc thành *"L15 ĐÓNG (`_end` 13/08) — CÒN CHỜ: anh kiểm prod GĐ3"*. Hết flag khi "GIỮ MỞ" không còn gắn vào nhãn phiên-LOGIC đã có `_end`.

---

## FLAG-7 — MED — `view-stale-count`
**Lead trình "9 mark Active-High" — đĩa đếm 11.**

- **view:** brief lead viết cho vai này @S192 bookend-open — trích: *"`.claude/governance/ACTIVE-MARKS.md` (9 mark Active-High)"*.
- **source:** `.claude/governance/ACTIVE-MARKS.md` §🔴 ACTIVE-HIGH (`:11`–`:50`) — row mark tại `:15 :16 :17 :18 :19 :20 :22 :23 :25 :26 :27` = **11 row**; đối chứng độc lập đếm nhãn Status cột cuối = **11**; control-dương: §📦 SUPERSEDED đúng 1 row (`:76`) nên không lẫn tập.
- **lệch:** view **9**, source **11**. Hai mark thiếu = `RC-pqhuy1987-07-08-2026-20-57-48` + `…-21-42-10` (ký @S181 — chính STATUS Recently-Done khai *"Ký 2 RC-mark"*) ⇒ số 9 là số đúng của thời **S130–S151**, thối **11 nhãn phiên**.
- 🔸 Không phải lỗi con-trỏ: `session-start.md:213` (§2.1.4) ra lệnh ĐỌC ledger, không hardcode số ⇒ số 9 sinh ở **lượt đọc của lead**, máy không có cửa nào bắt.
- **resolve:** đếm row khi hiển thị, đừng nhớ. Hết flag khi số trình khớp phép đếm trên ledger.

---

## FLAG-8 — LOW — `view-stale-count`
**Khối cảnh-báo `migration-todos` mang phép đo TỰ GIÀ, và câu-lệnh-bằng-chứng của nó nay trả lời khác.**

- **view:** `docs/changelog/migration-todos.md` header (khối vá @S186) — hai số: *"file chưa được chạm **9 ngày**"* (dẫn `git log -1` ra `a2b37dcc` 2026-08-01) và *"**~18 nhãn phiên** việc ĐÃ SHIP chưa bao giờ VÀO tracker này"*.
- **source:** hôm nay `git log -1 --format="%h %ad" -- docs/changelog/migration-todos.md` ⇒ **`5a77f4f1` 2026-08-10**; nội dung vẫn đóng băng ở S168 ⇒ khoảng đóng-băng thật = **12 ngày** (08-01 → 08-13) và **24 nhãn phiên** (S168 → S192).
- **lệch:** 9 → **12** ngày; ~18 → **24** nhãn phiên ⇒ nợ khai **thiếu 1/3**. Thêm: câu tự dẫn `git log -1` nay ra hash KHÁC hash nó in, vì chính lượt viết cảnh-báo đã chạm file — **bằng-chứng tự vô-hiệu**, cùng họ "mỏ-neo TỰ-VÔ-HIỆU" ghi @S179.
- 🔸 Kết-luận nền ("file đóng băng ở S168") vẫn ĐÚNG — flag chỉ đánh **2 con số + câu-lệnh-chứng**, không đánh kết-luận.
- **resolve:** thay 2 số đếm-được bằng CÁCH ĐO, hoặc gắn ngày đo vào câu. Hết flag khi khối không còn delta-số viết cứng.

---

## FLAG-9 — MED — `view-claim-broader-than-sample`
**Lead tuyên "2 bề mặt roster KHỚP" từ một phép `comm` MỘT CHIỀU; kết-luận là quan-hệ HAI CHIỀU.**

- **view:** lời lead phiên này (bookend-open S192) — chốt *"2 bề mặt roster KHỚP"*, dựng trên một lượt `comm` chỉ chạy **một hướng** (đĩa ⊆ `VALID_ROLES`).
- **source:** `.claude/workflows/hmw.js:22-60` (`VALID_ROLES`) ⟂ `ls .claude/agents/*.md` trừ `README.md`.
- **lệch (về PHẠM-VI, không về kết-luận):** một chiều chỉ chứng được *"0 vai trên đĩa vắng khỏi whitelist"*. Nó **KHÔNG** loại được nhánh *"whitelist có tên KHÔNG có file"* — đúng nhánh mà `agents/README:266` cảnh báo (*"sửa 1 quên 1 = vai spawn được tay nhưng THROW trong workflow (hoặc ngược lại)"*). Chủ-ngữ "KHỚP" rộng hơn tập đã thực-đo ⇒ phép thử 1 câu của class fire.
- ✅ **Vai này đã đo NỐT chiều còn lại giùm:** liệt phần-tử `VALID_ROLES` (bỏ dòng comment) = **29 tên**, đối chiếu 29 file đĩa ⇒ **khớp 2 chiều, 0 lệch**. Kết-luận của lead ĐÚNG — chỉ là chưa được chứng lúc phát ngôn.
- 🔴 **Nhưng SỐ thì sai ở CẢ HAI lane, cùng một lượt:**
  - lead đếm `VALID_ROLES` = **43** → thật **29** (thừa 14; hình dạng lỗi = nuốt token trong dòng comment, đúng họ bẫy `']' trong comment cắt regex` mà `memory-budget.json` → `_roster_note_S153` đã ghi).
  - số brief gán cho `tooling-auditor` = **32 "= 29 vai + 3 lens"** → mảng chỉ có **29 phần tử**, không có phần-tử thứ 30-32 nào; `]` đóng ở `hmw.js:60`.
  - ⇒ **2 lane đo, 2 số, 0 lane trúng** — mà kết-luận vẫn được tuyên là KHỚP. Đây chính là hình-dạng "kết-luận đúng che phép đo hỏng".
- **lệnh tái-lập (dùng lại được, có ranh comment):** `awk 'NR>=22 && NR<=60' .claude/workflows/hmw.js | grep -v "^\s*//" | grep -o "'[a-z0-9-]*'" | wc -l` ⇒ **29**; control-dương: cùng lệnh bỏ `grep -v` cho số LỚN HƠN ⇒ thước đọc được, 29 không phải do lọc quá tay.
- **resolve:** khi tuyên "KHỚP" thì chạy `comm -3` (2 chiều) hoặc nêu tên chiều đã đo ngay cạnh. Hết flag khi câu chốt kèm phép đo 2 chiều hoặc kèm mẫu đã đo.

---

## ESCALATE-1 — KHÔNG XẾP ĐƯỢC VÀO ENUM (báo nguyên-văn, KHÔNG bịa class)
**Hiện tượng:** một con SỐ do lead đo ra **sai ngay lúc sinh** (43 vs 29), trong khi **source không hề đổi**.

- Vì sao KHÔNG phải `view-stale-count`: chính lineage owner-approved `_class_added_S172` trong `memory-budget.json` chốt ranh — *"view-stale-* đòi 'source đã đổi, view giữ số cũ'; ở đây 0 thứ gì stale, câu SAI NGAY LÚC SINH"*. Ép vào `view-stale-count` là làm loãng đúng thống-kê mà H24 §2(1) sinh ra để giữ.
- Vì sao KHÔNG phải `view-claim-broader-than-sample`: class đó bắt **phạm-vi suy-luận** (chủ-ngữ rộng hơn mẫu), không bắt **phép đếm hỏng trên đúng mẫu đó**.
- Vì sao KHÔNG phải `view-residual-asym`: chỉ có MỘT site, không có phía thứ hai bị bỏ lại.
- 🔴 **Đề nghị anh quyết** (KHÔNG tự chế tên, theo đúng luật enum ĐÓNG + niêm-phong P3B @S181): (a) MỞ RỘNG enum cho lớp *"số sai lúc sinh do phép đo hỏng"*, hay (b) tuyên lớp này thuộc `error-ledger` (nhà mà P3B chỉ định cho lớp lỗi MỚI) và vai này ngừng báo. Trong lúc chờ: **KHÔNG tính vào TOTAL** (xem §VERDICT).
- Tiền-lệ cùng cửa: `gap-incident-unrecorded` @S143 · `view-claim-broader-than-sample` @S172.

---

## FLAG-10 — HIGH — `view-residual-asym`
**Cùng MỘT lượt closeout S191 đẻ ra 2 sổ carry nói khác nhau: `_end` liệt 7 slug, sổ bền (HANDOFF RE-STAMP) chỉ nhận 3 — và `_end` lại TRỎ sang sổ bền như thể đó là bản đủ.**

- **view-A (sổ per-phiên):** `.claude/sessions/session-15/_end` dòng `carry:` — 7 slug: `w5-host-ondeleted · w8-delete-policy · reset-doi-het · sentinel-truoc-bu · mind-dinh-chinh-mot-be-mat · session-end-thieu-buoc-ghi-block · du-cua-rule-khong-phai-phep-kiem`, đóng ngoặc bằng con-trỏ *"(RE-STAMP @S191 = 52 slug ở HANDOFF)"*.
- **view-B (sổ bền):** `docs/HANDOFF.md:26-27` — khối `RE-STAMP CARRY @S191 — DỰNG TỪ NGUỒN`, tự khai đã quét `WAL + _context-s-15 + HANDOFF + session-log + run-folder S190/S191` ⇒ **52 slug**.
- **source (đo từng slug trên `:27`):** có mặt **3/7** (`w5-host-ondeleted` · `reset-doi-het` · `sentinel-truoc-bu`); **vắng 4/7** (`w8-delete-policy` · `mind-dinh-chinh-mot-be-mat` · `session-end-thieu-buoc-ghi-block` · `du-cua-rule-khong-phai-phep-kiem`).
- **lệch:** con-trỏ trong `_end` bảo *"bản đủ nằm ở HANDOFF"*, nhưng bản đó **thiếu đúng 4 slug mà chính `_end` vừa liệt** ⇒ một người đọc theo con-trỏ sẽ kết-luận L15 để lại 52 nợ, trong khi lead lúc đóng phiên nghĩ tới 56.
- 🔴 **Chỗ chảy máu thật — 3/4 slug vắng chỉ sống trên BỀ MẶT TỰ HỦY:** `grep -rl` toàn repo cho `mind-dinh-chinh-mot-be-mat`, `session-end-thieu-buoc-ghi-block`, `du-cua-rule-khong-phai-phep-kiem` ⇒ **đúng 2 nhà**: `.claude/sessions/session-15/_end` (file per-phiên) và `runs/2026-08-13-S191-bookend-close/sub-ctx-audit-close.md` (artifact của phiên ĐÃ ĐÓNG). **0 hit trong `docs/HANDOFF.md`**; `.claude/WAL.md` đã reset trống. ⇒ Đây đúng nguy-cơ mà khối `CARRY MỚI @S190` (`HANDOFF:8`) được lập ra để chặn (*"di-trú 2 ý khỏi bề mặt tự-hủy… một ý WAL-only mà WAL tái sinh mỗi `/pause`"*) — cơ-chế đã có, lượt này **không chạy cho 3 ý mới**.
- 🔸 **Bất-đối-xứng CÓ CHỌN LỌC, không phải quên cả cụm:** `w5-host-ondeleted` (nêu cùng câu, cùng nguồn) **được vớt** và còn được `:26` khoe là *"lần đầu vào được sổ carry sau khi bị nuốt"*, trong khi `w8-delete-policy` đứng ngay kế bên thì rớt. Vá một phía đúng nghĩa đen.
- 🔸 **Ranh turf (không lấn):** *"carry bị rớt/không re-stamp"* = `gap-carry-dropped`, việc của `lead-gap-auditor`. Vế của vai NÀY là **2 view do CÙNG lượt lead viết mà mâu-thuẫn nhau + con-trỏ dẫn sai** — `view-residual-asym`.
- **resolve:** ADDITIVE 4 slug vào khối `:27` (đúng khuôn ADDITIVE mà `:7`/`:8` đã dùng) và sửa `52` cho khớp; hoặc bỏ digit khỏi `_end`/`:26` và trỏ phép đếm. Hết flag khi 7/7 slug của `_end` có mặt trong sổ bền.

---

## INFORM-1 (KHONG vao TOTAL — nghi CHINH canonical sai, luat vai: bao rieng cho anh, khong tu phan)
**Row `FE pages | 68 | unchanged S54` trong bảng CURRENT STATE — vế "unchanged" bị git bác, và con số không tái-lập được bằng bất kỳ quy-ước đếm nào.**

- **view:** `docs/STATUS.md` §CURRENT STATE row `FE pages` = **68**, note = *"unchanged S54"*.
- **đo tươi hôm nay, 3 phép, khai đủ:**
  - tổng `*Page.tsx` 2 app (`fe-admin/src/pages` + `fe-user/src/pages`) = **76**
  - hợp distinct theo tên file (union 2 app) = **46**
  - `git log --diff-filter=A --since=2026-06-15` trên 2 glob đó = **12 file trang MỚI** đã thêm sau mốc S54.
- **lệch:** ① vế *"unchanged S54"* = **SAI** (12 trang mới, gồm cụm KHKK/GĐ3/ComingSoon ×2 app đã ship). ② số **68** **không rơi vào** phép nào trong 2 quy-ước (46 hoặc 76) ⇒ không biết ô này đang đếm gì.
- 🔴 **Vì sao INFORM chứ không FLAG:** đây là **chính canonical**, không phải derived chép sai. Luật vai cấm tự phán canonical. Anh chốt quy-ước đếm (union hay tổng-2-app) thì lead re-ground 1 lượt.
- 🔸 Cùng họ, chưa đo (khai thẳng là CHƯA ĐO, không đoán): row `API endpoints ~253` cũng neo mốc S54 và cũng mang chữ "unchanged".

---

## VERIFIED — do lai va KHOP (control-duong: chung thuoc doc duoc, "0 flag" o day khong phai vi mu)

| ô | view | vai tự đo | verdict |
|---|---|---|---|
| `STATUS` Sub-agents | 29 | đĩa `.claude/agents/*.md` − README = **29** · `hmw.js` VALID_ROLES = **29** (khớp 2 chiều, đúng tên) | ✅ KHỚP 3 nguồn |
| `STATUS` Migrations | 73 | `ls Persistence/Migrations/*.cs` trừ `*.Designer.cs` + `ApplicationDbContextModelSnapshot` = **73**; top = `20260812141501_AddContractEndedByLevelFinalize` | ✅ KHỚP |
| `STATUS` Tests | 697 (45D+652I) | `run.md` bảng máy: `697 PASS (45 Domain + 652 Infra)` | ✅ KHỚP |
| `STATUS` Skills | 6 | `ls -d .claude/skills/*/` = **6** | ✅ KHỚP |
| `HANDOFF:26` "52 slug" | 52 | đếm PHẦN TỬ `[carry:*]` trên `:27` = **52** (unique 52) — đúng bài S143 *"đếm phần-tử, đừng so hình-dạng chuỗi"* | ✅ KHỚP (số hiếm hoi đúng) |
| `agents/README` skill matrix | — | đếm row = **29** = roster | ✅ ĐỦ, 0 vai hở |
| `ring2-audit.md` | — | **0 digit số-lớp** còn sót (ghost-enum vá @S180 vẫn đứng) | ✅ SẠCH |
| `lead-gap-auditor.md:29` | "6 class" | nhánh `gap-*` trong enum = **6** | ✅ KHỚP |
| `session-start.md:166/:167` | — | **KHÔNG liệt-kê class**, trỏ khoá (vá @S185 vẫn đứng) | ✅ SẠCH |
| `STATUS` RAG `2449` | 2449 | lead đo hôm nay 2450 — **KHÔNG FLAG**: ô mang nhãn ngày đo tường minh *"đo LIVE 2026-07-29"* ⇒ **đóng-băng CÓ NHÃN**, không phải stale (bẫy #3). Vế SỐNG của ô (`index STALE`, `last_indexed 2026-05-29`) vẫn đúng | ✅ đúng-như-khai |

---

## §VERDICT — S192 @open, DEEP

**LEAD-STALE: 10 FLAG — đây là SÀN, KHÔNG phải TỔNG.**

🔴 **Vì sao SÀN (bài S159, và pass/fail phải TÍNH TỪ SỐ ĐO chứ không dán nhãn):**
1. Tập-đo lượt này = 7 bề mặt lead surface + `runs/**` phiên đang mở + 2 persona H24. **KHÔNG quét** `docs/rules.md`, `harness-11-engine.md`, `error-ledger.md`, `so-yeu-cau-chu-du-an.md`, 26 persona còn lại, `docs/flows/**`, `skills/**` ⇒ mọi ô ở đó **chưa được nhìn**, không phải "đã sạch".
2. `HANDOFF.md` + `STATUS.md` có **mega-line** (`HANDOFF:5` ~50KB/1 dòng, `STATUS:6`, `:11`, `:335`); vai này đọc bằng lát cắt ⇒ **phủ một phần**, cận-dưới theo cấu-trúc.
3. Ô `API endpoints` khai thẳng **CHƯA ĐO**.

**Phân rã theo class (để lead ghi tally bằng `h24-signal-write.ps1` — đơn-vị = phiên-LOGIC, @open+@close gộp 1 quyết-định/class):**

| class | số FLAG | FLAG # |
|---|---|---|
| `view-residual-asym` | **3** | 1 · 5 · 10 |
| `view-stale-count` | **3** | 3 · 7 · 8 |
| `view-stale-status` | **2** | 2 · 6 |
| `view-stale-header` | **1** | 4 |
| `view-claim-broader-than-sample` | **1** | 9 |
| `view-stale-role-desc` | **0** | — (quét README + 29 persona, 0 hit; **0 này CÓ chứng**, xem bảng VERIFIED) |
| **TỔNG (đếm được)** | **10** | |

**Ngoài TOTAL, tách riêng theo luật anti-Goodhart:**
- `ESCALATE-1` ×1 — không xếp được vào enum ĐÓNG (số sai lúc sinh, source không đổi). **Không tự chế class**, chờ anh mở rộng enum hay đá sang `error-ledger`.
- `INFORM-1` ×1 — nghi chính canonical sai (`FE pages`), vai không tự phán.

**Mức độ:** HIGH ×4 (FLAG-1 · 2 · 3 · 10) · MED ×5 (4 · 5 · 6 · 7 · 9) · LOW ×1 (FLAG-8).

🔸 **Khai chồng-lấn (chống đếm-đôi):** FLAG-1 (`CLAUDE.md:128` ⟂ `STATUS:848`) **cũng** được `tooling-auditor` nêu độc-lập cùng lượt @open. Trục khác nhau (H1 = docs-freshness · H24 = view-lệch-source) nhưng **VẬT THỂ MỘT** ⇒ khi ring/closeout cộng sổ thì **tính MỘT lần**. Hai leg mà vai này thêm và H1 không có: (a) vế *"giá-trị SỐNG duy nhất"* sụp vì `STATUS:848` tồn tại, (b) `rules.md:307`+`:559` chỉ định STATUS là canonical ⇒ **B1 lộn ngược**.
🔸 **Nhường turf, không lấn:** `agents/README:27` vá mà `:264` không = `tooling-auditor` đã nhận (H1 F-mới) — vai này KHÔNG báo lại. "Carry rớt / không re-stamp" = `gap-carry-dropped` của `lead-gap-auditor` — FLAG-10 chỉ đánh **mâu-thuẫn giữa 2 view + con-trỏ dẫn sai**, không đánh vế rớt.

**Chủ-đề xuyên suốt 10 FLAG (đây là phần máy không nói được):** không phải "quên cập nhật", mà là **vá NỬA rồi ghi nhãn như đã vá TRỌN** — nhãn bump thân không (FLAG-5) · một site lật site kia không (FLAG-1) · 3/7 slug vào sổ (FLAG-10) · slot trình owner giữ 4/6 class (FLAG-3) · và ở 3 ca thì **chính câu bào chữa/chứng-cứ kèm theo mới là thứ thối nhất** (FLAG-2 "advance @closeout" · FLAG-1 "duy nhất" · FLAG-8 `git log -1` tự vô-hiệu). Vá theo hướng **BỎ SỐ / TRỎ NGUỒN** (khuôn `agents/README:3`) sẽ cắt được cả lớp; vá theo hướng **đổi số** đã hỏng 3-4 lần ở đúng những ô này.
