# sub-ring2-close-S153 — vai-KIỂM vòng V2 (soi-lead H24), bookend @close

> Vai: `ring2-audit` · KIỂM **2 con-đo H24**, KHÔNG tự soi lead · INFORM-only · propose-only · KHÔNG Write ngoài file này.
> Kỷ-luật anti-#53: **append TỪNG verdict ngay khi có**, mọi section kết `---`, file chỉ hợp-lệ khi có dòng END cuối.

---

## §0 — PIN (fail-closed) + khuôn + enum

**PIN đích-danh** (KHÔNG glob-latest): `.claude/workflows/runs/2026-07-26-S153-bookend-close/`
- `sub-lead-stale-close-S153.md` — **20.993B** trên đĩa = **đúng byte brief giao** ⇒ pin là bản ĐẦY ĐỦ.
- `sub-lead-gap-close-S153.md` — **21.322B** trên đĩa = **đúng byte brief giao** ⇒ pin đầy đủ.
⇒ input TỒN-TẠI + tươi ⇒ **KHÔNG NO-OP**, chấm thật.

**Khuôn slot (kiểm ĐỘC-LẬP, lệnh của tao):**
```
grep -c '^## FLAG-' sub-lead-stale-close-S153.md → 4   ==  END TOTAL=4  ✔
grep -c '^## FLAG-' sub-lead-gap-close-S153.md   → 2   ==  END TOTAL=2  ✔
```
Cả 2 file có dòng `<!-- END … TOTAL=n -->` (`:159` · `:149`) ⇒ **đề-xuất S152 của tao (END+TOTAL-line) đã land và đang có việc làm.**

**Enum ĐÓNG** `memory-budget.json → lead_self_audit.flag_classes` = **list 11 phần-tử** (đếm bằng `len()`, không grep):
`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`

**Class 6 FLAG ∈ enum:** stale FLAG-6 `view-stale-status` ✔ · FLAG-7 `view-residual-asym` ✔ · FLAG-8 `view-stale-status` ✔ · FLAG-9 `view-stale-status` ✔ · gap FLAG-1 `gap-carry-dropped` ✔ · FLAG-2 `gap-carry-dropped` ✔ ⇒ **6/6 hợp enum, 0 class tự chế.**

---

## §1 — TỰ TÁI-DỰNG (bắt buộc): counter bằng **DELTA từng key**, không đọc endpoint

Phương-pháp mạnh hơn đọc-giá-trị-hiện-tại (giữ từ S153): kéo bản TRƯỚC bằng `git diff -- .claude/governance/.session-counter.json` rồi so **từng key**.

**(a) `counts` — 7 class fire = ĐÚNG +1 mỗi cái · 4 class không fire = ĐÚNG 0 delta:**

| class | trước (HEAD) | nay | delta | khớp brief |
|---|---|---|---|---|
| `view-residual-asym` | 4 | **5** | +1 | ✔ 5 |
| `view-stale-count` | 4 | **5** | +1 | ✔ 5 |
| `view-stale-header` | 0 | **1** | +1 | ✔ 1 |
| `view-stale-status` | 1 | **2** | +1 | ✔ 2 |
| `gap-carry-dropped` | 6 | **7** | +1 | ✔ 7 |
| `gap-decision-sunk` | 0 | **1** | +1 | ✔ 1 |
| `gap-underfill` | 0 | **1** | +1 | ✔ 1 |
| `gap-owner-specifics` · `gap-carry-aged` · `gap-incident-unrecorded` · `view-stale-role-desc` | 0 | **0** | **0** | ✔ |

⇒ 11/11 key có ở CẢ HAI phía (0 key sinh/mất im-lặng) · mọi value kiểu `int` (ép `type()`) ⇒ **bất-biến `2f39a7e` "map chỉ chứa SỐ" còn sống**.

