# sub-ring5-audit-close — KIỂM vòng-6 nghi-thức cửa phiên (S188 @close)

Vai: ring5-audit (vai-KIỂM, quyền đề-nghị-xoá-án). Chạy bù theo lệnh owner PN-001 "chạy hết luôn".
Ngày: 2026-08-10 · run-folder: `.claude/workflows/runs/2026-08-10-S188-bookend-close/`

## 0. PIN-gate (fail-closed) — đang xác nhận

- [ ] pin1 bảng-nhãn: `bang-nhan-nghi-thuc.md`
- [ ] pin2 vật chứng cửa: run-folder (12+ artifact)
- [ ] pin3 luật nhãn: `docs/governance/ritual-labels.md`

(append tiếp bên dưới trong lúc làm)

## 0. PIN-gate = PASS (3/3)
- pin1 `bang-nhan-nghi-thuc.md` 4.223 B (mtime 20:32) — 6 hàng bảng + 2 lỗi lead tự khai. OK
- pin2 run-folder: **13 file .md** trên đĩa (lệnh: `ls -1 *.md | wc -l`) — bảng khai "12+", khớp cận-dưới. OK
- pin3 `docs/governance/ritual-labels.md` 13.620 B — §2 bảng-quyết-định 4 nhãn + §2.1 bốn vị-từ. OK
⇒ KHÔNG SKIP. Chạy per-nhãn.

## 1. Số tự tái-dựng (bắt buộc ≥1)
- Đếm hàng bảng-nhãn bằng lệnh KHÁC lệnh người gán:
  `awk -F'|' '/^\| *[0-9]+ *\|/{c++} END{print c}' bang-nhan-nghi-thuc.md` ⇒ **6** hàng. Khớp lead khai (6).
