# adap-report — 2026-07-17-Governance-master-checklist-hai-tang-moi-cua-phien

> SE (SOLUTION_ERP) · wave adap 3-bản 17-07 (S138–S139) · run: `.claude/workflows/runs/2026-07-17-S138-adap-3-ban-17-07/` · spec v2 (gate GO_WITH_FIXES 3M/3m/1n áp trọn) · L3 reviewer độc-lập **GO**.

## 1. id-broadcast
`2026-07-17-Governance-master-checklist-hai-tang-moi-cua-phien` (type **new**; content_sha256 12-hex `cadd24aed2e4`, verify 2-tuyến WHOLE+BODY OK @S138, commit nhận `efc0828`).

## 2. nấc G-011
**executed** — 5/5 điểm sàn nằm trong repo, và **2/4 cửa đã runtime-proven NGAY TRONG PHIÊN S139** (command `.md` được re-read mỗi lần gõ lệnh — khác agent `.md`): `/pause` in báo-cáo **sáu ý** kèm ý-6 MASTER-CHECKLIST thật ×2 lượt · `/tiep` in §3-bis thật ×1 lượt, khối chờ-anh CÓ SỐ và anh trả lời bằng số được. 2 cửa còn lại (session-start/session-end) exercise ở lần chạy nghi-thức kế. Unpushed lúc ghi. `verified` = quyền hub.

## 3. evidence (đo thật)
- Commit `3a394b0` (wal: pause S139 — diff-wave): khối MASTER-CHECKLIST in **4 cửa** = `.claude/commands/session-start.md` (Phase 3 REPORT-template, Tầng-2 4-nhóm, trỏ work-state §2.1.5 làm NGUỒN) · `session-end.md` (Phase 4 "TỔNG-HỢP CHỐT": arc đóng trong phiên + mọi mục chưa-đóng chỉ đích nơi đổ carry-slug-HANDOFF/WAL-line/STATUS-row) · `pause.md` (bước 5 ý-6 rút-gọn) · `tiep.md` (§3-bis bold-block trong section 3, KHÔNG heading mới).
- Acceptance L3 re-đo độc-lập từ `git show HEAD:`: heading-count 26/28/7/14 **bất-biến** · grep `MASTER-CHECKLIST` 1/2/1/1 · câu cấm nguồn-đôi 4/4 · khối chèn max 9 dòng (≤15) · "BƯỚC 0" intact ×8 · 10/10 config-token §L.b(c) nguyên · 3 deletion đều content-preserving.
- Sàn-3 (VIEW không SOURCE): `find .claude docs -iname '*checklist*.md'` = **8 trước = 8 sau, 0 file nguồn-đôi mới** (re-đo tươi @S139).
- Sàn-5 (chờ-owner đánh số): luật-hoá tại `session-end.md` §L.b(j)(iv) + dùng THẬT — khối chờ-anh 3 mục đánh số trong 2 báo-cáo pause + 1 báo-cáo tiep phiên này.
- Dry-run acceptance m-2: EM in-thử từ WAL/HANDOFF THẬT ngay post-land — 4 nhóm đủ, nhóm trống ghi tường-minh, chờ-anh có số (bằng-chứng: 3 lần in kể trên nằm trong transcript phiên + báo-cáo cho owner).

## 4. tailored-gì + skip-gì-vì-sao
- **Tailored (FORM SE, giữ FUNCTION-floor):** 4 cửa broadcast map vào 4 lệnh vòng-đời SẴN của SE (mở=`session-start` · điểm-dừng=`pause` · nối=`tiep` · đóng=`session-end`) — 0 lệnh mới. Nguồn durable = bộ có sẵn {WAL · STATUS · HANDOFF · ACTIVE-MARKS}; khuôn = bold-block/bullet ≤15 dòng KHÔNG heading mới (giữ heading-count bất-biến làm acceptance máy-đo).
- **Điểm-4 vòng-carry-khép:** đạt bằng **tận-dụng máy SẴN CÓ** đúng tinh-thần mục KHÔNG-BIẾT của broadcast ("tận dụng, không phát-minh"): H24-2 carry-age detector (đo streak per-slug) + vai lead-omission-auditor (soi carry rớt/quá-già theo nhịp) + nghi-thức re-stamp carry §L.b(j) — 0 máy mới build.
- **Skip:** 0 điểm sàn nào skip.

