# sub-ring2-audit — KIỂM vòng soi-lead H24 — bookend @open S186

> Lượt-trả-1 dính **#53**; mẩu garble **CHỨA FINDING** (*"Re-derivation is stronger than either vai claimed"*) ⇒ giữ, không vứt. Dưới = lượt-trả-2.

**VERDICT: `RING2: 18Đ / 0T / 2KC`** — **0 TRƯỢT trên cả 4 file H24.**

## 2 KC (không chấm, cấm ĐẠT-ảo)
- `gap-light F4` (YC-002 0/9 bề mặt) — ring2 chỉ tái-dựng được **1 chiều**; 9-surface sweep chưa chạy lại trước khi #53 cắt. **Không có dấu hiệu bịa.**
- `gap-deep F2` — vế `l1_hot=3691` vs đĩa **25.454 B** ✓ **xác nhận byte-exact** (tỉ số 6,9× đúng); vế *"re-sync 5 bản sao, 0 hit/6 sổ"* + vế E2-vs-E1 chưa chạy lại ⇒ **không ĐẠT gộp cả FLAG**.

## 🔴 TAI-DUNG — **mạnh hơn CẢ HAI vai**: `migration-todos.md`

- gap-deep khai `grep 10 nhãn = 0/10` — tức **một MẪU**. Ring2 **không grep mẫu**, mà **quét toàn bộ nhãn `S\d{2,3}` trong 824 dòng / 88.151 B**: tập nhãn = `{10,11,17,18,19,20,21,29,32,33,34,35,36,37,38,156,160,162,164,167,168}` ⇒ **max = S168, KHÔNG ngoại lệ**.
  🔑 **Mạnh hơn ở chỗ:** `0/10` còn chừa cửa *"chắc họ ghi bằng nhãn khác"*; **`max = S168` đóng cửa đó.**
- **Đường thứ 2, cơ học, không ai dùng:** `git log -1 -- migration-todos.md` = **`a2b37dcc` 2026-08-01** ⇒ file **chưa được chạm 9 ngày** ⇒ *"0 ô nào tick từ S168"* **không phải suy luận từ nội dung mà là hệ quả tất yếu của lịch sử git**. Trạng thái ô: **210 `[x]` / 128 `[ ]`**.
- 🔄 **Commit-ordering — BROKE giả thuyết BUỘC-TỘI của chính ring2.** Nó nghi file bị sửa **SAU** cú ship rồi vẫn để nguyên chữ BLOCKED (**nặng hơn nhiều**). Đo: `a2b37dcc` **16:12:06** < `081557b4` **16:49:46**, `merge-base --is-ancestor` = **NO** ⇒ file **đóng băng 37 PHÚT TRƯỚC khi cửa chặn mở**, cùng ngày cùng phiên S168. ⇒ **giữ phán quyết, HẠ lý do**: không phải cố ý bỏ, mà là **đóng băng đúng một bước trước khi trạng thái đổi** — rồi **18 nhãn phiên không ai quay lại**.
- 🔴 **`tiep_reload` — BROKE nghi vấn thứ 2, và làm 2 FLAG NẶNG THÊM theo cách KHÔNG VAI NÀO NÓI RA.** Diary ring2 có 2 mốc ghi "5 nguồn" nên nó nghi gap-deep bịa "1/9". Đọc khoá sống: **LIST len = 9**, phần tử **#9** = `migration-todos.md :: header Active-work + section Phase hiện hành`. **Vai ĐÚNG, trí nhớ ring2 stale** (danh sách nở 6→9 @S168).
  ⇒ Nguồn #9 nạp **đúng "header Active-work"** = **đúng dòng `:4` đã chết** ⇒ câu *"GĐ3 BLOCKED chờ slot (63)"* được **TÁI SINH vào context lead MỖI LẦN `/tiep`**. Cùng lớp `lead-stale` FLAG-15 @S162 (*"sai số TÁI SINH mỗi /tiep"*).
- **Hội tụ 2 vai là THẬT và ĐỘC LẬP:** gap đo *thiếu* (0 tick), stale đo *lệch* (nội dung dẫn sai). Cùng vật, **2 vị ngữ khác nhau** ⇒ **không phải đếm trùng**.