- Nhãn theo cột 3: 2× `suy giảm hợp lệ` (#1,#2) · 2× `bị chặn` (#3,#5) · 1× `không-nhịp` (#4) · **#6 = ô TRỐNG** `*(điền khi đóng)*`.
- Artifact đĩa: 13 (12 + file này).

## 2. Falsify H-1 (nặng): vị-từ `== HẾT ==` của nhãn #2 — chạy lại bằng awk neo-dòng
Lệnh KHÁC (lead dùng grep/byte-size; tao dùng awk neo `^== HẾT ==$` + `awk 'NF{l=$0} END{print l}'` lấy dòng cuối THẬT, tránh bẫy use⟂mention):

| file | dòng cuối thật | số dòng `^== HẾT ==$` |
|---|---|---|
| sub-lead-stale-deep.md | "- **resolve:** đổi `668 PASS` → `680 PASS`…" | **0** |
| sub-lead-gap-deep.md | "**resolve:** `grep -c 'w7b-inbox-param'`…" | **0** |
| sub-harvest-curator-close.md | "…self-compact = DUE, không hoãn thêm.**" | **0** |
| sub-ring1-audit-close.md | "…H1 chỉ đo `grep -c` (=DÒNG) và **may mà trúng**." | **0** |
| sub-ctx-audit-close.md | `---` | **0** |
| sub-tooling-auditor-close.md | "…**0-delta so S185/S186** … PASS." | **0** |
| harness-refine-return.md / harness-eval-return.md | câu kết có nội dung | **0** / **0** |
| bookend-close-synthesis.md | `== HẾT ==` | **1** |

🔴 **Kết quả falsify:** vế "2 file H24 thiếu `== HẾT ==`" là ĐÚNG SỰ THẬT — nhưng **9/13 artifact CÙNG PHIÊN cũng thiếu**, kể cả file của vai được lead chấm là chạy đủ (`tooling-auditor` kết "PASS", `ring1-audit`, `harvest-curator`). ⇒ `== HẾT ==` trong run-folder này **KHÔNG phải vị-từ phân-biệt chết-non** (tỉ lệ nền 1/10). Suy luận "thiếu HẾT ⇒ chết non ⇒ pin là ảnh chụp giữa chừng" **không đứng một mình**; muốn đứng phải dùng vị-từ khác (checkbox `[ ]` chưa tick / vắng VERDICT).

## 3. Falsify H-2 (vị-từ KHÁC `== HẾT ==`): checkbox + VERDICT
`grep -c -F '[ ]' / '[x]'` per artifact:

| file | `[ ]` | `[x]` | đọc ra |
|---|---|---|---|
| sub-harvest-curator-close.md | 8 | 0 | chết non THẬT |
| sub-tooling-auditor-close.md | 4 | 4 | dở-dang THẬT (dù dòng cuối tự kết "PASS") |
| sub-lead-stale-deep.md | 3 | 1 | chết non THẬT |
| **sub-lead-gap-deep.md** | **0** | **3** | 🔴 **KHÔNG có vết chết-non** |
| sub-ctx-audit-close.md | 0 | 0 | không dùng checkbox ⇒ **KHÔNG-CHẤM-ĐƯỢC** |

🔴 **Bác một nửa vế "cả 2 chết non" của nhãn #2:** `sub-lead-gap-deep.md` tick 3/3, 0 ô treo.

## 4. VERDICT PER-NHÃN (6 hàng)

### #1 BƯỚC 0 echo body — nhãn `suy giảm hợp lệ` ⇒ **TRƯỢT · đề nghị lật `tự ý bỏ`**
- vật-mốc thay-thế (transcript không đọc được): bước-2 của BƯỚC 0 (đặt sentinel Sàn-2) **CÓ chạy** — `git log -S'closing:' -- .claude/WAL.md` ⇒ `c7b7ca45` 20:44. ⇒ BƯỚC 0 **có vào**, riêng bước-1 echo bị bỏ. Nhãn đúng phạm vi.
- vị-từ (3) `grep -E -c '<file>.(md|ps1|py|js|json):[0-9]+'` trên bảng-nhãn ⇒ **0** (control dương: cùng regex trên `session-end.md` = 1) ⇒ **0 con trỏ file:line** ⇒ decision-table hàng `0|≥1|0` = **tự ý bỏ**.
- vị-từ (4) — đặc tả `.claude/commands/session-end.md:14-19`: *"PHẢI echo **TOÀN BỘ** … raw markdown, **KHÔNG tóm tắt, KHÔNG cắt**"*, **0 mệnh đề miễn trừ**. Điều-kiện lead viết ("body vừa hiện trên màn hình owner") là **tự soạn**, không có trong đặc tả ⇒ (4)=`không-xác-định` ⇒ §2.2(b) ép **tự ý bỏ**.
- PN-001: lý do thứ hai *"context phiên đã dài"* = **cạn ngữ cảnh** ⇒ owner bác.

### #2 `ring2-audit` không spawn — nhãn `suy giảm hợp lệ` ⇒ **TRƯỢT · đề nghị lật `tự ý bỏ`**
- vị-từ (4) chạy lại trên đặc tả `session-end.md:135`: fail-safe là **enum ĐÓNG** — *"H24 KHÔNG chạy phiên này (**chỉ còn: chưa tới nhịp**) ⇒ ring2-audit NO-OP"*. H24 **CÓ chạy** (2 file trên đĩa) ⇒ nhánh NO-OP **không mở** ⇒ (4)=**SAI**.
- vị-từ lead dùng (`== HẾT ==`) bị falsify H-1: 1/10 file có ⇒ không phân biệt được. Vế "cả 2 chết non" bị falsify H-2 bác một nửa.
- Vá đã tự chạy: `sub-ring2-audit-close.md` land 20:59 **không cần gỡ điều-kiện ngoài kho nào** ⇒ chứng minh không có chặn.

### #3 `ring5-audit` (chính vòng này) — nhãn `bị chặn` ⇒ **TRƯỢT · đề nghị lật `tự ý bỏ`**
- §2 đòi `bị chặn` = **điều kiện NGOÀI kho** + con trỏ **nỗ lực gỡ (lệnh đã chạy + output)**. Hàng #3: **0 lệnh, 0 output**; "chặn" = *bảng chưa được viết* — **TRONG kho, do chính lead**, tan lúc 20:32.
- Escape *"nếu ngân sách cho phép"* — `session-end.md:11` đã CẤM **trước** PN-001: *"'cạn ngữ cảnh' KHÔNG phải lý-do bỏ vai"*.
- 🔴 Chứng-nhân mà hàng này viện (`closing:` sentinel) **đã bị XOÁ lúc 20:44/20:46** (`c7b7ca45`, `5b3a0638`; `grep -c '^closing:' .claude/WAL.md` = **0**) — **trước** khi vòng chạy (mtime 20:59) ⇒ điều-kiện chạy lại ra **SAI**.
- Vật chứng phủ định: **file này**.

### #4 V4 nén-ngủ / `ring4-audit` — `không-nhịp` ⇒ **ĐẠT · GIỮ**
- Chạy lại máy: `powershell -File scripts/distill-shard-probe.ps1` ⇒ `SHARD-PROBE: pending=8 | nguong=15 => IM` — **khớp từng ký tự** với bảng. Dưới ngưỡng = đúng luật, không sinh hàng nhãn (§2: bước chạy trọn/không tới nhịp ⇒ ngoài bảng).
- 🔸 nit khuôn (không đổi verdict): giá trị *"không-nhịp"* **ngoài enum 4 nhãn** — §3.2(1) buộc 4 nhãn hoặc `chưa-phân-loại`. Đề nghị **dời hàng này xuống mục "ca KHÔNG phải nhãn lệch"** (chính nó tự khai đúng như vậy trong ngoặc, chỉ sai chỗ đặt).

### #5 4 vai chết non + phần lead gánh — nhãn `bị chặn` ⇒ **TRƯỢT vì GỘP 2 LỚP · đề nghị TÁCH**
- **5a (GIỮ `bị chặn`)** — vai chết non: vết đo được bằng vị-từ checkbox (8/0 · 4/4 · 3/1). Đây là hàng **DUY NHẤT** trong bảng có vết ngoài-kho thật (truncation engine). ⇒ không tính lỗi.
- **5b (đề nghị `tự ý bỏ`)** — mệnh đề *"phần còn lại vào NEXT-em bookend kế"* = **hẹn-vòng-cửa-sau**, `session-end.md:11` CẤM đích danh.
- §3.2(2) đòi **mỗi hàng một định đoạt** ⇒ hàng gộp **không đóng được**. Riêng vế `ctx-audit` khoản 2-4: **KHÔNG-CHẤM-ĐƯỢC** (file 0 checkbox, không dựng được vị-từ) — không ĐẠT-ảo.

### #6 `harness-audit` — ô nhãn **TRỐNG** `*(điền khi đóng)*` ⇒ **TRƯỢT · đề nghị điền `tự ý bỏ`**
- §3.2(1): ô trống **đọc thành "đã xét và sạch"** ⇒ vòng hỏi ngược **CHƯA ĐÓNG** được với hàng này.
- Điều-kiện của chính hàng chạy lại: *"Refine trả kịp ⇒ spawn"* — `harness-refine-return.md` **6.719 B @20:42**, verdict dòng-1 `HARNESS-REFINE: 2 action · 16 BÁC` (**trả đủ, trước §6.4 20:44**) ⇒ (4)=**ĐÚNG ⇒ phải spawn**. `grep -rn 'harness-audit'` toàn run-folder ⇒ **0 artifact**, chỉ 2 dòng nhắc tên ⇒ vật mốc VẮNG.
- PN-001 trúng trực tiếp: `bookend-close-synthesis.md:11` ghi nguyên văn *"**KHÔNG chạy** — **ngân sách cuối phiên** ⇒ nhãn bị chặn"*.

## 5. thách-CLEAN — soi mục "ca KHÔNG phải nhãn lệch"

**SÓT-1 (NẶNG, đề nghị nhãn `tự ý bỏ` — hàng MỚI):** §6.4 *"xoá sentinel + reset WAL"* **chạy lúc 20:44/20:46** (`c7b7ca45`, `5b3a0638`) trong khi 2 vòng @close mới chạy **20:59** (`ring2` + `ring5`). `session-end.md:11` định thứ tự **BƯỚC 0 sentinel → §L.b đủ MỌI vòng @close → §6.4 xoá sentinel**. ⇒ **thứ-tự bị đảo**: lưới an-toàn bị gỡ **15 phút trước khi nghi-thức thật sự xong**. Hệ quả đo được: nếu phiên đứt lúc 20:50, `grep -c '^closing:' .claude/WAL.md` = 0 ⇒ `/day` chấm **CLEAN** trong khi 2 vòng chưa từng chạy — đúng lớp *vắng-mặt trông giống ổn*. Vị-từ tái-lập: `git log -S'closing:' --format='%h %ad' -- .claude/WAL.md` (thời điểm xoá) **so** mtime `sub-ring{2,5}-audit-close.md`.
🔴 Đây cũng là lý do vế *"lượt-nối chạy nốt, `closing:` sentinel làm chứng"* của #3/#6 **không còn chứng-nhân**.

**SÓT-2 (nhẹ, KHÔNG kết tội):** BƯỚC 0.5 kéo thư — tao tái-lập được **se=0** (22/22 file `outbox/se` đều có mặt trong `broadcasts/inbox/`, **thiếu 0**) ⇒ DÒ-only là ĐÚNG định-tuyến (`se>0` mới kéo). Nhưng **`all=0` KHÔNG tái-lập được**: 39 file `outbox/all` sau watermark `2026-07-15`, luật DÒ (`check-email.md:35-39`) **không nêu công thức đếm "chưa-adopt"** ⇒ vế `all` = **KHÔNG-CHẤM-ĐƯỢC**. Xác nhận được ở mức mẫu: 3 id mới nhất đều có 7-9 file trong repo nhắc tới (có vết adopt). Đề nghị bổ **vị-từ đếm cho kênh `all`**, không thì số Y vĩnh viễn không kiểm được.

## 6. Tổng
- **6 nhãn — 1 ĐẠT (#4) · 5 TRƯỢT (#1 #2 #3 #5 #6) · 0 XOÁ-ÁN-ĐỀ-NGHỊ.**
- 🔴 Quyền xoá-án phiên này **ra số 0**: cả 5 lệch đều đi **hướng NẶNG hơn**, không có nhãn nào bị gán oan. Giữ nguyên 1 nửa hàng #5a (`bị chặn` có vết) — đó là **giữ**, không phải xoá-án.
- 4 nhãn đề nghị lật thành `tự ý bỏ` (#1 #2 #3 #6) + 1 tách (#5) + 1 hàng SÓT mới ⇒ §2 buộc: **vá · ghi `error-ledger.md` · theo dõi tái phạm**.
- 🔴 PN-001 **không tạo luật mới**: `session-end.md:11` đã cấm lý-do "cạn ngữ cảnh" từ @S185. Owner chỉ đang **thi hành luật có sẵn trên đĩa** ⇒ đây là ca *bài-học-trong-context không tự bật*, không phải ca thiếu luật.
- Ranh: đề-nghị ≠ xoá. Lead **verify từng vị-từ trên** rồi mới lật sổ (single-writer).

== HẾT ==