## 5. honest-caveat
- Sàn-2 "sống ở MỌI cửa" mới chứng runtime **2/4 cửa** (pause ×2 + tiep ×1 trong phiên này); session-start/session-end chứng ở lần nghi-thức kế — nếu lần đó không in đúng khuôn, nấc phải hạ lại executed-partial.
- SELF-CHECK broadcast 4 ô: ô3 (chờ-owner đánh số, trả-lời-bằng-số xử được) = **PASS đã dùng thật** · ô4 (grep nguồn-đôi = KHÔNG) = **PASS 8=8** · ô1 (mở-phiên in 2-tầng khớp carry) + ô2 (mục cố-tình chưa xong tự xuất-hiện lại) = **PENDING** — cần 1 chu-kỳ đóng→mở phiên thật để chấm, chưa có dữ-liệu.
- Vocab-nit (L3, LOW, chờ owner): nhãn "Luật-số sàn-5 (S138)" trùng token "sàn-5" với "Sàn-5 H22 hậu-kiểm CỜ" có trước trong cùng `session-end.md` — 2 hệ-sàn khác nhau; phân-biệt được nhờ emoji/prefix/tag; đề-xuất rename bản mới hoặc đăng-ký `vocab-alias-map.md` (KHÔNG seed detector, per bài S93).
- Unpushed lúc ghi (push gộp @closeout S139).

---

# ✅ ADDENDUM @S185 (2026-08-09) — chấm SELF-CHECK ô1/ô2 + sàn-2, sau 23 ngày

> **Block MỚI, không sửa dòng cũ** (§5 caveat giữ nguyên làm vết — nó đúng lúc viết 17-07). Checklist item **C-18** của run `2026-08-09-S185-email-adap-pipeline`; ruột + lệnh: `.claude/workflows/runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane5-measure.md`.
> Lý do chấm bây giờ: caveat tự hẹn *"cần 1 chu-kỳ đóng→mở phiên thật"* — từ 17-07 tới nay đã qua **≥5 chu-kỳ** (session-13 có `_pause-1/2` · `_tiep-1/2/3` · `_snapshot-1/2`) và **29 commit** dạng closeout. Dữ-liệu ĐÃ CÓ.

## Bảng chấm 4 ô SELF-CHECK

| Ô | Nội dung | Nấc @S139 | **Nấc @S185** | Bằng-chứng |
|---|---|---|---|---|
| ô1 | mở phiên có in plan 2 tầng, tầng-1 khớp carry phiên trước? | PENDING | 🔶 **KHÔNG CHẤM ĐƯỢC — phép thử sai thiết-kế** | xem dưới |
| ô2 | mục cố-tình chưa xong có tự xuất-hiện lại? | PENDING | 🔴 **TRƯỢT — có số** | `HANDOFF` khối RE-STAMP |
| ô3 | khối chờ-owner có số, trả lời bằng số xử được? | PASS | ✅ **PASS (giữ)** | `HANDOFF` khối "CHỜ ANH — ĐÁNH SỐ" (73)(74)(75) + 4 câu P-số @S181 + `checklist-final.md` W-1…W-4 |
| ô4 | có file checklist nguồn-đôi mới không? | PASS 8=8 | ✅ **PASS về THỰC CHẤT · 🔶 phép đo cũ HẾT HẠN** | xem dưới |

### 🔴 ô2 = TRƯỢT, và trượt cả sàn-4 (vòng carry khép kín)

