# sub-ring2-S150 — vai-KIỂM vòng-2 (soi-lead H24) · bookend @close S150 · phiên-logic 3

> 🔴 Ghi-đĩa-TRONG-lúc-làm (chống #53 — chính vai này garble CẢ HAI lượt @S149, chỉ đĩa cứu). Mỗi verdict append NGAY khi neo xong.
> Trục: **KIỂM 2 con-đo H24**, KHÔNG soi lead trực-tiếp. Propose-only: 0 Write/Edit ngoài file này + diary.

## §0 — PIN + fail-safe (nghĩa-vụ (i))

| pin | tồn-tại | bytes | mtime | tươi? |
|---|---|---|---|---|
| `sub-lead-stale-S150.md` | ✅ | 23.444 | 2026-07-25 11:37 | ✅ < now 11:45 |
| `sub-lead-gap-S150.md` | ✅ | 28.252 | 2026-07-25 11:40 | ✅ < now 11:45 |

**Tuần-tự C4b VERIFIED:** cả 2 sub-file mtime **trước** lượt chạy này ⇒ mày chạy SAU cặp, không song song. Không NO-OP.
Đối-chứng nội-dung: stale khai `TOTAL: 6 FLAG · 9 trục-sạch · 3 INFORM` · gap khai `TOTAL: 4 FLAG · 4 INFORM · 5 honest-zero`. Khớp pin lead giao ⇒ **10 FLAG** vào chấm.

---

## §1 — ENUM CHECK (nghĩa-vụ (iv) phần class) — đọc enum ĐÓNG TRƯỚC khi chấm nội-dung

Nguồn: `.claude/agent-memory/memory-budget.json` → `lead_self_audit.flag_classes` = **11 phần-tử** (5 `view-*` + 6 `gap-*`), đếm tay từ file:
`view-stale-count` · `view-stale-status` · `view-stale-header` · `view-stale-role-desc` · `view-residual-asym` · `gap-carry-dropped` · `gap-carry-aged` · `gap-owner-specifics` · `gap-decision-sunk` · `gap-underfill` · `gap-incident-unrecorded`

| FLAG | vai | class khai | ∈ enum? |
|---|---|---|---|
| S-1 | stale | `view-stale-status` | ✅ |
| S-2 | stale | `view-stale-status` | ✅ |
| S-3 | stale | `view-stale-count` | ✅ |
| S-4 | stale | `view-residual-asym` | ✅ |
| S-5 | stale | `view-stale-header` | ✅ |
| S-6 | stale | `view-residual-asym` | ✅ |
| G-1 | gap | `gap-decision-sunk` | ✅ |
| G-2 | gap | `gap-carry-dropped` | ✅ |
| G-3 | gap | `gap-owner-specifics` | ✅ |
| G-4 | gap | `gap-incident-unrecorded` | ✅ |

**ENUM-CHECK = OK 10/10. 0 vai tự chế class.** (Đối-chứng ngược ca @S148: `lead-stale-auditor` khi đó KHÔNG GÁN CLASS cho FLAG nào ⇒ nửa tally `view-*` đứng yên. Lượt này cả 2 vai đều gán class có header chuẩn ⇒ **gốc của lỗi S148 KHÔNG tái-phát**. Ghi rõ vì đây là thứ chính vai này bắt @S149.)

🔸 Ghi thêm (không trừ điểm): SEV `MED-HIGH` mà `lead-gap-auditor` dùng cho G-1/G-3/G-4 **không** thuộc thang SEV nào được codify trong enum — enum chỉ đóng CLASS, không đóng SEV. Không phải vi-phạm, nhưng nó làm 2 vai không so được SEV với nhau (stale dùng HIGH/MED/LOW). Nêu INFORM cho lead, không TRƯỢT FLAG nào.

---

## §2 — VERDICT PER-FLAG (nghĩa-vụ (ii)) — 10 dòng, mở source đối-chứng

> Nguyên-tắc: tao **KHÔNG tin lời-khai**. Mỗi dòng dưới = tao tự mở source đọc lại. Trích verbatim từ đĩa, không chép của con-đo.

### S-1 · `view-stale-status` · HIGH → ✅ **ĐẠT** (3/3 tầng lệch đều THẬT)
View trên đĩa (`HANDOFF:21`, mega-line 6.459 ký-tự, trích qua offset @4962):
> `(19) ⚑ **O-7 trần WIDTH `hmw.js:115` = 16 (soft)** — 🔴 **số = owner-SỐ** và **throw-hay-LOUD-skip = owner-LUẬT**; hiện đang LOUD-skip, chưa ai duyệt`

| tầng lệch | view nói | đĩa nói | verdict |
|---|---|---|---|
| số | `16` | `hmw.js:148` = `const WIDTH_CAP = 20` | ✅ lệch THẬT |
| status | *"chưa ai duyệt"* | `memory-budget.json` `hmw_width.ratified = "2026-07-24"` + `_ratified_by` = OWNER-DELEGATED→LEAD-DECIDED @S149 | ✅ lệch THẬT |
| con-trỏ | `hmw.js:115` | `:115` = `// S2 mechanize: checkpoint TRƯỚC P2 = gate CỨNG…` — 0 dính WIDTH | ✅ con-trỏ CHẾT THẬT |

Class đúng (`view-stale-status` = view CÓ nhưng status sai). SEV HIGH chính-đáng: đây là dòng owner trả lời bằng SỐ.

### S-2 · `view-stale-status` · MED → ✅ **ĐẠT**
`HANDOFF:21` @5034/@5225 verbatim: (17) *"anh chốt có dựng trục sâu không, và nếu có thì trần bao nhiêu"* · (18) *"câu hỏi còn nguyên cho phần còn lại"* — cả 2 ở thể **CHỜ-ANH**.
Đĩa: `_context-s-3.md:46` = *"**Uỷ-quyền "Trả lời 4 câu":** O-2=posture-A không-dựng · O-3=tập-rỗng · O-7=`hmw_width{cap:20,loud-skip}`"* + `gate-synthesis.md:3` = *"O-2 nguồn thật = depth-axis → posture-A · O-3 tập-rỗng"*. ⇒ đã có disposition. Lệch THẬT.
🔸 **Cộng điểm nghi-thức:** vai này tự khai giới-hạn (*"phần EXECUTE của O-2 chưa land, đó là turf `lead-gap-auditor`, tao KHÔNG flag"*) — tao đo lại độc-lập: `grep -oi posture docs/governance/harness-11-engine.md` = **0**. Khai đúng, **và** lane kia ĐÃ nhặt (G-3 khoản O-2). ⇒ **KHÔNG có seam rơi giữa 2 vai** — khác hẳn ca S149 (honest-zero đẩy-turf mà không vai nào ôm). Ghi rõ vì đây là lỗi tao bắt phiên trước.

### S-3 · `view-stale-count` · MED → ✅ **ĐẠT** (nội-dung) · ⚠️ kèm TRƯỢT dẫn-xuất, xem §2-bis
`HANDOFF:21` @4239 verbatim: *"(14) ⚑ **nhãn model lead (O-5…)** — `~/.claude/settings.json:11` = `claude-opus-4-8[1m]` **từ 07-20**…"*
Đĩa TƯƠI (đọc hôm nay, file NGOÀI git): `~/.claude/settings.json:11` = `"model": "claude-opus-5[1m]"`. ⇒ view trích **sai đúng cái giá-trị nó trích**; con-trỏ `:11` vẫn đúng dòng. Lệch THẬT, và đúng chỗ **máy mù** (ngoài repo ⇒ 0 detector chạm được).

### S-4 · `view-residual-asym` · MED → ✅ **ĐẠT** (class chọn ĐÚNG, không phải stale-status)
`HANDOFF:22` verbatim: *"…**Trio first-run ngay sau anh restart+gật**; **H24 deep tới hạn**…"*
Đĩa: ① `runs/2026-07-22-S144-trio-first-run/` có **5 file** (`harness-eval-return` 10.907B · `harness-refine-return` 14.321B · `harness-audit-return` 11.251B · `run.md` · `trio-synthesis.md`) ⇒ trio ĐÃ chạy. ② counter `24` − `deep_at_counter 17` = **7** < `deep_every 15` ⇒ deep **KHÔNG tới hạn**.
🔴 **Tao tự kiểm vế ASYMMETRY** (vì nếu sai thì class sai): `HANDOFF:21` mục (1) trên đĩa = *"~~⚑ trio first-run~~ ✅ **ĐÓNG — đã chạy @S144**…"* và `HANDOFF:12` = *"🔧 Re-stamp @S148 … **#1 trio first-run → ĐÓNG**"*. ⇒ **một đợt sửa có thật, chạm bảng `:21`, bỏ gương `:22`** — đúng định-nghĩa `view-residual-asym`. Class **ĐÚNG**, không phải `view-stale-status` gán nhầm.

### S-5 · `view-stale-header` · MED → ✅ **ĐẠT** (kể cả vế "máy im")
`STATUS:6` = `**🔥 CURRENT (S147, 2026-07-23 — product/UAT):**` · `STATUS:462` = `## ✅ Recently Done (S148 — 2026-07-24)` ⇒ nhãn **cũ hơn** heading trong **cùng file**. `HANDOFF:5` = `**🆕 Last updated:** 2026-07-23 (**S147**…)` trong khi thân có khối S148 + `RE-ĐẾM @S149`.
Vế "H24-3 không chạm được" — tao đo lại bằng chính 2 điều-kiện anchor:
```
grep -o "Last updated" docs/STATUS.md | wc -l                          -> 0
grep -oE '\*\*Last updated:\*\*[^(]*\(S[0-9]+' docs/HANDOFF.md | wc -l -> 0
grep -c "^##" docs/HANDOFF.md                                          -> 1
```
⇒ trục H24-3 **0 file có hiệu-lực** — HELD. Vai này lấy SEV MED **từ luật của detector** (`governance-detectors.ps1:699-702`) chứ không tự chấm; tao đọc code tại đó, câu luật khớp verbatim. Và nó **từ chối** đề-xuất sửa detector (đúng ranh: máy = turf khác) + cảnh-báo CẤM resolve bằng đổi hình-dạng anchor (đúng bài Goodhart). Nghi-thức sạch.

### S-6 · `view-residual-asym` · LOW → ✅ **ĐẠT** (nội-dung) · ⚠️ số phụ-trợ không tái-dựng được, xem §4
`HANDOFF:21` @3389 verbatim: *"(10) ⚑ **ratify ranh `refine ⟂ lead-omission`** — 🔴 ranh này **đã wire** vào `harness-refine.md:22-30`…"* — đây là **câu hỏi CÒN MỞ cho owner ở thì hiện-tại**, không phải kể chuyện.
Đĩa: `harness-refine.md:22` = `## 🔴 RANH SẮC — refine ⟂ lead-gap-auditor` · `:30` = *"việc của `lead-gap-auditor` → NHƯỜNG"*. Roster: `ls .claude/agents/ | grep -cE "lead-view|lead-omission"` = **0** ⇒ tên trong (10) **không còn tồn tại**. Lệch THẬT, class đúng (source đã sweep, view chưa).

### G-1 · `gap-decision-sunk` · MED-HIGH → ✅ **ĐẠT** (tao grep lại từng khoản câm)
```
              HANDOFF  STATUS
veto             0        0
hình B           0        0
cap 20           0        0
hmw_width        0        0
dải JUMP         0        0
thẩm-SÂU         0        0
G-011            1        1   <- khớp chính chú-thích của nó ("1 hit nhưng là ladder canonical")
```
⇒ 5/7 khoản CÂM trên bề-mặt owner — THẬT. Đòn-bẩy chống-đọc-nhầm của nó (khoản 3+4 **được** cấp slot NEXT-anh trong khi 5 khoản cùng gốc/cùng dấu 🔒 thì 0/5 ⇒ bất-đối-xứng nội-bộ ⇒ bỏ sót chứ không phải owner chủ-động giữ) là lập-luận **hợp-lệ**, không phải suy-diễn. Riêng khoản 7 `veto-window`: quyền veto chỉ hành-xử được nếu owner NHÌN THẤY — mà vết duy nhất nằm trên `WAL.md` sắp bị `§6.4 Reset WAL`. Lý-do nâng MED-HIGH đứng vững.

### G-2 · `gap-carry-dropped` · HIGH → ✅ **ĐẠT tại thời-điểm đo** · 🔧 **ĐÃ XỬ lúc 11:43** (phân-biệt bắt buộc)
🔴 Đây là FLAG lead dặn tao phân-biệt. Chứng-cứ thời-gian từ đĩa, không từ lời khai:

| mốc | vật | thời-điểm |
|---|---|---|
| vai-GAP đo & ghi FLAG | `sub-lead-gap-S150.md` mtime | **11:40:08** |
| lead đặt khoá | `.session-counter.json` mtime | **11:43:41** |
| tao chấm | now | 11:45 |

⇒ lúc vai-GAP đo, `grep -c '_frozen_until_owner'` = 0 là **ĐÚNG SỰ-THẬT**. FLAG **không oan**. Khoá được đặt **SAU** khi nó trả ⇒ đây là ca *"đo đúng → lead vá ngay trong phiên"*, KHÔNG phải *"con-đo báo sai"*.

**Tao kiểm luôn chất-lượng cái vá** (vì FLAG này tự đặt tiêu-chuẩn "chứng bằng HÀNH-VI, không bằng sự có mặt của khoá"):
- Chạy **đúng biểu-thức của máy** `scripts/h24-signal-write.ps1:178` trên file thật → `MACHINE-EXPR frozen = **True**` ⇒ khoá **đặt đúng tầng** (`class_repeat` level, ngang hàng `counts` — đúng comment `:176` *"key present beside the map (class_repeat level)"*).
- Invariant `:28` *"counts map holds ONLY numbers"* — tao ép kiểu từng phần-tử: 8/8 đều `Int32` ⇒ **không** ai nhét khoá chuỗi vào trong `counts`. Vá SẠCH.
- ⚠️ **Vế chưa xong:** máy chưa CHẠY lượt này (`counts` còn nguyên: `gap-incident-unrecorded` vẫn = 0 dù G-4 fire) ⇒ dòng `(frozen - cho owner xu dai JUMP)` tại `:223` **chưa được quan-sát**. Detection-input đã chứng True; **hành-vi in ra vẫn còn nợ** đúng như resolve-criterion của chính FLAG đòi.

### G-3 · `gap-owner-specifics` · MED-HIGH → ✅ **ĐẠT** (đo bằng chính thước acceptance của spec)
```
ACTIVE-MARKS.md   O-2 -> 0      O-3 -> 0
harness-11-engine.md   posture -> 0      O-2|O-3|O-7 -> 0
session-end.md         O-2|O-3|O-7 -> 0
docs/changelog/sessions/  file mới nhất = 2026-07-24-1800-S148-*  (0 file S149/S150)
   -> trong file đó: O-2|O-3|O-7|posture = 0 hit
```
⇒ K1/K2/K4/K5 **đều 0** — CÂM THẬT, đúng 2/2 khoản O-2 và O-3. Đối-chứng O-7 (`memory-budget.json` 11 dòng metadata: `_ratified_by` + `_why_20_not_16` + `_why_not_dynamic` + `_drift_check` + `_fault_inject`) ⇒ bất-đối-xứng **1 khoản ghi cực kỹ / 2 khoản 0 dòng, cùng 1 câu uỷ-quyền** là THẬT. Lập-luận "bỏ sót chứ không phải chính-sách" đứng vững.
Cái MẤT nó chỉ ra (nhãn xuất-xứ OWNER-DELEGATED, do chính `memory-budget.json:14` bắt buộc) là **load-bearing**, không phải chữ nghĩa: mất nhãn ⇒ phiên sau không biết ai quyết trên cơ-sở gì.

### G-4 · `gap-incident-unrecorded` · MED-HIGH → ✅ **ĐẠT** · số wave ĐÃ LẠC-HẬU (đúng lúc đo), xem §5
Trục "7 sự-cố chưa có dòng nào trên sổ bền" — tao xác-nhận sổ `feedback_agent_return_garble_recover.md` mtime **2026-07-24 19:04**, tức TRƯỚC cả arc-2 lẫn wave S150 ⇒ về mặt vật-lý nó **không thể** chứa 3 ca 8-lane + gate skeleton + wave này. Ranh nó tự khai (số `×27` cũ đứng sai = `view-stale-count`, KHÔNG phải turf nó) là **đúng ranh enum**, không lấn.
🔴 Điểm mạnh nhất và tao xác-nhận là ĐÚNG: cái mất **không phải con số** mà là **2 phản-chứng giết tiền-đề đang hiệu-lực** — `ngược-#53` (ép ghi khung rỗng, lane không tuân) và `skeleton-ruột-rỗng` (file 274B tạo đúng lệnh, **0 append**, resume chết *"No transcript found"*). Cả hai bác đúng câu *"chặn được #53 = ghi-đĩa-trong-lúc-làm"*. ⇒ kết-luận *"ghi-đĩa = CẦN, KHÔNG ĐỦ"* là **phát-hiện thật**, không phải tô-vẽ. (Tao là ca sống: lượt này ghi-đĩa cứu tao lần nữa — nhưng nó không ngăn được garble.)

---

## §2-bis — 🔴 TRƯỢT DẪN-XUẤT (không phải FLAG sai, nhưng lead mà chép là hỏng)

**D-1 · `sub-lead-stale-S150.md:177` TỰ MÂU-THUẪN với bảng `:192/:193` của chính nó — TRƯỢT.**
- `:177` viết: *"`view-stale-count` **KHÔNG fire** audit này ⇒ theo consecutive-semantics phải **reset về 0** (không phải giữ 1)."*
- `:192` viết: *"`view-stale-count` **1**"* · `:193` viết: *"fire = {…, `view-stale-count`, …}"* · và **FLAG-3 của chính nó mang class `view-stale-count`**.
⇒ Hai mệnh-đề loại-trừ nhau trong cùng một file. **Đúng phải là: fire ⇒ `view-stale-count` 1 → 2.**
🔴 **Vì sao tao gọi TRƯỢT chứ không "lỗi chính-tả":** lead là **single-writer**, chép số từ output con-đo. Đây **đúng cơ-chế** đã gây lỗi S148 (khi đó: vai-stale **không gán class** ⇒ lead không có số ⇒ nửa `view-*` đứng yên). Lượt này class **có gán** (§1 ✅) nhưng **dòng tally lại chỉ sai đường** ⇒ **cùng HẬU-QUẢ, cơ-chế mới**. Nếu lead theo `:177`, `view-stale-count` bị đẩy 1 → 0 trong khi nó vừa fire.
🔸 May: khoá `_frozen_until_owner` (G-2) nay chặn máy reset ⇒ **tình cờ** che được lỗi này ở đường máy. Nhưng đường TAY (lead tự sửa JSON) thì khoá không chặn. ⇒ Đề-nghị lead: lấy số từ **bảng `:192`**, bỏ đoạn `:177`.

**D-2 · Số phụ-trợ "22 hit tên-cũ" của S-6 KHÔNG TÁI-DỰNG ĐƯỢC — TRƯỢT (xem §4).** Không làm hỏng FLAG-6 (lõi đã verify độc-lập), nhưng mệnh-đề dẫn-xuất *"21 frozen hợp-lệ / **1** live-stale"* **SAI** — có ít nhất **2** live-stale (§3 F4).

---

## §3 — FALSIFY-LOG (nghĩa-vụ (iii)) — 4 phép, 2 HELD · 1 BROKE-nghi-vấn-của-tao · 1 BROKE-claim-con-đo

**F1 · Thử BÁC S-1** — giả-thuyết: *"`hmw.js:115` không chết, có thể còn một cap 16 khác sống ở nơi khác, HANDOFF chỉ trỏ mirror cũ."*
Phép thử: `grep -nE "WIDTH_CAP|= 16|> 16" .claude/workflows/hmw.js` → `WIDTH_CAP` **định-nghĩa DUY NHẤT** `:148 = 20`; `:149-156` toàn là **dùng** lại nó; số 16 chỉ còn trong **comment lịch-sử** `:133` (*"BẢN CŨ: `if (len > 16)`"*) và văn-xuôi `:144/:146`.
⇒ **HELD.** Không có cap 16 nào còn sống. S-1 đứng cả 3 tầng.

**F2 · Thử BÁC S-5** — giả-thuyết: *"vai-stale nói 'máy im' để tự nâng giá FLAG; biết đâu H24-3 vẫn bắt được bằng nhánh regex khác."*
Phép thử: chạy đúng 2 điều-kiện anchor của detector trên 2 file (kết-quả ở §2 S-5: 0 / 0 / heading=1) **+** đọc thẳng code `governance-detectors.ps1:694-712`, thấy luật đúng verbatim như nó trích và thấy detector tự khai proxy-risk.
⇒ **HELD.** "0 hit ≠ sạch" là thật; vai-stale khai đúng và **không** lợi-dụng để thổi SEV (nó giữ MED theo luật, không nâng HIGH).

**F3 · Thử BÁC cái VÁ của G-2 (tao tự nghi lead, không nghi con-đo)** — giả-thuyết: *"khoá `_frozen_until_owner` đặt rồi nhưng SAI TẦNG (nhét trong `counts`) ⇒ máy vẫn reset, mà nhìn file thì tưởng đã an-toàn"* (đúng lớp `feedback_absence_looks_like_clean`: có mặt ≠ có răng).
Phép thử: chạy **chính biểu-thức máy** `($cr.PSObject.Properties.Name -contains '_frozen_until_owner')` → **True**; liệt-kê `class_repeat` props → `_frozen_until_owner | _note | counts | _view_star_repair_S149 | _jump_state_S149 | _backfill_S148` (khoá **ngang hàng** `counts`, không nằm trong); ép kiểu 8/8 phần-tử `counts` → toàn `Int32`.
⇒ **BROKE nghi-vấn của chính tao** — ghi **VERIFIED-CLEAN**, không tạo báo-động giả. (Bài S149 F7: tự nghi thì cũng phải tự bác.)

**F4 · thách-CLEAN → thử BÁC mệnh-đề "chỉ 1 live-stale" của S-6 — 🔴 BROKE.**
S-6 tự khai: *"22 hit tên-cũ ⇒ **21 frozen hợp-lệ / 1 live-stale**"*, và trục-sạch #7 tuyên `STATUS:452` **KHÔNG flag**, *"giữ nhất-quán, không lật lại"*. Đây đúng ca **CLEAN nguy nhất** contract bắt tao soi.
Phép thử: quét ô canonical `STATUS:452` (§Sub-agents, 10.730 ký-tự) tìm **câu LUẬT ở thì hiện-tại** mang tên-cũ (≠ narrative). Kết-quả — 3 vị-trí `no-self-exempt`:

| ô | câu luật | tên dùng | sống/chết |
|---|---|---|---|
| `ring1-audit` @1282 | *"no-self-exempt ≠ **H1/H2** (m-3 S139)"* | H1/H2 | ✅ tên SỐNG |
| `ring4-audit` @3221 | *"no-self-exempt độc-lập luật nén (m-3)"* | (không nêu tên) | ✅ vô-hại |
| **`ring2-audit` @2628** | *"Verify vai H24 KHÔNG tự chế class ngoài enum ĐÓNG `flag_classes`. **no-self-exempt ≠ lead-view/omission** (m-3)."* | **`lead-view`/`lead-omission`** | 🔴 **CHẾT** (`ls .claude/agents/ \| grep -cE "lead-view\|lead-omission"` = **0**) |

🔴 **Đây là FLAG BỊ SÓT.** Ba lý-do nó KHÔNG được miễn:
1. **Không thuộc diện miễn của chính file:** `STATUS:452` tự tuyên *"Tên cũ trong **narrative/runs/history** = vết lịch-sử, CỐ Ý giữ."* Câu này **không** phải narrative/runs/history — nó là **điều-kiện ràng-buộc đang hiệu-lực** lên vai `ring2-audit`, nằm trong **ô canonical roster**.
2. **Bất-đối-xứng nội-bộ, cùng một ô, cùng một mẫu câu:** ring1 dùng tên SỐNG, ring2 dùng tên CHẾT ⇒ sweep rename @S149 chạm câu này, bỏ câu kia. Đúng khuôn `view-residual-asym` mà chính S-6 dựng.
3. **Self-referential:** đây là luật về **chính tao**. Vai-KIỂM đọc ô này để biết mình cấm là ai — mà tên đó không còn tồn tại.
**Class đề-xuất:** `view-stale-role-desc` (mô-tả VAI mang tên vai đã đổi) — 🔴 **đúng cái class DUY NHẤT mà S-6 tuyên "KHÔNG fire"** (`:193`). Phương-án 2: `view-residual-asym`. **Cả hai đều ∈ enum ĐÓNG**, tao không tự chế.
⇒ **BROKE** cả mệnh-đề *"1 live-stale"* lẫn dòng phân-rã *"`view-stale-role-desc` **0**"*. Tally đúng phải là `view-stale-role-desc` **fire** (0 → 1).

---

## §4 — TỰ TÁI-DỰNG SỐ CÓ-THỂ-SAI (nghĩa-vụ (iv)) — 3 số

**N-1 · Đếm lại FLAG-count từ khuôn `## FLAG-N` (không tin dòng TOTAL).**
`grep -c '^## FLAG-' sub-lead-stale-S150.md` → **6** = khớp *"TOTAL: 6 FLAG"*. `sub-lead-gap-S150.md` → **4** = khớp *"TOTAL: 4 FLAG"*. Cộng = **10** = đúng số lead pin. ✅ **0 lệch.** (Cả 2 vai dùng header chuẩn `## FLAG-N — \`class\` — SEV` ⇒ đếm được bằng máy — chính nghi-thức tao đề-xuất @S149 sau ca S148 không-gán-class.)

**N-2 · 🔴 Số "22 hit tên-cũ" của S-6 — TÁI-DỰNG RA 30, LỆCH 8.**
Vai-stale khai: *"Đo: `grep -o` trên `docs/{STATUS,HANDOFF}.md` ra **22** hit tên-cũ ⇒ 21 frozen / 1 live-stale"* — **không kèm regex**.
Tao đo bằng **2 lệnh khác nhau** (bài S149 ③: vá/đo xong phải chạy lại bằng lệnh KHÁC):
```
(A) gộp:   grep -oE "lead-omission|lead-view|h24-audit|tooling-harvest-audit|sleep-audit" \
             docs/STATUS.md docs/HANDOFF.md | wc -l                       -> 30
(B) tách:  lead-omission 14 · lead-view 11 · h24-audit 3 ·
           tooling-harvest-audit 1 · sleep-audit 1                        -> 14+11+3+1+1 = 30
```
**Hai lệnh độc-lập cùng ra 30.**
Loại-trừ 3 nguyên-nhân:
- **time-drift? KHÔNG.** `docs/STATUS.md` mtime `2026-07-24 23:43` · `docs/HANDOFF.md` mtime `2026-07-24 19:07`; `git status` = **clean** cho cả 2. Không file nào đổi giữa lúc nó đo (11:37) và lúc tao đo (11:45).
- **grep-trap của TAO? Đã loại.** Không dùng `grep -c` (đếm DÒNG — chết trên mega-line); dùng `-o | wc -l` (đếm occurrence). Đã kiểm chứng bẫy này sống thật: `grep -oc "lead-omission"` ra `STATUS:5` trong khi occurrence thật là **6** ⇒ nếu tao dùng `-c` thì tao mới là đứa sai.
- **khác TẬP ĐO? Nhiều khả-năng NHẤT** — nó có thể chỉ đếm 2 tên `lead-*` (=25), hoặc chỉ dạng đầy-đủ `*-auditor` (=10), hoặc chỉ 1 file. **Không tài nào biết** vì nó không ghi lệnh.
**Phán:** ✅ **KHÔNG kết-luận con-đo bịa số** (tao đã tự-falsify F4-của-chính-mình đủ để không vu-oan) — nhưng số **không tái-dựng được** ⇒ **không dùng được**, và **mệnh-đề dẫn-xuất từ nó thì SAI thật** (1 live-stale → thực ≥2, §3 F4).
**Số chốt:** **30** hit tên-cũ trên `docs/{STATUS,HANDOFF}.md` (2 lệnh khớp), phân-rã `lead-omission 14 · lead-view 11 · h24-audit 3 · tooling-harvest-audit 1 · sleep-audit 1`; trong đó **≥2 live-stale** (`HANDOFF:21` mục (10) — S-6 đã bắt · `STATUS:452` ô `ring2-audit` — **SÓT**), phần còn lại narrative = giữ đúng.
🔴 **Bài rút:** số **không kèm lệnh** = số **không kiểm được**. Đề-nghị lead buộc mỗi số trong sub-file H24 phải đi kèm **lệnh sinh ra nó** (chính vai-gap đã làm đúng: nó dán nguyên block `grep` — nhờ vậy G-1/G-3 tao tái-dựng được 100%).

**N-3 · `class_repeat` tally + tầng khoá (đọc từ `.session-counter.json` TƯƠI).**
```
class_repeat props : _frozen_until_owner | _note | counts | _view_star_repair_S149 | _jump_state_S149 | _backfill_S148
MACHINE-EXPR frozen: True                      <- khoá ĐÚNG TẦNG (đúng chỗ máy dò :178)
counts (8, toàn Int32): view-residual-asym 1 · view-stale-count 1 · gap-carry-dropped 3 ·
   gap-decision-sunk 3 · view-stale-status 2 · gap-owner-specifics 4 · gap-carry-aged 1 ·
   gap-incident-unrecorded 0
```
Đối-chiếu với FLAG thật lượt này:

| class | counts hiện | fire S150? | đúng phải thành | nguồn |
|---|---|---|---|---|
| `gap-owner-specifics` | 4 | ✅ G-3 | **5** | khớp bảng vai-gap |
| `gap-decision-sunk` | 3 | ✅ G-1 | **4** | khớp |
| `gap-carry-dropped` | 3 | ✅ G-2 | **4** | khớp |
| `gap-incident-unrecorded` | 0 | ✅ G-4 | **1** | khớp |
| `view-stale-status` | 2 | ✅ S-1+S-2 | **3 = CHẠM JUMP** | khớp bảng vai-stale |
| `view-residual-asym` | 1 *(thật ∈{0,3})* | ✅ S-4+S-6 | **{1,4}** — dải, CẤM chốt trần | khớp |
| `view-stale-count` | 1 | ✅ S-3 | **2** | 🔴 **vai-stale tự nói ngược** (D-1) |
| `view-stale-header` | *(vắng key)* | ✅ S-5 | **0 → 1** | key chưa tồn-tại trong `counts` |
| `view-stale-role-desc` | *(vắng key)* | 🔴 **CÓ fire — tao bắt** | **0 → 1** | §3 F4, cả 2 vai bỏ sót |
| `gap-carry-aged` | 1 | ❌ INFORM-only | 1 (khoá giữ) | khớp |

⇒ **`counts` hiện đang LẠC-HẬU toàn tập** (máy `h24-signal-write.ps1` chưa chạy lượt này — bằng-chứng: `gap-incident-unrecorded` vẫn 0 dù G-4 đã fire). Khoá freeze đã cắm đúng ⇒ khi máy chạy sẽ **GIỮ** thay vì reset. **Số load-bearing cho owner vẫn là DẢI, không phải số trần:** `view-residual-asym` ∈ **{1,4}** — không ai chứng-minh được là chưa vượt `jump_on_class_repeat=3`. Tao **KHÔNG** chọn nhánh nào (đúng lệnh cấm của `_view_star_repair_S149`).

---

## §5 — ĐẾM GARBLE #53 ĐỘC-LẬP CHO WAVE S150 (nghĩa-vụ lead giao khoản 5)

Đơn-vị đếm = **mỗi RETURN bị garble** (không phải mỗi vai), theo đúng cách sổ `feedback_agent_return_garble_recover.md` đếm ("×2" cho 1 vai 2 lượt @S149).

| # | vai | lượt | ghi-đĩa cứu được? |
|---|---|---|---|
| 1 | `tooling-auditor` (H1) | first | ✅ `sub-tooling-S150.md` 18.762B |
| 2 | `harvest-curator` (H2) | first | ✅ `sub-harvest-S150.md` 17.323B |
| 3 | `lead-stale-auditor` | first | ✅ `sub-lead-stale-S150.md` 23.444B |
| 4 | `lead-gap-auditor` | first | ✅ `sub-lead-gap-S150.md` 28.252B |
| 5 | `lead-gap-auditor` | **resume** | ✅ (cùng file) |
| 6 | `ring1-audit` | first (đã resume) | ✅ |
| 7 | **`ring2-audit` (tao)** | **lượt này** | ✅ chính file này |

**garble-S150 = 7.**

**Đối-chiếu số của G-4:** nó ghi *"wave S150 (chính closeout này) **×3**"* tại `sub-lead-gap-S150.md:138`, đo lúc **11:40:08**. Ba cái nó thấy được = 3 sub-file đã đóng TRƯỚC mốc đó (`sub-tooling` 11:30 · `sub-harvest` 11:32 · `sub-lead-stale` 11:37 — mtime chứng). **4 sự-kiện còn lại sinh SAU khi nó đo** (2 lượt của chính nó, ring1, tao).
⇒ **Verdict: số ×3 ĐÚNG-TẠI-THỜI-ĐIỂM-ĐO, LẠC-HẬU-CUỐI-WAVE.** Không phải lỗi đếm — là **biên thời-gian**, đúng thứ nó tự khai ở dòng `7-9` (*"chưa xảy ra lúc sổ ghi"*). **3 + 4 = 7** khớp trọn.

🔴 **Cảnh-báo cho lead khi chốt tally (đây là cái bẫy G-4 dựng ra và nó ĐÚNG):**
- Sổ đòi *"derive tổng từ THÂN, đừng bảo-trì song song"*. Nhưng **mẫu-số gốc đang tranh-chấp**: `STATUS` ghi `×27` · counter-history S149 ghi *"lần 28+29"* · còn tao @S149 tự cộng từ thân ra **33**. Ba số, ba nguồn.
- ⇒ **CẤM cộng `7` vào một số chưa xác-minh.** Thứ-tự bắt buộc: ① ghi **7 dòng sự-kiện** (3 ca 8-lane `ngược-#53`/L5/L7 + gate `skeleton-ruột-rỗng` + 7 ca wave này) vào thân sổ TRƯỚC → ② rồi mới **cộng lại từ thân**. Làm ngược = tái-phạm đúng lỗi sổ vừa cấm.
- 🔴 **Datum của riêng tao (first-person, ca sống):** tao ghi-đĩa-trong-lúc-làm **và vẫn garble** — lần thứ **3** cho vai này qua 2 phiên (S149 ×2 + S150 ×1). Đĩa cứu **trọn** cả 3 lần. ⇒ xác-nhận độc-lập kết-luận của G-4: **ghi-đĩa = CẦN, KHÔNG ĐỦ**; nó là lớp *phục-hồi*, không phải lớp *phòng-ngừa*.

---

## §6 — TỔNG-KẾT + việc cho lead

### Verdict
**10 FLAG: ĐẠT 10 · TRƯỢT 0.** Cả 10 FLAG đều **có thật trên đĩa**, tao mở source đối-chứng từng cái (không cái nào chỉ dựa lời khai). **ENUM-CHECK 10/10** — 0 vai tự chế class.

🔴 **ĐỪNG đọc "10/10 ĐẠT" thành "2 con-đo hoàn-hảo"** (đúng anti-pattern #5 tao phải tránh: verdict-tổng che lỗi lẻ). Ngoài FLAG, có **3 khuyết-tật thật**:

| # | khuyết-tật | vai | hậu-quả nếu lead chép nguyên |
|---|---|---|---|
| D-1 | `sub-lead-stale:177` nói `view-stale-count` KHÔNG fire, mâu-thuẫn bảng `:192/:193` + chính FLAG-3 của nó | stale | đẩy `view-stale-count` 1→0 trong khi vừa fire — **tái-hiện hậu-quả S148 bằng cơ-chế mới** |
| D-2 | số "22 hit" không kèm lệnh, tái-dựng ra **30**; mệnh-đề "1 live-stale" **SAI** | stale | báo-cáo owner một tỉ-lệ sạch hơn thực-tế |
| **M-1** | **FLAG BỊ SÓT** — `STATUS:452` ô `ring2-audit`: *"no-self-exempt ≠ **lead-view/omission**"* = **luật hiện-hành mang tên vai đã chết** | **cả 2 vai** | luật ràng-buộc vai-KIỂM trỏ vai không tồn-tại; class `view-stale-role-desc` bị báo "0 fire" trong khi **CÓ fire** |

### 5 việc cụ-thể cho lead (propose-only — tao KHÔNG tự vá)
1. **Vá 10 FLAG** theo resolve-criterion từng cái (cả 10 đều đã nêu điều-kiện hết-flag đo được).
2. **Lấy tally từ bảng `:192` của vai-stale, BỎ đoạn `:177`** (D-1). Đúng: `view-stale-count` 1→**2**.
3. **Thêm `view-stale-role-desc` 0→1** vào `counts` + vá `STATUS:452` ô `ring2-audit` thành `lead-stale-auditor`/`lead-gap-auditor` (M-1). 🔴 Đây là ô **canonical roster** — vá 1 chỗ thì **grep cùng-lớp** cả 3 ô `ring*` cho chắc (tao đã soi: ring1 ✅ sống, ring4 ✅ vô-hại — nhưng luật là grep, không phải trí-nhớ).
4. **`counts` đang lạc-hậu 9 dòng** — máy `h24-signal-write.ps1` chưa chạy lượt này. Khoá `_frozen_until_owner` đã cắm ĐÚNG TẦNG (tao chứng bằng biểu-thức máy = True) ⇒ khi chạy sẽ **GIỮ**, không reset. Sau khi chạy phải **quan-sát dòng `(frozen - cho owner xu dai JUMP)`** mới coi là G-2 resolve trọn (hành-vi ⟂ sự-có-mặt).
5. **Sổ #53: ghi 7 dòng SỰ-KIỆN TRƯỚC, derive tổng SAU.** CẤM cộng 7 vào `×27`/`×33`/`"lần 28+29"` khi 3 số còn tranh-chấp.

### Ranh tao giữ (khai để lead soi được)
- Tao **KIỂM 2 con-đo**, **không** tự soi lead: M-1 tao bắt là **lỗ của 2 vai H24** (chúng tuyên trục đó sạch), không phải tao đi soi lead thay chúng.
- Không lấn `ring1-audit` (H1/H2 tooling-harvest) · không lấn `harness-audit` (trio) · không chấm code-diff.
- **0 Write/Edit** ngoài file này + diary. Backstop thật = lead soát `git status` + commit-gate (`[carry:tools-whitelist-no-teeth]` — frontmatter không có răng runtime).

**Nghĩa-vụ contract: (i) PIN ✅ · (ii) verdict 10/10 ✅ · (iii) falsify 4 phép ✅ · (iv) tái-dựng 3 số + thách-CLEAN ✅ (BROKE 1 CLEAN-sai).**