**(b) `signal_decided` = ĐÚNG 7 phần-tử** — nhưng 🔴 **KHÔNG nằm ở `class_repeat`, nằm ở `last_audit`**: probe đầu của tao đọc `class_repeat.signal_decided` → `None`, suýt kết luận "key treo". Probe **đường thứ hai** (`grep -n` raw + `git diff`) ⇒ key có thật tại `:23` dưới `last_audit`. **BROKE nghi-vấn của chính tao** (đúng lớp bài S153 — đường-1 rỗng ≠ vật không tồn-tại). 7 phần-tử: `view-residual-asym · view-stale-header · view-stale-count · view-stale-status · gap-carry-dropped · gap-decision-sunk · gap-underfill` = **khớp 1:1 với đúng 7 class có delta +1** ⇒ 2 cấu-trúc độc-lập nhất-quán nội-tại.

**(c) `light_at_counter` 26 → **27** ✔ · `counter` 26 → **27** ✔ · `signal_session` S152 → **S153** ✔ · `last_ticked_head` `3058470`→`1b7386d` + history[] +1 entry `squash-benign` S153 (tick invariant +1, không +2/+0).

**(d) FIX-1 (đơn-vị tally = phiên-LOGIC) — CHỨNG ĐƯỢC bằng số, không bằng lời khai:**
`view-stale-status` fire **@open ×1 + @close ×3** (FLAG-6/8/9) mà counter chỉ **+1** (1→2). `gap-carry-dropped` fire **@open + @close ×2** (FLAG-1/2) mà chỉ **+1** (6→7). ⇒ máy đếm **quyết-định/class/phiên-LOGIC**, KHÔNG đếm flag và KHÔNG đếm lượt-bookend. **FIX-1 có RĂNG, quan-sát được.**

🔸 **1 dư-lượng tao KHÔNG bỏ qua (INFORM, không phải FLAG của con-đo):** `signal_reset_done` **true → false** trong cùng lượt ghi. Đây là cờ của MÁY, ngoài tầm 2 vai H24 (chúng không ghi file này) ⇒ không chấm TRƯỢT cho ai; nêu để lead xác-nhận đó là "mở vòng mới, reset chờ" chứ không phải cờ bị bỏ lửng.

🔴 **"4 dòng NO-OP" = KHÔNG-CHẤM-ĐƯỢC, tao TỪ CHỐI bịa.** Output máy `h24-signal-write` **không có trong run-folder được pin**: `instrument-detectors-close.txt` nằm ở folder **-open** và chứa **0** chữ `NO-OP`; 2 dòng `NO-OP` trong `run.md` là của **V4/ctx-audit**, không phải signal-write; `WAL.md` = 0 hit. Tự tái-dựng thì **class fire @close = 3 distinct** (`view-stale-status`, `view-residual-asym`, `gap-carry-dropped`), không ra 4 ⇒ không đủ cơ-sở chấm con-số 4. **Thay bằng phép mạnh hơn ở (d): ngữ-nghĩa FIX-1 đã được chứng bằng delta, không cần tin dòng in.**

---

## §2 — VERDICT PER-FLAG (6 FLAG: 4 stale + 2 gap)

### FLAG-6 — `view-stale-status` MED — **ĐẠT**
FLAG có thật. Tao mở source đối chứng: `hmw.js:41` `'ctx-audit'` · `:42` `'ctx-curator', 'ctx-verifier'` — **cả 3 trong VALID_ROLES** · writeGuard `:228` comment liệt cả 3 · `README:27` enum cả 3 · `README:198/199/200` = **3 row skill-matrix riêng**. ⇒ 2 vai mới có **đúng cùng loại** bằng-chứng registry như `ctx-audit`, nên việc `STATUS:454` chỉ cấp `registry-surfaced` cho 1 vai là **lệch THẬT**; và tự-mâu-thuẫn ngay trong câu (`VALID_ROLES 20→23`) cũng đúng.
**Sau-đo:** STATUS đã vá → `file-land + registry-surfaced @S153` **cho CẢ 3 vai ctx** + note 🔄 dẫn đúng 3 chứng. **SUBSTANTIVE.**
🔴 **Nhưng resolve của con-đo có VẾ THỨ HAI chưa xong** ⇒ **R-1** (dưới).

### FLAG-7 — `view-residual-asym` LOW — **ĐẠT**
Site 2 (`report:24`) có thật: số **21** khi canonical = 23 ⇒ nay đã vá thành `**23** [🔄 21 → 23 sau T10 veto 3-vai; số 21 là mốc giữa-phiên, đã stale]` ✔.
Site 1 (`draft:50`) có thật và **vẫn đứng nguyên-văn** ⇒ **R-2** (dưới). Mức LOW mà con-đo tự hạ (vì 2 file "tự hoà-giải rất gần") là **đánh-giá ĐÚNG**, không phải bỏ nhẹ.