## FALSIFY — 5 phép, **3 BROKE vào chính ring2**
1. 🔴 **BROKE (tự)** — `README:67` "5 vai": cắt 400 ký tự thấy dòng chỉ nói ĐỘI STYLE ⇒ định TRƯỢT vì cite sai neo. Đọc trọn **527 ký tự**: đuôi liệt đúng 5 tên ⇒ **cáo buộc sập, stale-light F6 HELD**. *(Tái phát bài S159 "mega-line cắt ngắn suýt tạo cáo buộc oan" — vấp lại đúng chỗ.)*
2. 🔴 **BROKE (tự)** — "1/9 nguồn `tiep_reload`": 2 entry diary ghi 5 ⇒ nghi bịa. Khoá sống = 9 ⇒ **gap-deep HELD**.
3. 🔴 **BROKE (tự)** — commit-ordering (xem trên).
4. **HELD** — thử đọc `STATUS:9` thành **dương-giả** qua miễn-trừ "STALE-BY-DESIGN" (`:7`+`:695` tự khai khối CURRENT "chỉ advance @closeout"). **Bác không được:** miễn trừ phủ độ trễ **trong 1 phiên**; đây trễ **4 closeout / 17-18 nhãn**, và `:695` ghi rõ ca **y hệt @S179 đã bị xử là lỗi**. **Miễn trừ không co giãn tới 4 kỳ.**
5. **HELD** — nghi `view-claim-broader-than-sample` là **ép-vừa-enum** (nghe giống lỗi *thời điểm* hơn lỗi *suy rộng*). **Bác không được:** lead lấy 1 lát cắt (counter=59) rồi phát ra như trạng thái toàn phiên ⇒ **đúng vị ngữ "claim rộng hơn mẫu"**. Class giữ.

## 🔴 THACH-CLEAN — **CÓ 1 FLAG SÓT**, nằm ĐÚNG vùng mù `lead-stale-deep` tự chỉ

**`.claude/commands/session-start.md:142`** — `5. docs/changelog/migration-todos.md — atomic tasks theo phase (**Phase 11 polish hiện tại**)`.
Trong khi `CLAUDE.md` (**cùng nhiệm vụ, cùng danh sách 5-file**) đã ghi *"active-work đọc TRONG file — **KHÔNG neo nhãn phase ở đây, H24-DEEP F-10**"*, và chính `migration-todos:4` trỏ **§Phase 12**.
⇒ Một FLAG H24-DEEP cũ (**F-10**) đã ra luật *"cấm neo nhãn phase"*, luật **được thi hành trên `CLAUDE.md`** nhưng **bỏ sót bề mặt song sinh** ⇒ nhãn `Phase 11` **sống tiếp**. Class: **`view-residual-asym`** — **cùng đúng dạng vá-nửa** mà stale-light F5 bắt ở VALID_ROLES.
**Nặng vì:** đây là **lệnh khởi phiên, đọc mỗi phiên**, và nó **dán nhãn phase sai lên đúng cái file đã đóng băng** ở 2 FLAG trên. **Ngoài trục số-học** ⇒ đúng chỗ vai khai chưa mở.

## ENUM-P3B — **đúng luật, cả 2 vai**
**12/12** class dùng ∈ `lead_self_audit.flag_classes` (`_sealed_P3B_S181` + `_class_added_S172`), **0/20 tự chế**; `set(class_repeat.counts)` ≡ `set(flag_classes)` **12/12 hai chiều**.
2 mục INFORM (công thức đếm migration tự nuốt `AddPeApprovedBudgetSnapshot` ⇒ 71 thay 72 · nghi lane2 cụt) đều là **quan sát thật nhưng vị ngữ không thuộc class nào** ⇒ xử **ĐÚNG**: không ép vừa, không tự chế, đẩy `error-ledger`, **không tính vào FLAG-count**.
🔸 *Chính nước đi mà @S162 ring2 phải chấm TRƯỢT vì vai ép-vừa (F-16), và @S172 phải escalate owner mở class mới — **lần này 2 vai làm đúng ngay từ đầu**.*

## DEEP-CO-DANG-TIEN
**Trung thực, không khiêm tốn giả** — 3 FLAG light nó tự nhận nặng hơn đều ĐẠT và đều đánh vào **cơ chế đang chạy sai NGAY LÚC NÀY**, còn 6 FLAG deep đánh vào **nợ tồn**. **Nhưng *"chỉ thắng bề rộng"* là NÓI NHẸ ĐI MỘT NẤC** — `deep F1` (migration-todos đóng băng, con-trỏ chết 2 đầu) là **FLAG có bán kính lớn nhất phiên**, và light **về cấu trúc không thể thấy** vì nó không mở tệp run / không dựng set-difference từ nguồn.