Ba bằng-chứng độc-lập, đều nằm sẵn trong `docs/HANDOFF.md`:
1. Khối **RE-STAMP CARRY @S181**: *"Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí."* — chính sổ tự kết luận.
2. Ngay dưới đó: *"**2 ca `gap-carry-dropped` này KHÔNG nằm trong tally 4-kỳ ở trên** — chúng rơi **im lặng** và chỉ lộ ra khi có người đi tìm nhà của một câu hỏi"* ⇒ con số 12 là **cận DƯỚI**.
3. Ca đích danh: `[carry:eval-thamquyen]` có mặt ở khối carry **S150-S152** nhưng **0 hit** trong khối RE-STAMP @S181 ⇒ **đúng kịch bản ô2**: mục chưa xong, đóng phiên, mở phiên sau **không** tự xuất hiện lại.

⇒ Đây là **ca-âm vàng** mà ô2 hỏi. Không cần dựng thí-nghiệm mới: kho đã tự chạy thí-nghiệm đó 4 lần và trượt 4 lần.
🔸 Hệ quả nấc: sàn-4 của broadcast (*"vòng carry KHÉP KÍN … task rớt giữa hai phiên bị bắt thay vì dựa trí nhớ"*) — SE đạt phần **"có máy"** (H24-2 carry-age detector đo streak) nhưng **không đạt** phần **"bị BẮT"**: máy đếm được 12 mà nghi-thức vẫn rơi thêm 4 kỳ. Đúng phân biệt của chính kho: *"cổng kêu mà không đổi hành-vi = cổng không có răng"*.

### 🔶 ô1 = phép thử neo vào thứ KHÔNG lưu lại được

Thứ ô1 đòi chấm là **hành-vi in ra màn hình** ở cửa mở phiên. Vật chứng duy nhất của hành-vi đó nằm trong **transcript**, không nằm trên **đĩa** ⇒ 23 ngày sau **không ai chấm được**, kể cả khi nghi-thức đã chạy đủ 5 chu-kỳ. Đây không phải "chưa có dữ-liệu" (lý do cũ) mà là **phép thử tự nó không đo được bằng chứng-cứ bền**.

Cái CHẤM ĐƯỢC bằng dữ-liệu sẵn (đề nghị thay thế): **hệ-quả durable của tầng-1**, tức *"artifact cửa-mở có chở trạng-thái carry của cửa-đóng trước không"*. Đo thử 1 điểm: `.claude/sessions/session-13/_context-s-13.md` **CÓ** chở (`:21` trỏ `HANDOFF` = *"brief 5 phút + bảng số chờ-anh + carry"*; `:62` chở trạng-thái thật *"Bookend @close S182 CHƯA chạy … treo-chờ-anh 5 câu ở WAL"*). ⇒ theo phép thử **thay thế** thì **ĐẠT ở điểm đo này**; theo phép thử **nguyên bản** thì **vô hiệu**.
🔴 Bài rút ra, chuyển được cho hub: **SELF-CHECK đòi chứng-cứ ở dạng bản-in sẽ hết hạn ngay khi cửa sổ đóng.** Ô nào cũng nên hỏi *"cái gì còn lại trên đĩa"*.

### 🔶 ô4 = PASS thực chất, nhưng phép đo `8 = 8` đã hết hạn

`find .claude docs -iname '*checklist*.md'` hôm nay = **16** (S139 = 8). Phân loại 16:

| Nhà | Số | Bản chất |
|---|---|---|
| `docs/governance/adap-reports/` | **12** | báo-cáo VỀ broadcast có chữ "checklist" trong tên — **không** phải nguồn work-state |
| `.claude/workflows/runs/` | **3** | vật-chứng run (`checklist-verify-synthesis` 06-18 + `checklist-final` & `sub-review-checklist` của run hôm nay) — run-scoped, ephemeral |
| `docs/guides/security-checklist.md` | **1** | checklist nghiệp-vụ bảo-mật, có từ trước |