### FLAG-8 — `view-stale-status` LOW — **ĐẠT**
Có thật: `:46` mở bằng tiền-đề `Nấc **agreed**` trong khi `:12` = `executed` và `:22` = wire ✅.
**Sau-đo: resolve đạt ĐÚNG điều-kiện con-đo tự đặt** — `grep -c "Nấc agreed\|Nấc **agreed**"` = **0**. Bản mới **tách 2 khái-niệm** (*"nấc adopt vs thời-điểm-hiệu-lực"*) + giữ vế còn đúng (T9 restart) ⇒ **không phải đổi-chữ**, là sửa đúng chỗ nhầm.

### FLAG-9 — `view-stale-status` MED — **ĐẠT**
Có thật: `draft:48` gán `LEAD-DECIDED` cho dải `(35)-(38)`, trong khi `draft:52` + `report:29` + `ctx-curator/MEMORY.md:3` đều nói (38) = **owner chốt THẬT** (diary còn dặn *"đừng ghi nhầm nhãn"*). Lập-luận "MED không LOW" của con-đo (sai *ai đã quyết* ≠ sai *một con số*, cùng lớp C8b **chiều ngược**) tao **đối chứng và giữ y**.
**Sau-đo:** `draft:48` nay = *"🔴 NHÃN TÁCH ĐÔI, đừng đọc gộp (vá @S153 FLAG-9)"* + tách `(35)(36)(37)` ⟂ `(38) = OWNER CHỐT THẬT` + **mang theo lý-do** (*"CẤM gộp … đó là xoá quyền tác-giả của owner"*). **SUBSTANTIVE — vá kèm WHY, chống tái-phát.**

### FLAG-1 gap — `gap-carry-dropped` HIGH — **ĐẠT (tái-dựng khớp TỪNG SỐ)**
Tao đo lại độc-lập bằng `grep -o` (KHÔNG `grep -c`, bẫy mega-line):

| slug | occurrence toàn HANDOFF | trong dòng-THÊM segment S153 |
|---|---|---|
| `hook-vs-budget-cap` | **18** | **0** |
| `uat-s133-budget-freeze` | **12** | **0** |
| `uat-s134-luyke` | **10** | **0** |

Khớp 100% bảng con-đo. Dòng thêm HANDOFF = **9**, token `[carry:` trong đó = **6** ⇒ khớp "6 occurrence / 5 slug". Điều-kiện resolve con-đo tự đặt (**≥30** occurrence trong dòng thêm) ⇒ **CHƯA đạt tại giờ tao đo** ⇒ FLAG còn mở, **không phải đã xử**.
Cơ-chế HIGH được tao xác-nhận: streak đếm segment liên-tục **tính từ segment mới nhất** ⇒ 13/10/8 **rơi về 0** chứ không tụt dần ⇒ `gap-carry-aged` **thôi fire** và bảng phiên sau **trông y hệt "đã xử xong 3 carry quá-già"**. Mất **chứng-nhân**, không mất dương-giả (3 carry còn nguyên 18/12/10 trên đĩa). Đòn-bẩy bất-đối-xứng của con-đo cũng đúng: 4 slug MỚI **có** token đầy đủ trong **cùng một dòng** ⇒ bỏ-sót, không phải đổi-luật.

### FLAG-2 gap — `gap-carry-dropped` MED — **ĐẠT** (1 ô đã đổi SAU đo, không chấm oan)
Phân-hoạch cấu-trúc là THẬT và là phần đắt nhất của FLAG này: 5 mục rớt = lane `lead-stale-auditor` (V2) + `tooling-auditor` (V1); 3 mục sống = lane trio + harvest. Cách đọc "cửa mở nhưng rỗng cho tới khi có danh-sách" (⇒ chỉ MED) là **fair**, không thổi.
**Sau-đo — 2/5 ô ❌ nay đã LAND** (time-drift, KHÔNG phải lỗi con-đo, nó đo 15:43-15:49 và **ghi giờ**): mục 2 header nay `:441` = *"mốc gần nhất **S153** [🔄 vá @S153 FLAG-2 …]"* · mục 4 persona nay **cả 2 file M** (xem §4). ⇒ ghi **"đã-được-xử-SAU-đo"**, 0 TRƯỢT.

