# sub-lead-stale-open-S163 — H24 §2(1) vai-STALE — bookend @open S163 (phiên-LOGIC L9)

> 🔴 ANTI-#53: file này ghi TRONG LÚC LÀM, append từng FLAG. Nếu file KHÔNG kết bằng dòng `END lead-stale-open-S163 …` thì lượt chạy CHẾT GIỮA CHỪNG ⇒ mọi con số bên dưới là **SÀN, KHÔNG phải TỔNG**, và coverage đọc theo bảng tick.
> Bản phiên trước: `.claude/workflows/runs/2026-07-30-S162-bookend-close/sub-lead-stale-close-S162.md` (16 FLAG = SÀN).
> Nền máy (KHÔNG chạy lại): governance-detectors TOTAL 44 + 6 INFORM. HIGH duy nhất = `docs/STATUS.md` canonical-itself-stale (Gotchas 84 vs disk max 85).

## Tập-đo — 8 nhóm bề-mặt (tick khi xong)

| # | Nhóm | Trạng thái |
|---|---|---|
| G1 | `docs/STATUS.md` (canonical + mega-line :6) | ✅ PARTIAL |
| G2 | `docs/HANDOFF.md` (mega-line :5 + slot list) | ✅ PARTIAL |
| G3 | `CLAUDE.md` root + `docs/CLAUDE.md` | ✅ PARTIAL |
| G4 | `.claude/agents/*.md` + `agents/README.md` (GỒM persona của chính tao — điểm mù tự-quy-chiếu S153 M-1) | ✅ PARTIAL |
| G5 | `.claude/commands/*.md` (session-start / session-end / tiep / pause) | ✅ (đủ trục nhịp) |
| G6 | `.claude/skills/*/SKILL.md` | ✅ PARTIAL 3/6 |
| G7 | `.claude/governance/` (ACTIVE-MARKS, .session-counter) + `docs/governance/harness-11-engine.md` | ⬜ **CHƯA CHẠM** |
| G8 | `.claude/sessions/session-8` + `session-9` (GỒM `_context-s-*` trong `tiep_reload.sources`) | ✅ PARTIAL |

🔴 **Bảng này chỉ là tóm-tắt. Phạm-vi CHÍNH XÁC từng nhóm (chạm gì / CHƯA chạm gì) = bảng "Tập-đo — TICK THẬT" ở CUỐI file — đọc bảng đó trước khi diễn giải TOTAL.**

Class ∈ enum ĐÓNG `lead_self_audit.flag_classes`: view-stale-count · view-stale-status · view-stale-header · view-stale-role-desc · view-residual-asym.

---

## FLAG-1 — `view-residual-asym` — HIGH

**view:** `.claude/agents/README.md:243` — dòng "2 vai H24 = trục RIÊNG" kết bằng mệnh-đề: nhịp `h24_cadence`, cặp chạy **theo NHỊP** *không phải mỗi phiên*, trỏ `session-start §2.1.8` · `session-end §L.b(j)`.

**source (4 site, 2 file LỆNH — nơi THẬT SỰ điều-khiển spawn):**
- `.claude/commands/session-start.md:170` — "Nhịp: **cặp light = VÔ-ĐIỀU-KIỆN mỗi bookend** (hình B) · **deep = theo `h24_cadence.deep_every`**. *(vá FLAG-1 @S159)*"
- `.claude/commands/session-start.md:244` + `:269` — "Cặp light chạy VÔ-ĐIỀU-KIỆN ở MỖI bookend … KHÔNG cổng nhịp, KHÔNG consent"
- `.claude/commands/session-end.md:46-47` + `:112` + `:114` — "VÔ-ĐIỀU-KIỆN mỗi bookend §L.b(j)(ii); chỉ `deep` theo nhịp — vá FLAG-1 @S159"

**Lệch:** view nói cặp H24 chạy *theo nhịp, KHÔNG mỗi phiên*; source (chính 2 file mà view đang TRỎ TỚI) nói *vô-điều-kiện mỗi bookend, chỉ deep còn cổng*.

🔴 **Đây là ĐỢT SỬA-MỘT-PHÍA THỨ BA của cùng một claim, không phải flag mới:**
- @S153 vá **lớp persona + STATUS** (ring2 M-1 bắt persona `lead-stale-auditor.md` còn dạy câu sai).
- @S159 vá **lớp LỆNH — 6 site / 2 file** (FLAG-1 HIGH của chính tao; hai file trên còn mang dấu `*(vá FLAG-1 @S159)*`).
- **`agents/README.md` chưa ai chạm** ⇒ claim phủ-định sống sót qua CẢ HAI đợt vá, tới nay ≈ 14 nhãn phiên tính từ hình-B @S149.