⇒ **0 file nguồn-đôi work-state** ⇒ sàn-3 **vẫn đạt**. Nhưng phép đo mà report S139 dùng (*"8 trước = 8 sau"*) là **đếm bằng-nhau trên một corpus đang lớn** — nay mẫu số gấp đôi mà kết luận vẫn PASS, tức **con số không còn phân-biệt được gì**. Phải thay bằng **vị-từ**: *"có file nào tự nhận là nguồn trạng-thái-việc, song song với WAL/HANDOFF/STATUS không?"*
🔸 Khai thẳng ca biên: `runs/2026-08-09-…/checklist-final.md` (sinh hôm nay) là **work-ORDER** (spec giao việc), state per-item nằm ở `sub-*.md` + WAL — nên **không** tính nguồn-đôi. Ghi ra để người sau tự phán, thay vì im lặng cho qua.

## Sàn-2 "sống ở MỌI cửa" — cập nhật từ 2/4

| Cửa | Khối `MASTER-CHECKLIST` trong lệnh (grep) | Vật-chứng nghi-thức ĐÃ CHẠY | Vật-chứng BẢN IN đúng khuôn |
|---|---|---|---|
| mở (`session-start.md`) | **1** | `_context-s-13.md` | ❌ (bản in không lưu đĩa) |
| dừng (`pause.md`) | **1** | `_pause-1.md` · `_pause-2.md` | ✅ @S139 (×2 lượt) |
| nối (`tiep.md`) | **1** | `_tiep-1/2/3.md` | ✅ @S139 (×1 lượt) |
| đóng (`session-end.md`) | **2** | **29 commit** closeout kể từ 07-17 | ❌ (bản in không lưu đĩa) |

- Grep ra đúng **1/2/1/1** — **khớp byte con số report ghi @S139** ⇒ **0 drift sau 23 ngày**, khối không bị ai gỡ.
- Điều-kiện tự đặt của report (*"nếu lần đó không in đúng khuôn, nấc phải hạ lại executed-partial"*) **KHÔNG kích hoạt** — không có bằng-chứng in sai. Nhưng cũng **không thoả được** — không có bằng-chứng in đúng, vì cùng lý do ô1.
- ⇒ **Giữ nấc `executed`**, đổi caveat: từ *"chờ 1 chu-kỳ nữa"* (đã qua 5 chu-kỳ, vô hạn định) sang ***"phép thử phải đổi sang chứng-cứ durable"***.

## Nấc sau addendum

**`executed` (giữ)** cho 5/5 điểm sàn về mặt CÓ MẶT + 3/4 cửa vận-hành thật, **cộng 1 TRƯỢT tường-minh ở sàn-4/ô2** (vòng carry không khép — 4 kỳ liên tiếp, ≥12 lượt rớt, 1 slug đích danh). Không nâng lên `verified`; không hạ toàn khối vì 1 sàn trượt — **ghi tách bạch từng sàn** thay vì gộp 1 nhãn.

## Việc đề-xuất (KHÔNG tự làm ở lane này — khai để nhận sau)
1. **Sàn-4 có răng:** carry rớt phải **chặn** closeout hoặc ít nhất **in tên slug rớt** ở cửa đóng, thay vì chỉ đếm streak. Cùng họ với bài *"cổng kêu mà không đổi hành-vi"*.
2. **Viết lại ô1 + ô2 của SELF-CHECK** theo chứng-cứ durable (artifact cửa-mở chở carry cửa-đóng ⇒ so được 2 file), gửi ngược hub như đề-xuất cải-tiến khuôn SELF-CHECK.
3. **Đổi acceptance ô4** từ đếm-bằng-nhau sang vị-từ nguồn-đôi.
🔸 (1) và (2) chạm nghi-thức/nhịp ⇒ **vùng owner**, chỉ khai. (3) là sửa acceptance trong report này, rẻ.