---

## §3 — CHẤM CLAIM "vá-@open 0/5" + trạng-thái SAU ĐÓ

**(A) Claim ĐÚNG tại thời-điểm đo — verify được, và con-đo còn tự phòng bẫy time-drift.** Phép đo của nó (`git diff --numstat -- docs/STATUS.md` = `1 1`, HANDOFF = RỖNG) là **1 lệnh tái-dựng được**; nó còn **đo lại khi HEAD trôi** (`c2d01f0..HEAD` = RỖNG) và ghi lý-do. Nay tập-đo đã đổi: `docs/STATUS.md` = **12 3**, `docs/HANDOFF.md` = **8 1** ⇒ **claim 0/5 không còn đúng ở hiện-tại, nhưng đúng khi phát** ⇒ **KHÔNG chấm TRƯỢT oan** (bài time-drift).

**(B) Sweep 9 FLAG lead đã vá (5 @open + 4 @close) — chấm thực-chất, không chấm chữ:**

| vá | trạng-thái đĩa | thực-chất? |
|---|---|---|
| (a) FLAG-1 3-cite → anchor | `:456` nay = `agents/README §Architecture` · `session-start BƯỚC 0.6` · `session-end §commit-format` + khai *"3 cite số-dòng cũ SAI cả 3 (đúng là :5/:48/:315) — vá bằng **BỎ số**, không **ĐỔI số**"* | ✅ **THẬT** — đúng luật anti-drift của chính file, và tự khai số cũ sai |
| (b) FLAG-2 header S151→S153 | `:441` = `mốc gần nhất S153` | ✅ THẬT |
| (c) FLAG-4 trio consent→AUTO | live = *"em-main IN 1 dòng trạng-thái rồi CHẠY, KHÔNG chờ gật"* | ✅ THẬT — xem F-3: hit grep còn lại là **MENTION** |
| (d) FLAG-5 H24 nhịp→hình-B | `hình B` = **3** hit; *"cặp soi-lead spawn VÔ-ĐIỀU-KIỆN 2 bookend"* | ✅ THẬT — nhưng còn **R-3** |
| (e) FLAG-6 registry-surfaced cả-3 | STATUS ✔ | ⚠️ **nửa** — `report:29` chưa ⇒ **R-1** |
| (f) FLAG-9 nhãn (35)(36)(37) ⟂ (38) | `draft:48` tách đôi + WHY | ✅ THẬT |
| (g) FLAG-7 carve-out superseded | 🧊 blanket ở `:52` | ⚠️ **hụt tập** ⇒ **R-2** |
| (h) FLAG-7 report §Sub-agents 21→23 | `report:24` = 23 + 🔄 | ✅ THẬT |
| (i) FLAG-8 caveat (b) agreed→executed | `Nấc agreed` = **0** | ✅ THẬT |

⇒ **6/9 vá THẬT · 2 nửa · 1 hụt-tập. 0 ca "đổi chữ để rời tập-đo" theo nghĩa Goodhart** (không có ca nào đổi HÌNH-DẠNG để thoát detector; 2 ca thiếu là **thiếu phạm-vi**, không phải né đo).

**(C) 3 RESIDUAL — và 2 trong 3 là ĐÚNG cái con-đo đã GỌI TÊN TRƯỚC:**