**Vì sao HIGH (không phải doc-noise):** `.claude/agents/README.md` nằm trong `memory-budget.json → crystallized_backfill.hotload_sources` (dòng 122) = **auto hot-load mỗi phiên của lead**. Hại đúng cơ-chế S153: lead đọc đúng chữ → tự tính "light chưa tới hạn ⇒ chưa tới lượt cặp H24" **ngay tại bookend**.

**resolve:** `agents/README.md:243` nói cùng một điều với `session-start.md:170` (light vô-điều-kiện / chỉ deep theo `deep_every`) — hoặc BỎ hẳn mệnh-đề nhịp và trỏ B1 sang file LỆNH, đừng chép lại luật.

---

## FLAG-2 — `view-stale-role-desc` — HIGH

**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**; cùng dòng: **"Cả 10 monitor đều INFORM-only"**.

**source:**
- Đĩa: `.claude/agents/*.md` = **24 file − README = 23 vai** (khớp `memory-budget.json:28` `_roster_note_S153` "roster này = 23").
- `.claude/workflows/hmw.js:41-42` — VALID_ROLES **CÓ** `ctx-audit`, `ctx-curator`, `ctx-verifier`.
- `docs/STATUS.md:476` canonical `| Sub-agents | **23** |`.

**Lệch:** enumeration thiếu đúng **bộ-ba `ctx-curator` / `ctx-verifier` / `ctx-audit`** (+S153) ⇒ 20/23. Kéo theo con-số monitor: `hmw.js:236` xếp cả 3 vai ctx vào lane read-only INFORM ⇒ **13 monitor**, không phải 10.

🔴 **TÁI PHÁT NGUYÊN VĂN — đã là FLAG-11 của chính tao @S162, chưa vá:** dòng bài học `agents/README.md:28` ("**Acceptance cho lần sau: ĐẾM PHẦN TỬ trong mọi enumeration rồi so canonical, đừng so hình-dạng chuỗi**", rút từ S143) nằm **cách chỗ vi phạm 214 dòng trong CÙNG FILE**. Grep-theo-SỐ mù ở đây **có chủ đích**: dòng :242 cố ý KHÔNG chứa con số roster (đúng luật B1) ⇒ chỉ đếm phần-tử mới bắt được.

**resolve:** thêm 3 tên `ctx-*` vào enumeration :242 + sửa "10 monitor" → 13 (hoặc bỏ số theo đúng luật B1 của chính dòng đó), rồi `ls .claude/agents/*.md | wc -l` đối chiếu.

---

## FLAG-3 — `view-stale-count` — HIGH

**view:** `docs/STATUS.md:479` — dòng nhãn **"Bundle hash live (prod):"** ghi admin **`8-QYcMOg`** · user **`DptYR4wL`**, chú "đo LIVE @S157 2026-07-28, Run #419 `6250f39`".