## FLAG3-GAP-DEEP
**Lời hứa CÓ THẬT** — `bookend-close-synthesis.md:33`, verbatim *"`signal_last_kind` cuối = light … lần sau gọi light TRƯỚC deep"*; **đến hạn đúng lượt này** vì `deep_every=1` ⇒ mỗi bookend bắn cả 2 kind.
**Thứ tự đúng:** gọi **`light` trước, `deep` sau**, để `signal_last_kind` đọng lại là **`deep`** — nấc CAO hơn và là nấc thực sự đã trả. Gọi ngược ⇒ field **vĩnh viễn khai `light` dù deep đã chạy**, tức **hạ cấp chính công việc vừa làm, mỗi phiên**.
🔸 Ring2 verify được **vế lời hứa + vế cơ chế**, **chưa mở `h24-signal-write.ps1`** ⇒ khuyến nghị thứ-tự là **suy từ ngữ nghĩa field**; lead nên liếc script trước khi ghi. *(Lead ĐÃ liếc: `.SYNOPSIS` + `_contract` xác nhận — dedupe max-1-decision/class/logic-session, và `(4) updates last_audit.{light|deep}_at_counter`.)*

## TALLY-KHUYEN-NGHI
- **Đơn vị = VÒNG-ĐO, không phải flag** (bài S153: 2 FLAG cùng class chỉ +1). light + deep = **2 nấc trong CÙNG cửa bookend-open** ⇒ **gộp thành 1 quyết-định/class**.
- **9 class được +1:** `view-stale-role-desc` · `view-stale-status` · `view-stale-header` · `view-stale-count` · `view-residual-asym` · `gap-carry-dropped` · `gap-decision-sunk` · `gap-carry-aged` · `view-claim-broader-than-sample`.
- 🔴 **KHÔNG ghi:** `gap-underfill` (gap-deep tự khai *"không đo lượt này"*) · `gap-owner-specifics` + `gap-incident-unrecorded` (**honest-zero có lập luận ⇒ giữ 0, không reset**).
- 🔴 **Cảnh báo đơn-vị (bài D-4/S159):** `class_repeat.counts` là **consecutive-audit** — đừng chép số đếm-trong-phiên vào đó. Hiện `gap-carry-dropped`=**14**, `view-residual-asym`=**12**, `view-stale-count`=**12**, đều **≥4× ngưỡng jump 3**. ⇒ ***"+1 nữa không đổi bản chất; cái cần là ĐỔI HÀNH VI, không phải đổi số."***
- 2 mục KC ring2 **không bác** — lead tự đối chứng được thì cứ +1, ring2 chỉ **không đứng ra bảo chứng**.

## Tham chiếu chéo `verified-number / unverified-label` (ring1)
Hình dạng **có xuất hiện**, **nhẹ hơn ca `Puro`** — *số đúng, nhãn/neo lệch* ×3: (a) stale-deep neo `harness-11-engine.md:470` (S181 là `:474`) = **trôi dòng thật**, số dòng hiện tại đúng; (b) gap-deep "~17 nhãn phiên" — S168→S186 là **18**, vai để dấu `~` nên **không sai**, và "4 phiên-LOGIC" thì **chính xác** (L9→L13); (c) stale-light F1 gán `view-stale-role-desc` cho vật mang **cả** lỗi liệt-kê **và** lỗi số — biên giới với `view-stale-count`, **không chấm TRƯỢT** vì vị ngữ chính là *danh sách thiếu phần tử*.
🟢 **Không ca nào là tên-ma** — mọi neo ring2 mở đều tồn tại thật.

## 🔴 Câu dặn cuối
> **18 ĐẠT là độ CHÍNH XÁC — mọi FLAG đều trúng vật thật. Độ PHỦ thì KHÔNG.**
> Cả 4 file đều tự khai SÀN; `lead-stale-deep` tự khai 29/29 persona chỉ grep + `gotchas` chỉ đo số-học; **và ring2 vừa bắt được 1 FLAG sót ngay trong vùng mù đó chỉ bằng 1 lệnh grep** ⇒ **bằng chứng vùng mù còn RẤT NHIỀU vật, không phải đã cạn.**