- 🔴 **R-1 — `report:29` tạo BẤT-ĐỐI-XỨNG MỚI *bên trong MỘT file*.** `report:24` (đã vá) = *"nấc `file-land + registry-surfaced` **cả 3 vai**"*; `report:29` (chưa vá) = *"**Nấc 2 vai mới = `file-land @S153`**; spawn-probe cả 3 = T9"*. FLAG-6 đã viết sẵn: *"Hết flag khi `:454` … **và** `report:29` sửa cùng nhịp (**nếu không sẽ thành bất-đối-xứng mới**)"* ⇒ con-đo **tiên-đoán đúng chế-độ hỏng**, lead vá 1/2 vế ⇒ hỏng đúng như dự. Đây là **thư đi hub**: hub đọc :24 và :29 sẽ thấy 2 nấc khác nhau cho cùng 2 vai.
- 🔴 **R-2 — blanket 🧊 trỏ vào TẬP RỖNG (class "vắng-mặt trông giống ổn").** `draft:52` tuyên *"🧊 mọi câu "KHÔNG cần carve-out O-1 / `pause.md §1` giữ nguyên" **ở §3-§4 phía trên** = SUPERSEDED"*. Tao đếm: `grep -n "carve-out"` toàn file = **CHỈ `:50` và `:52`**; và `sed -n '24,39p' | grep "carve\|giữ nguyên\|§1"` (đúng thân §3+§4) = **RỖNG**. Header thật: §3 = `:24`, §4 = `:33`, §5 = `:40`, **§6 = `:46`** ⇒ câu (36) ở `:50` **thuộc §6**, KHÔNG thuộc §3-§4. **Blanket phủ 0 câu và bỏ đúng 1 câu duy-nhất còn sống.** Người grep "carve-out" rồi dừng ở `:50` vẫn đọc được mệnh-đề SAI (`pause.md:15` đã có carve-out). Đúng resolve con-đo yêu-cầu là **gạch TẠI CHỖ `:50`** — chưa làm.
- 🟡 **R-3 — `STATUS` vẫn CHÉP `{light 6/deep 15/jump 3}` ngay cạnh câu "doc TRỎ key, KHÔNG chép số".** Tao đọc canonical: `h24_cadence` = `light_every 6 / deep_every 15 / jump_on_class_repeat 3` ⇒ **số KHÔNG lệch** (nên tao **KHÔNG** báo đây là stale-count — F-6). Nhưng `h24_cadence._note` viết thẳng: *"docs/persona **POINT TO THIS KEY and must NOT copy the digits**"* ⇒ vi-phạm B1 + **tự mâu-thuẫn trong cùng câu**. Quy trách đúng: **dư-lượng của lead**, KHÔNG phải khuyết-tật con-đo — vì proxy của FLAG-5 (*"digits còn"*) sẽ khiến nó **re-flag lượt sau**, tức lệch về phía **an-toàn**.

---

## §4 — THÁCH-CLEAN (bắt buộc): M-1 persona — lead vá THẬT hay thêm chữ?

Đích soi = đúng chỗ **chính tao bắt @open** và là **điểm mù tự-quy-chiếu của cặp H24** (chúng không tự soi persona mình lần 2; 2 file của chúng đóng lúc 15:45/15:49 **trước** khi vá land).

**Kết: VÁ THẬT ở CẢ HAI vai — không phải thêm chữ.** Chứng:
1. **Khẳng-định bị ĐẢO, không bị bồi:** tiêu-đề `lead-stale-auditor.md:51` từ *"## Nhịp — mày **KHÔNG** chạy mỗi phiên"* → *"## Nhịp — mày chạy **MỖI phiên, ở CẢ HAI bookend** (HÌNH B @S149)"*, thân bài *"spawn **VÔ-ĐIỀU-KIỆN** … **Không cửa-người nào phải mở, không bộ-đếm nào phải tới hạn**"*.
2. **3 chi-tiết load-bearing brief đòi — có đủ:** `light_every` = **STATS-ONLY** (*"đổi VAI TRÒ @S149: giữ SỐ, KHÔNG còn là cổng bắn mày"*) · `deep_every` = **CÒN cổng** · **đơn-vị tally = phiên-LOGIC** (*"2 lượt bookend cùng phiên = MỘT quyết-định/class … đừng đọc 2 lượt thành 2 tally"*) — và **trỏ key, CẤM chép số** (ngược hẳn R-3 ở STATUS).
3. **Quét dư-lượng cadence-gate = 0:** `grep -n "KHÔNG chạy mỗi phiên\|chưa tới lượt\|OVERDUE(light)\|consent"` trên **cả 2** persona ⇒ chỉ **1 hit duy nhất** là dòng lineage `:57` (**MENTION** trích bản cũ). **0 câu cổng-nhịp còn sống.**
4. **Vai thứ 2 cũng được vá cùng lượt:** `lead-gap-auditor.md` +khối `## Nhịp — MỖI phiên, CẢ HAI bookend (HÌNH B @S149)`; numstat **4+/2−** (stale **5+/2−**) ⇒ 2 file cùng nhịp, **không bỏ vai nào** (đúng lớp `view-residual-asym` mà chính chúng đo).
5. **Vá mang WHY + tự-khai điểm mù:** `:57` = *"🧊 Vá @S153 (M-1, `ring2-audit` thách-CLEAN bắt) … khẳng-định phủ-định SAI, sống từ S149 (chính commit `398d343` land hình-B mở file này mà để nguyên câu đó) … **cặp H24 bắt đúng class này ở `STATUS:454` mà sót chính persona mình** ⇒ tập-đo của mày PHẢI gồm `.claude/agents/lead-*-auditor.md` (điểm mù tự-quy-chiếu)"*. Và `lead-gap-auditor.md` **tự chấm mình trung-thực**: *"nhẹ hơn ca kia (không khẳng-định phủ-định) nhưng cùng gốc"*.