**source (đo sau đó, 2 lần rotate):**
- `.claude/agent-memory/cicd-monitor/archive/2026-07.md:73` (Run #426, S159 `ea962b1`): admin `CC1pGE1F`→**`D0sXA0fe`** · user `CLfAftby`→**`Y6dW_5CM`**.
- `.claude/workflows/runs/2026-07-30-S162-cay-4-folder-gd/sub-cicd-monitor-2.md:90-93` (S162 `bfc7b79`, cicd PASS 5/5): admin js **`index-DXoYDy7R.js`** / css **`index-BZ5F-g1w.css`** · eoffice js **`index-o8KDluD1.js`** / css **`index-yNZDmVNz.css`** — kèm chứng bundle CŨ đã chết (`:104-105` hash cũ nay trả `text/html` 876/900 B).
- Ngay TRONG `docs/STATUS.md` dòng `:9` (khối S159→S160) đã ghi admin js `D0sXA0fe` · user js `Y6dW_5CM` ⇒ **cùng file tự mâu thuẫn**, không cần ra ngoài mới bác được.

**Lệch:** ô tự nhận là **"live (prod)"** đang trỏ cặp hash của **3 lần deploy trước** (S157 → S159 #426 → S162 `bfc7b79`).

🔴 **Cay nhất: chính dòng đó đã mang sẵn lời cảnh báo về đúng lỗi này** — nửa sau `:479` kể lại ca S158 ("*ô này từng đứng ở cặp cũ sau khi prod đã rotate … `cicd-verify-s157-diadiem.md:58` dùng chính ô này làm baseline ⇒ lượt deploy kế hoặc báo 'ĐỔI' giả hoặc che một lần không-rotate*"). Lời cảnh báo được viết, **giá-trị thì không được nuôi** ⇒ cùng cơ-chế hại tái lập nguyên vẹn: cicd lượt sau lấy ô này làm baseline sẽ so với hash đã chết 3 đời.

**resolve:** cập nhật `:479` sang cặp S162 (`DXoYDy7R`/`BZ5F-g1w` · `o8KDluD1`/`yNZDmVNz`) + ghi mốc đo; hoặc **bỏ hẳn giá-trị** và trỏ cicd-verify tươi nhất (B1 — ô "live" mà không có nghi-thức nuôi thì đừng giữ số).

---

## FLAG-4 — `view-stale-header` — MED

**view:** `docs/STATUS.md:461` — tiêu-đề section canonical: `## 🎯 CURRENT STATE (baseline S40 — re-ground sống liên tục, **mốc gần nhất S156** [… header bump @S157 ctx-verifier C3])`.

**source (cùng section, các row đã re-ground SAU S156):** `:465` Migrations `+S161: Mig 69` · `:466` SQL tables `🔄 96 @S161` · `:470` Policies `🔄 220 @S161` · `:472` Tests `🔄 +28 @S161 … đo tươi @S162`.

**Lệch:** view nói mốc re-ground gần nhất = **S156**; source trong CHÍNH section nói **S161** (giá-trị) / **S162** (lần đo tươi). Trượt **5-6 nhãn phiên**.

**Tự-falsify:** ngoặc vuông của chính tiêu-đề ghi luật *"bump theo lần re-ground giá-trị mới nhất trong section"* ⇒ dòng vi phạm đúng luật nó tuyên bố. `git log -L461,461` cho thấy trường này CÓ được nuôi (S151→S153→S156 qua `11db5ef`, `a52a91e`) rồi ngừng.

🔁 **Tái phát:** cùng class, cùng dòng — `lead-stale` FLAG-2 @S153 đã bắt ("mốc gần nhất S151" trong khi đã re-stamp @S152). Vá lần đó là **sửa giá-trị**, không **wire nghi-thức bump** ⇒ trôi lại.

**resolve:** bump `:461` → S161 (hoặc S162 nếu tính lần đo tươi), và gắn bước bump vào nghi-thức closeout thay vì sửa tay từng lượt.

---

## FLAG-5 — `view-residual-asym` — HIGH

**view:** `docs/HANDOFF.md:65` — khối mở đầu **"🔴 CÒN CẦN SỐ CỦA ANH — (51-bis):"** ghi `cicd-monitor/archive/_INDEX.md` nay **19.958/20.480 = 97,45%**, headroom **522 B**.

**source:** đo đĩa lúc này — `.claude/agent-memory/cicd-monitor/archive/_INDEX.md` = **20.313 B**; cap `memory-budget.json → tiers.l2_index.cap_bytes` = **20.480** ⇒ **99,18%**, headroom **167 B**. Khớp `docs/HANDOFF.md:15` slot (57) và `.claude/sessions/session-8/_end` dòng `pending-anh` ("(57) _INDEX 99,18%/167 B thước tươi").

**Lệch:** view nói headroom **522 B**; source nói **167 B** — thấp hơn **3,1×**. Vế "(c) chấp nhận vỡ cap ~1-2 phiên nữa" tính trên 522 B là sai hẳn bậc: 167 B ≈ **một dòng append**.

🔴 **Đây là sửa-MỘT-PHÍA, không phải "chưa kịp vá":** cùng phiên S162 lead ĐÃ viết slot (57) ở `:15` nói thẳng *"KHÔNG phải 97,45% / 522 B như slot (51-bis) cũ ghi"* — tức **biết** số cũ đã chết — nhưng để nguyên `:65`.

**Bác trước lập-luận "đó là segment đóng-băng":** `:37` đúng là khai *"Segment trước (S159→S160) giữ nguyên bên dưới làm lineage"*, NHƯNG trong **chính segment ấy** `:69` đã được vô-hiệu-hoá đúng nghi-thức (`~~(45)~~ ✅ **RÚT @S159 — BÁO ĐỘNG GIẢ**`) ⇒ convention "slot owner đã bị thay thế thì phải gạch + lật trạng-thái" **tồn tại và được dùng**; `:65` là chỗ DUY NHẤT bị bỏ, và nó vẫn đeo cờ 🔴 "CÒN CẦN SỐ CỦA ANH" trần trụi. Owner quét HANDOFF theo cờ đỏ sẽ đọc trúng nó.

**resolve:** gạch `:65` + trỏ slot (57), giống hệt cách `:69` đã làm.

---

## FLAG-6 — `view-stale-count` — HIGH

**view:** `docs/HANDOFF.md:17` slot **(58)** — *"SLOT (45) SỐNG LẠI — trần `_mind` là THẬT… file SỐNG `_mind-s-8.md` nay **89,06% (29.184/32.768 B)** và mỗi cửa `/pause`…"*. Nhắc lại ở `.claude/sessions/session-8/_end` dòng `pending-anh`: "(58) trần _mind slot-45 sống lại 89,06%".

**source (đo đĩa lúc này):**
- `.claude/sessions/session-8/_mind-s-8.md` = **32.181 B** (mtime 2026-07-30 15:12) / cap `mind_ctx_kb` 32 × 1024 = 32.768 ⇒ **98,21%**, headroom **587 B** — KHÔNG phải 89,06% / 3.584 B.
- `.claude/sessions/session-8/_end` **tồn tại** (15:11) ⇒ cửa-sổ session-8 **đã đóng**.
- `.claude/sessions/session-9/_context-s-9.md` (tạo 16:01, scaffold `sID=9`) là file duy nhất trong `session-9/`; **`_mind-s-9.md` CHƯA tồn tại** ⇒ `/pause` kế tiếp của L9 ghi vào file gần-rỗng.

**Lệch kép:** (a) con số sai ngay với chính file nó đo (89,06% → thật **98,21%**, trôi ~3.000 B trong lúc closeout); (b) tiền-đề "file SỐNG" **hết đúng** kể từ khi session-9 mở — `_mind-s-8` nay là artifact đóng.

🔴 **Chu-kỳ thứ BA của cùng một lỗi, ở cùng một trục:** S159 FLAG-3 rút slot (45) vì nó đo trên `_mind-s-7` đã đóng băng → S162 hồi sinh thành (58) đo trên `_mind-s-8` **khi đó còn sống** → S163 mở session-9, `_mind-s-8` đóng băng, slot lại trỏ vật chết. Đây **không phải sự-cố lẻ mà là lỗi NEO**: slot neo vào **tên file** thay vì neo vào *"file `_mind` của phiên-logic hiện hành"*.

**Hại:** giống hệt lời cảnh báo lead tự viết ở `HANDOFF:70` — *"nó xin anh tiêu một quyết định owner … dựa trên số đo của một artifact đã chết"*. Đúng câu đó, lần thứ ba.

**resolve:** slot (58) đo lại trên `_mind-s-9.md` khi nó ra đời, hoặc viết lại theo dạng *bất-biến* ("`_mind` của phiên-logic hiện hành, đo @thời-điểm-trình") — số neo tên file sẽ chết ở MỌI ranh-giới phiên.

---

## FLAG-7 — `view-stale-count` — MED

**view:** `CLAUDE.md:62` — *"Lịch sử mig gần đây:"* mở đầu bằng **`+S133 Mig 67`** rồi lùi về S97/S74/S73… ; `CLAUDE.md:69` bảng Modules — row PurchaseEvaluation cột Migration = `12,13,15,49,50,52-61,65-67`; row Contract = `1-11`.

**source:** `docs/STATUS.md:465` canonical — **Mig 69** `AddContractSigningPlans` (S161, 7 bảng MỚI cho HĐ) và **Mig 68** `AddPeAllowApproverDelete` (S155, thuộc **PE**).

**Lệch:** danh-sách "gần đây" dừng ở 67 ⇒ bỏ đúng **2 mig mới nhất**; bảng module gán sai chủ: Mig 68 là PE nhưng dải PE dừng ở 67, Mig 69 là Contract nhưng dải Contract vẫn `1-11`. Đo: `grep -c "Mig 68\|Mig 69\|Migration 68" CLAUDE.md` = **0**.

**Không lẫn với luật B1:** `:62` tự khai *"KHÔNG copy số ở đây"* — luật đó áp cho **tổng số mig**, còn *danh-sách lịch-sử* và *ánh-xạ mig→module* là nội dung riêng của file này, không có canonical thay thế ⇒ để trống = mất thông tin, không phải tuân luật.

**Sức nặng:** `CLAUDE.md` là project-instruction **auto-inject vào mọi phiên và mọi sub-agent** ⇒ sai ánh-xạ mig→module lan rộng nhất trong các bề-mặt derived.

**resolve:** thêm Mig 68 (PE) + Mig 69 (Contract) vào `:62` và vào 2 row bảng `:69`.

---

## FLAG-8 — `view-stale-status` — LOW

**view:** `docs/HANDOFF.md:32` (NEXT-em mục 6) — *"`_context-s-8` PAUSE-3 ghi menu '135→142' … — **file này nằm trong `tiep_reload.sources` ⇒ sai số tái sinh mỗi `/tiep`**"*.

**source:** `.claude/agent-memory/memory-budget.json:19` — `tiep_reload.sources` trỏ `.claude/sessions/session-<N>/_context-s-<N>.md`, **N = phiên-logic hiện hành**. `.claude/sessions/session-9/_context-s-9.md` đã tồn tại (16:01, `sID=9`) và `session-8/_end` đã đóng ⇒ `<N>` nay = **9**, `_context-s-8.md` **rơi khỏi** đường nạp.

**Lệch:** view mô-tả một kênh lan sai-số đang **SỐNG**; source cho thấy kênh ấy đã **đóng** từ lúc scaffold session-9. Con số sai vẫn còn trong `_context-s-8.md:113` nhưng nay nằm trong FLOW **append-only bất-biến** (`_context-s-9.md:8` nêu luật *"TUYỆT ĐỐI KHÔNG sửa entry verbatim đã ghi"*) ⇒ **lối vá đúng là errata chỗ khác, KHÔNG phải sửa entry**.

**Ghi rõ để không bị đọc quá tay:** phần *"cicd đo 142→142"* ở `:32` là **ĐÚNG** (`runs/2026-07-29-S161-khkk-w1-schema/cicd-verify-a8027c0.md:66` — "MenuItems **142 GIỮ**"). Chỉ **mệnh-đề cơ-chế** là lỗi thời. Và **KHÔNG tái-flag "88→95"** trong cùng dòng đó: `ring2-audit` @S162 đã phân-xử số ấy **đúng** trong đơn-vị EF-snapshot (`sub-ring2-audit-close-S162.md:115`), FLAG-16 khi ấy TRƯỢT vì ép-vừa-enum — tao giữ nguyên phán quyết đó.

**resolve:** `:32` bỏ vế "tái sinh mỗi `/tiep`", đổi thành errata một-lần (kênh đã đóng) — nếu không, mục này sẽ được ưu tiên cao hơn giá-trị thật của nó.

---

## FLAG-9 — `view-residual-asym` — MED

**view:** `.claude/skills/permission-matrix/SKILL.md:26` — bia-mộ tự khai đã sửa: *"🧊 ~~Budgets root + `Bg_*`~~ — **XOÁ S61 (Mig 50)** … (Skill này liệt `Bg_*` như menu ĐANG SỐNG suốt từ S61 → S122 — stale **nặng hơn** lệch con-số vì nó mô-tả thứ **không tồn tại**; **vá @S122 W4**.)"*

**source:** **cùng file, 16 dòng dưới** — `.claude/skills/permission-matrix/SKILL.md:42-74`, khối sơ-đồ `## Menu tree` vẫn liệt nguyên si, không gạch, không 🧊:
```
Budgets (root, NO inherit — grant tay)
  ├── Bg_List
  ├── Bg_Create
  └── Bg_Pending
```
Đối chiếu `docs/STATUS.md` bảng Modules + `CLAUDE.md` row `~~Budget~~`: module **REMOVED S61 (Mig 50)**, FE `Bg_*` gỡ hết.

**Lệch:** view tuyên **"vá @S122 W4"**; source (chính file đó) chứng minh **chưa vá** — 3 leaf `Bg_*` vẫn đứng như node sống trong sơ-đồ.

🔴 **Đây là dạng nguy nhất: câu tuyên-bố-đã-sửa tự nó là thứ che lỗi.** Ai grep "Bg_" thấy dòng :26 có 🧊 + "vá @S122" sẽ tick sạch và không đọc tiếp tới sơ-đồ. Đúng lớp *claim mạnh hơn việc đã làm*.

**Bác trước phản-biện "sơ-đồ là snapshot Phase 8 nên đóng băng":** chính `:26` xếp việc liệt `Bg_*` vào loại **DEFECT** ("stale nặng hơn lệch con-số") chứ không phải tư-liệu lịch-sử ⇒ theo chuẩn của chính file, đây là lỗi chưa đóng.

**resolve:** gạch/gỡ nhánh `Budgets`+`Bg_*` khỏi sơ-đồ `:42-74`, hoặc sửa `:26` thành "vá 1 phần — sơ-đồ còn nợ" (đừng để câu "vá xong" đứng một mình).

---

## FLAG-10 — `view-stale-count` — MED

**view:** `.claude/skills/permission-matrix/SKILL.md:42` — tiêu-đề `## Menu tree (seed — **~60 key** sau Phase 8)`; trong thân sơ-đồ: `Ct_<Code>_<Group|List|Create|Pending> × 7 type = **28 leaf**`.

**source:**
- `docs/STATUS.md:471` canonical `| Menu keys | **55** |`.
- `src/Backend/SolutionErp.Domain/Identity/MenuKeys.cs` — hậu-tố **mới** `_WfView` / `_Approved` / `_Deleted` có mặt (grep = 6 hit hằng/nhãn); `docs/STATUS.md:20` + `agent-memory/cicd-monitor/archive/2026-07.md:73` đo prod: **21 key `Ct_*_{WfView,Approved,Deleted}` mới @S159**, MenuItems 119→142.
- `MenuKeys.cs:43` `public const string HopDongCung = "HopDongCung";` + `:39` `KeHoachKyKet ĐÃ VÀO All @S161` ⇒ GĐ2/GĐ4 tồn tại trong mã.

**Lệch 3 vế:** (a) "~60 key" vs canonical **55**; (b) "28 leaf" cho `Ct_*` vs thực-tế **+21 key mới** (7 type × 4 → × 7 hậu-tố); (c) sơ-đồ **không có** nhánh `Khkk_*` (GĐ2) và `Hdc_*` (GĐ4) dù cả hai đã seed prod từ S159.

**Vì sao máy im:** cả 3 số nằm trong **tiêu-đề ngoặc đơn** và **ASCII-art**, không ở dạng row bảng mà detector đối canonical; và "~60" có tilde nên khớp-chuỗi số trượt. Máy chỉ kêu `contract-workflow` + `ef-core-migration`, **0 flag trên file này** — đúng vệt "positive-control máy MÙ chứng-minh-được" đã ghi từ S119.

**resolve:** bỏ số ở tiêu-đề `:42` (theo đúng luật B1 mà chính `:17` file này tuyên) + cập nhật sơ-đồ cho `Ct_*` 7 hậu-tố + thêm `Khkk_*`/`Hdc_*`, hoặc thay sơ-đồ bằng con-trỏ vào `MenuKeys.cs` (đúng lời `:18` "đếm THẬT = đọc mã, đừng tin doc").

---

## FLAG-11 — `view-stale-count` — MED

**view:** `.claude/skills/ef-core-migration/SKILL.md:89` — **row CUỐI** của bảng lịch-sử migration = `| **67** | **AddPeApprovedBudgetSnapshot** | 🎯 S133 …`.

**source:** `docs/STATUS.md:465` canonical — **Mig 68** `AddPeAllowApproverDelete` (S155) và **Mig 69** `AddContractSigningPlans` (S161, 7 bảng mới).

**Lệch:** đuôi bảng = tuyên-bố ngầm *"mig mới nhất = 67"*; canonical nói **69**. Trượt 2 mig / 6 nhãn phiên.

**Ranh-giới với `lead-gap-auditor` (khai rõ để ring2 phân xử):** tao KHÔNG tính đây là "thiếu một mục" — bảng này được **nuôi có nghi-thức** (diary S151 ghi *"+row Mig 67 skill ef-core"* trong batch doc-fix) nên **đuôi bảng = một GIÁ-TRỊ đang được duy trì**, và giá-trị ấy nay cũ ⇒ thuộc trục *cái CÓ nhưng LỆCH*, không phải *cái BỊ THIẾU*.

**Khác với nền máy:** detector đã kêu `ef-core-migration/SKILL.md:100,101,117,120,168,185` — **không dòng nào là `:89`**; đó là các số rời trong văn, còn đây là đuôi-bảng.

**resolve:** thêm 2 row 68/69 (cùng lượt với `CLAUDE.md` ở FLAG-7 — chung một gốc: đợt S155/S161 không sweep bề-mặt derived nào).

---

## FLAG-12 — `view-stale-status` — LOW

**view:** `docs/governance/session-model-se-draft.md:84` — *"'auto' đọc là **bỏ hỏi**, KHÔNG phải **bỏ đếm**. ⇒ H24 chạy **tự-động KHI TỚI NHỊP**, không phải mỗi phiên. Đây **CHƯA** phải bookend-hub (hub **gỡ hẳn counter**, rà 2 đầu…)"*.

**source:** `.claude/commands/session-start.md:269` — *"🔄 **HÌNH B @S149** … cặp soi-lead spawn **VÔ-ĐIỀU-KIỆN mỗi đầu phiên** — KHÔNG còn cổng OVERDUE(light)"*; `session-end.md:114` đối-xứng @close.

**Lệch:** view nói SE **CHƯA** ở hình bookend và cặp chạy theo nhịp; source nói SE **đã** chuyển bookend vô-điều-kiện từ S149 (14 nhãn phiên trước).

**Vì sao vẫn phát dù là DRAFT (dùng đúng thước đã dùng ở FLAG-5):** file này CÓ nghi-thức bảo-trì — đầu file `:3-7` là khối *"CẬP-NHẬT TRẠNG-THÁI @S146 … câu 'chưa wire bất kỳ cơ chế nào' của v0 KHÔNG còn đúng, sửa cho khớp đĩa"*, tức convention "thực-tế đổi thì gắn marker đính-chính" **tồn tại và đã được dùng ở chính file này**. `:84` không được gắn ⇒ lệch, không phải đóng-băng-có-chủ-đích.

**SEV LOW vì:** đây là doc thiết-kế, **không** điều-khiển spawn (khác FLAG-1 nằm trên bề-mặt auto-hot-load). Nêu để đóng nốt vệt 5 lớp của cùng một claim (persona@S153 → LỆNH@S159 → `agents/README`=FLAG-1 → đây).

**resolve:** gắn 1 dòng 🧊 vào `:84` ("superseded @S149 hình-B") — đừng xoá, giữ lineage như khối đầu file.

---

## VERIFIED-CLEAN (có lệnh bác — chống dương-giả, và để KHÔNG ai đọc phần này thành "chưa soi")

| # | Mục | Bác bằng gì |
|---|---|---|
| VC-1 | `docs/STATUS.md:477` row **RAG chunks** | Row ghi `solution_erp` **2449** + `last_indexed_at` **2026-05-29** + 5 sibling re-index 07-29 — **khớp đúng số tươi lead đưa**. Row đã TÁCH 2 trục (liveness UP ⟂ index-freshness KÉM) ⇒ **KHÔNG flag**; đây là ô canonical duy nhất tao soi mà tự-mô-tả chính xác cả caveat. |
| VC-2 | `.claude/commands/session-start.md` + `session-end.md` — nhịp H24 | Grep `"không phải mỗi phiên"` trên `.claude/commands/*.md` = **0 hit**; 4 site còn lại (`start:170/244/269-270`, `end:46/47/112/114`) đều nói VÔ-ĐIỀU-KIỆN. Vá S159 **giữ nguyên vẹn**, 0 dư-lượng trong lớp LỆNH. |
| VC-3 | `.claude/agents/*.md` (23 persona) — nhịp H24 | Cùng lệnh grep: **0 hit** trên mọi file persona, **gồm cả `lead-stale-auditor.md` của chính tao** (đóng lại M-1 tự-quy-chiếu @S153, 0 tái phát). |
| VC-4 | Roster 23 | `ls .claude/agents/*.md \| wc -l` = **24** − README = **23**, khớp `STATUS:476` và `memory-budget.json:28`. Canonical ĐÚNG; chỉ `agents/README:242` lệch (FLAG-2) ⇒ flag **derived**, không flag canonical. |
| VC-5 | `.claude/skills/contract-workflow/SKILL.md` — bộ tên 4-GĐ | `grep -c "Kế hoạch ký kết\|Hợp đồng cứng\|Duyệt hợp đồng\|KHKK"` = **4** ⇒ skill ĐÃ biết bộ tên chốt @S162. Máy kêu `:24,35,332,367` là số rời — **trục ngữ-nghĩa thì sạch**, đừng gộp thành "skill lạc hậu toàn diện". |
| VC-6 | `_context-s-8.md:113` chuỗi **"88→95"** | **KHÔNG tái-flag.** `ring2-audit` @S162 (`sub-ring2-audit-close-S162.md:115`) đã dựng lại bằng git: `a8027c0~1` → 88, HEAD → 95, `CreateTable`=7 ⇒ **đúng và đang-đúng** trong đơn-vị EF-snapshot; FLAG-16 khi ấy TRƯỢT vì ép-vừa-enum. Giữ nguyên phán quyết. |
| VC-7 | `docs/HANDOFF.md:5` `Last updated` = S161→S162 | **KHÔNG flag.** HANDOFF re-stamp ở **closeout**; lượt này là **@open** ⇒ nhãn S162 trên thân S163 là đúng nhịp, không phải drift. |

---

## Tập-đo — TICK THẬT (🔴 đọc bảng này TRƯỚC khi đọc TOTAL)

| # | Nhóm | Trạng thái | Phạm-vi ĐÃ chạm / CHƯA chạm |
|---|---|---|---|
| G1 | `docs/STATUS.md` | ✅ **PARTIAL** | Chạm: `:1-32` (khối CURRENT + 3 entry mới nhất) · `:461-482` bảng CURRENT STATE **trọn 11 row** · `:479` bundle · `:477` RAG. **CHƯA: `:6` mega-line (63K ký-tự) · `:483-837` (Recently Done S153 trở về trước)**. |
| G2 | `docs/HANDOFF.md` | ✅ **PARTIAL** | Chạm: `:1-70` (slot chờ-anh 54-59 + NEXT-em 1-7 + carry + segment lineage S159→S160). **CHƯA: `:71-452` (~85% file)** · `:5` mega-line không mở. |
| G3 | `CLAUDE.md` + `docs/CLAUDE.md` | ✅ **PARTIAL** | Chạm: root `CLAUDE.md:62` + bảng Modules `:66-72` + grep `Mig 68/69` toàn file. **CHƯA: `docs/CLAUDE.md` (bản full) — 0 dòng.** |
| G4 | `.claude/agents/*.md` + README | ✅ **PARTIAL** | Chạm: `README:5,28,236-244` + đếm roster đĩa + `hmw.js:41-42,236` VALID_ROLES + **grep nhịp-H24 trên CẢ 23 persona** (VC-3, gồm persona của chính tao). **CHƯA: đọc RUỘT từng persona (0/23 đọc đầy đủ)** ⇒ chỉ phủ được 1 trục (nhịp), không phủ trục khác. |
| G5 | `.claude/commands/*.md` | ✅ **ĐỦ trục nhịp** | Chạm: grep nhịp-H24 toàn thư mục + đọc 8 site `session-start`/`session-end`. **CHƯA: các trục khác của lệnh (nội-dung §, số liệu trong lệnh) — không soi.** |
| G6 | `.claude/skills/*/SKILL.md` | ✅ **PARTIAL 3/6** | Chạm: `permission-matrix` (FLAG-9/10) · `ef-core-migration` bảng mig (FLAG-11) · `contract-workflow` trục tên-GĐ (VC-5). **CHƯA: `form-engine` · `dependency-audit-erp` · `iis-deploy-runbook` — 0 dòng.** |
| G7 | `.claude/governance/` + `docs/governance/harness-11-engine.md` | ⬜ **CHƯA CHẠM** | **0 dòng** ACTIVE-MARKS · **0 dòng** harness-11-engine · `.session-counter.json` **không tự đo** (số 37 nhận từ lead, chưa verify). Ngoại lệ duy nhất: `docs/governance/session-model-se-draft.md` chạm 2 dòng qua grep (FLAG-12) — **không đủ gọi là đã soi nhóm**. |
| G8 | `.claude/sessions/session-8` + `session-9` | ✅ **PARTIAL** | Chạm: `session-8/` listing + `_context-s-8:58,113` + `_end` trọn + kích-thước `_mind-s-8` · `session-9/_context-s-9` **đọc trọn 58 dòng**. **CHƯA: RUỘT `_mind-s-8.md` (32.181 B) — chỉ đo byte, 0 dòng nội-dung** · `_pause-*`/`_tiep-*`/`_snapshot-*` (9 file). |

**Coverage = 7/8 nhóm CÓ CHẠM · 1 nhóm (G7) CHƯA CHẠM · 6/7 nhóm đã chạm là PARTIAL.**

🔴 **Vì vậy `TOTAL=12` là SÀN, KHÔNG phải TỔNG.** Cụ thể cái chắc chắn chưa được soi: G7 trọn vẹn · `STATUS:6` + `HANDOFF:5` mega-line · 85% thân HANDOFF · `docs/CLAUDE.md` · 3/6 skill · ruột 23 persona · ruột `_mind-s-8`. **Cấm đọc mấy vùng đó thành "sạch".**

## Phân-rã theo class (cho `jump_on_class_repeat`)

| class | n | FLAG |
|---|---|---|
| `view-stale-count` | **5** | 3 · 6 · 7 · 10 · 11 |
| `view-residual-asym` | **3** | 1 · 5 · 9 |
| `view-stale-status` | **2** | 8 · 12 |
| `view-stale-header` | **1** | 4 |
| `view-stale-role-desc` | **1** | 2 |
| **TỔNG** | **12** | 0 finding rơi ngoài enum · 0 class tự chế |

**Lưu-ý tally cho lead (đừng tự cộng tay):** đơn-vị = **phiên-LOGIC L9**; lượt này là đầu @open, `h24-signal-write.ps1` gộp với @close thành **1 quyết-định/class**. Và nhớ errata S162 (`close-synthesis.md:59`): `view-stale-count` kỳ trước bị thổi +1 (đúng là 7, máy ghi 8).

## 3 việc nên đưa owner (đề-xuất, không phải quyết-định của tao)

1. **FLAG-6** — dừng dòng "89,06%" trước khi nó tới anh; số đúng **98,21% / 587 B**, và cả slot đang neo vào artifact đã đóng (chu-kỳ **thứ 3** cùng trục).
2. **FLAG-5** — `HANDOFF:65` còn xin anh quyết trên headroom **522 B** trong khi thật **167 B** (lệch 3,1×).
3. **FLAG-3** — ô "Bundle hash live (prod)" trỏ hash **3 đời deploy trước**; cicd lượt sau lấy nó làm baseline sẽ báo sai.

---

END lead-stale-open-S163 — VERDICT=FLAGS_FOUND (SÀN, chưa phải TỔNG) — TOTAL=12 FLAG — COVERAGE=7/8 nhóm (6/7 PARTIAL · G7 governance CHƯA CHẠM)