🔴 **Vế nợ tao KHÔNG cho qua:** điểm mù **được KHAI, chưa được CHỨNG là đã đóng**. Vá này đến từ **vai KIỂM (tao @open)**, không từ tự-soi của cặp. Bằng-chứng đóng thật chỉ có ở lượt tương-lai khi cặp **tự** bắt một lệch trong `.claude/agents/lead-*-auditor.md` mà không ai chỉ. ⇒ giữ mở làm phép thử cho S154.

**Miss MỚI của cặp @close ở lượt này = R-1 + R-2** (§3C): cả hai nằm **sau** giờ chúng đóng file, nên **không quy lỗi đo**; nhưng chúng là **đúng 2 chế-độ hỏng mà chính chúng viết resolve để chặn** ⇒ lớp cuối bắt được chỉ vì tao chạy SAU vá. Đây chính là INFORM-1 của vai-stale (*"3 mục vá xếp SAU con mắt kiểm cuối"*) — **tao vừa là bằng-chứng thực-nghiệm cho nó**.

---

## §5 — FALSIFY-LOG (6 phép · 3 HELD / 3 BROKE — cả 3 BROKE đều bác NGHI-VẤN CỦA CHÍNH TAO)

- **F-1 BROKE (nghi-vấn của tao SAI).** Nghi: *"gap khai 43 slug distinct nhưng tao đếm 44 ⇒ lệch"*. Phép 2 (`python re.findall(r'\[carry:([^\]]*)\]')`) = **46 raw**, trong đó **3 phần-tử là placeholder** (`'*'`, `'<slug>'`, `'…'`) ⇒ thật = **43** ⇒ **gap ĐÚNG**. Method A của tao (`grep -o '\[carry:[a-z0-9-]*' | sort -u`) **gộp cả 3 placeholder thành 1 bucket** `[carry:` ⇒ ra 44. Occurrence **222** thì **cả 2 phép khớp tuyệt-đối** với gap. ⇒ **KHÔNG báo động giả.** Cùng lớp bẫy vai-stale tự thú ở `:59` (*"bộ lọc chuỗi nuốt nhầm đối tượng"*) — **ca thứ 6**, lần này trên **placeholder trong tài-liệu**.
- **F-2 BROKE (nghi-vấn của tao SAI).** Nghi: *"`signal_decided`/`light_at_counter` là key treo — brief bịa"*. Đường 1 (`class_repeat.signal_decided`) = `None`. Đường 2 (`grep -n` raw + `git diff`) ⇒ key **có thật** ở `:19`/`:22`/`:23` dưới **`last_audit`** (không phải `class_repeat`), `signal_decided` = **đúng 7 phần-tử**. Bài: **1 đường rỗng ≠ vật không tồn-tại** (đúng bài S153, tái-dụng thành công).
- **F-3 HELD (vá của lead đứng vững).** Thử bác: *"FLAG-4 chưa vá — `grep -c "anh gật mới chạy"` vẫn = 1"*. Trích ngữ-cảnh 200 ký-tự ⇒ hit nằm **TRONG note vá**, trong ngoặc kép, mô-tả bản CŨ: `[🔄 vá @S153 FLAG-4 HIGH: ô này còn khai "consent-gated + anh gật mới chạy" sau khi owner (32) đã lật AUTO…]`. Câu SỐNG nói **ngược lại**. ⇒ bác thất-bại; và đây đúng **citation-trap use⟂mention** — re-grep mù sẽ dựng **dương-giả**.
- **F-4 HELD (nghi-vấn của tao ĐÚNG).** Thử bác R-2: *"blanket 🧊 `:52` đã phủ `:50`, FLAG-7 xong"*. Đi tìm các câu ở §3-§4 mà blanket nhắm tới ⇒ **0 câu**; câu duy-nhất còn sống ở `:50` **thuộc §6**. ⇒ scope statement **vacuous** ⇒ R-2 giữ.
- **F-5 BROKE (nghi-vấn của tao SAI).** Nghi: *"persona chỉ được bồi chữ cho đẹp"*. Thử phá bằng cách tìm **bất kỳ** câu cổng-nhịp còn sống ⇒ **0 hit** trên cả 2 file; tiêu-đề bị **đảo** chứ không bồi; 3 chi-tiết load-bearing có đủ. ⇒ vá THẬT.
- **F-6 HELD-có-điều-kiện (chống vu-oan).** Thử: *"digits `6/15/3` ở STATUS là số STALE"*. Đọc canonical ⇒ **6/15/3 khớp** ⇒ **KHÔNG phải stale**. Nhưng `_note` canonical cấm **chép** digits ⇒ khuyết-tật thật là **B1-copy**, không phải drift. ⇒ báo đúng nhãn (R-3), **không thổi lên thành stale-count**.

---

## §6 — KHUÔN + 4-A (datum sống cho đề-xuất END+TOTAL của chính tao @S152)

- `grep -c '^## FLAG-'`: stale = **4** == `TOTAL=4` ✔ · gap = **2** == `TOTAL=2` ✔ (2 lệnh độc-lập của tao, không đọc lời khai).
- 🔴 **4-A pin-bản-cắt SUÝT XẢY RA THẬT lượt này:** bản **đã commit** ở `HEAD` của 2 file là **BẢN CẮT** — `git show HEAD:…sub-lead-stale-close-S153.md | wc -c` = **5.018B** (đĩa 20.993B = **24%**) · gap = **10.174B** (đĩa 21.322B = **48%**). Nếu lead pin qua `git show` thay vì đọc đĩa thì **mất 76% / 52% nội-dung** — gồm TRỌN FLAG-6..9. **Pin của lượt này đúng byte đĩa ⇒ thoát KHÔNG PHẢI nhờ may, mà nhờ pin theo đĩa + có `END … TOTAL=n` để đối chiếu.** ⇒ carry `h24-end-total-line` (đã có trong HANDOFF) **có việc làm thật, đo được**.

---

## §7 — TỔNG (không gộp che FLAG lẻ)

**6 FLAG: 6 ĐẠT / 0 TRƯỢT / 0 KHÔNG-CHẤM.** Class 6/6 ∈ enum 11. Khuôn 2/2 khớp TOTAL.
**Phụ: 21 phép** (gồm falsify 6) — trong đó **1 KHÔNG-CHẤM-ĐƯỢC**: con-số "4 dòng NO-OP" (output máy không có trong pin; tao thay bằng chứng-minh ngữ-nghĩa FIX-1 qua delta).
**3 RESIDUAL sau-vá cần lead xử trước commit chốt:** **R-1** `report:29` (bất-đối-xứng mới trong 1 file, đúng cái FLAG-6 cảnh-báo) · **R-2** `draft:52` blanket 🧊 trỏ tập RỖNG, bỏ `draft:50` (§6 ≠ §3-§4) · **R-3** `STATUS` chép digits `6/15/3` cạnh câu "KHÔNG chép số" (B1, không phải stale).
**2 FLAG gap còn MỞ theo đúng điều-kiện resolve của chính con-đo:** FLAG-1 (dòng thêm HANDOFF có **6** token, cần **≥30**) · FLAG-2 (3/5 ô ❌ chưa có nhà).

<!-- END sub-ring2-close-S153 · TOTAL=27 verdict-item (6 FLAG + 21 phép phụ) -->
