Files
solution-erp/.claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/wave-plan-S180.md
2026-08-07 15:23:14 +07:00

232 lines
49 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# wave-plan-S180 — N4 TỔNG HỢP → PLAN 7 WAVE (gói nâng cấp 7 GĐ, AI_INFRA)
> **Vai:** reviewer (N4, `/fable-real`, Fable 5) · **Phiên:** S180 (2026-08-07)
> **Đầu vào:** spec + run.md + N1 fit-map (48 KB) + N2 (11 finding) + lead-verify D-LANE-01 + 6 lane N3 (A/B/C/D/E/F) — cùng thư mục.
> **Chế độ ghi:** GHI DẦN TRONG LÚC LÀM — mỗi wave append ngay khi chốt. File này KHÔNG có heading chờ-điền; wave nào chưa xuất hiện = chưa chốt.
> **Ràng buộc cứng:** OD-2 (đúng thứ tự GĐ-0→6, cấm nhảy cóc, cấm ăn lẹm) · mỗi wave trỏ ≥1 mã TC (không thì LOẠI — ngoại lệ duy nhất W0, khai bên dưới) · 4 ô hub để CHỮ (TC-02·03·07·10) GIỮ CHỮ · khoản VƯỢT-KHUNG tách sub-wave gated-anh · ước lượng khối lượng PHẢI kèm mẫu số · `KHÔNG ĐO ĐƯỢC` hợp lệ, bịa thì không · 2-3 xung đột triết lý: TRÌNH phương án, KHÔNG tự chọn.
---
## §Q — Quy ước dùng chung cho MỌI wave (chốt trước, wave chỉ trỏ về)
- **Q1 · Khuôn 7 trường mỗi wave:** `GĐ` · `điều-kiện-vào` · `TC chữa (mã)` · `deliverable (tệp cụ thể)` · `acceptance (lệnh chạy được | KHÔNG ĐO ĐƯỢC + vị-từ thay thế)` · `lớp restart A/B/C` · `rủi ro + rollback`. Kèm `khối lượng (tử/mẫu, khai mẫu số đếm CÁI GÌ)`.
- **Q2 · Nấc & scope (đường F-03):** mỗi wave mở bằng 1 dòng **nấc "đã đồng ý"** trong tệp theo dõi: *"adopt tới đâu"* — liệt khoản VÀO scope + khoản NGOÀI scope (đi mục 8/10 báo cáo khuôn B). Thi công TRỌN scope đã khai ⇒ wave đạt nấc **đã thi công** hợp lệ; ô Quyết định fit-map giữ ĐÚNG 1 trong 3 giá trị (`áp dụng`/`không áp dụng`/`hoãn`), KHÔNG trộn. Nấc tự khai tối đa = **đã thi công** — nấc *đã được kiểm chứng* CHỈ hub cấp, CẤM tự viết (áp cả TC-03/TC-09).
- **Q3 · Điều-kiện-vào theo OD-2:** wave k vào được ⟺ wave k1 **đã thi công** (theo scope Q2) HOẶC phần treo của k1 là **miễn/hoãn CÓ KHAI** (1 dòng trong tệp theo dõi + mục 10 báo cáo). Hub cho GĐ-4 kéo sớm — **KHÔNG DÙNG** quyền này (OD-2). Wave chạy hết phiên ⇒ dừng đúng ranh nấc, ghi WAL, KHÔNG ăn lẹm.
- **Q4 · Lớp restart (lane F):** **A** = script/config ăn ngay · **B** = persona, ăn từ restart · **C** = `settings.json`/`CLAUDE.md`/`commands/*.md`, restart BẮT BUỘC. Trình tự trong 1 wave chạm nhiều lớp: A → B → RESTART → verify B → C → RESTART → verify C. Wave chạm B/C **phải có ≥1 phép đo chỉ xanh SAU restart** (ghi rõ lệnh).
- **Q5 · Đụng máy đang sống:** sửa `governance-detectors.ps1` / `nhip-no-probe.ps1` / `session_ctx.py` = sửa máy các cửa phiên đang dùng ⇒ **fault-inject `-RepoRoot` cây tạm TRƯỚC khi land** (lỗi cấy vào → FLAG, trả lại → sạch); mọi phép 0-hit kèm control-dương.
- **Q6 · Sự thật đã chốt (dùng, không đo lại):** GĐ-2 ≥ GĐ-5 cùng thước 8-bước (xếp hạng N1 đổ, claim thành phần đứng) · GĐ-2 mẫu số 3 cách lệch ~3× (13 khoản→42% · 8 bước→69-75% · **6 ô nghiệm thu→25%, mẫu số cấp-nấc**) · `spawn-model-audit.ps1` mù đường Task (17 lane phẳng, 168 bản ghi fable trong vùng mù, vẫn in TOTAL FLAGS: 0; H23 @S126 vẫn đứng) · `jump_on_class_repeat` fed-but-unread 0 reader (control-dương `light_every` có read `:865`) · `session_ctx_kb` + `pull_warn_days` KHÔNG phải ghost-wire · ranh fail-loud⟂advisory ĐÃ CÓ trên đĩa (`memory-archive-gate.ps1:323-325`; phạm vi thật 5 máy fail-loud + `hmw.js` 4 throw + 9 advisory + 3 biên) · `tiep.md:181` chủ ngữ là **checklist**; sổ-3-khối đo 7 hàng × 4 kho: 4 hàng TRỐNG THẬT, đụng đúng 1 cột *trạng thái* · tiền-kiểm phủ **4/19 cửa**, `/adap-apply` = 0 · GĐ-6 "chưa ĐÁNH GIÁ ĐƯỢC — thiếu vật tham chiếu" ⇒ W0 phải đẻ bản-đồ-áp-dụng · GĐ-0 không TC nào trỏ về · TC-10 = lỗ CHỮA duy nhất · TC-03/TC-09 SE không mắc (26/26 pin sạch) ⇒ `không áp dụng CÓ KHAI` · 3 lớp restart · vá jump phải chạy INFORM ≥1 phiên trước khi cho kêu to (8-12 class nợ tồn sẽ bật cùng lúc).
*(Các wave append từ đây xuống — W0 trước.)*
---
## W0 — GĐ-0: Tiếp nhận + bản đồ áp dụng (đóng cho ĐỦ, không đóng cho có)
- **GĐ:** 0. **Điều-kiện-vào:** thoả sẵn (4 món trên đĩa, hash 4/4 khớp canonical qua `scripts/stamp_verify.py`).
- **TC chữa:** **TC-06** — 🔴 **NGOẠI LỆ CÓ KHAI.** Hub không gán TC nào cho GĐ-0 (lane E §4.3: theo chữ hub là "đồ chơi"). Lane E đưa 2 đường; N4 **chọn đường 2 — tạm gán TC-06** vì SE có ca TC-06 SỐNG ngay trong GĐ-0 (nghi thức "ghi dòng đã-nhận" bị bỏ: `grep "upgrade-pack-phased" broadcasts/_index.md` = 0, control `harness-22`=3), đồng thời **nêu cả 2 đường cho hub phán** ở mục 8 adap-report (đường 1 = hub thêm ngoại-lệ *enabling* vào luật). CẤM chép câu N1 *"điều kiện tồn tại của mọi TC"* vào ô TC (chữ-vào-ô-đòi-mã — lane E §4.3 cảnh báo đích danh).
- **Deliverable (5, đường dẫn cụ thể):**
1. Sửa luật lane 1 dòng `broadcasts/_index.md:7` theo **đường (a) lane A §2.5** (mở phạm vi INBOUND nhận thư đại-trà — hợp thức hoá 22 dòng đang sống; đường (b) sổ-mới+gỡ-22-dòng đắt và dễ đẻ 2-chỗ-ghi). **Cần anh gật 1 dòng (P6)** vì là sửa luật lane; hỏi NGAY đầu wave.
2.**24 dòng "đã nhận"** vào `broadcasts/_index.md` (không phải 4 — lỗ thật lane A đo 24/69, thư cũ nhất 25 ngày; 3 thư không-`to:` + 1 thư `all` xử riêng từng dòng, không gộp). Riêng 4 món gói này: kèm sha12 từ frontmatter (`43db2cf0`·`49287ce7`·`98e31fad`·`c24699f0`) + dấu ✓ từ `stamp_verify.py` ⇒ đóng luôn vế ghi-băm `G0-B2`.
3. **Bản đồ áp dụng 7 dòng**`docs/governance/adap-reports/upgrade-pack-phased-fitmap.md` — ô Quyết định ĐÚNG 1-trong-3 (Q2): GĐ-0 `áp dụng` · GĐ-1 `áp dụng` · GĐ-2 `áp dụng` (kết luận per-khoản hiện trạng: **chưa làm — 2/6 ô nghiệm thu**, khai mẫu số cấp-nấc) · GĐ-3 `áp dụng` (scope đã-đồng-ý: 8/10 khoản; C3-04 cổng-mã-lỗi → mục 8/10) · GĐ-4 `áp dụng` (scope: sổ 3 khối; chấm-điểm-wire → W4b gated) · GĐ-5 `áp dụng` (scope: phần thiếu; TC-03/TC-09 = `không áp dụng CÓ KHAI` per-khoản, control-âm 26/26 pin) · GĐ-6 `hoãn` (điều kiện gỡ: mọi GĐ `áp dụng` đạt *đã thi công*). Vật này chính là **vật tham chiếu** mà điều-kiện-vào GĐ-6 đang thiếu (lane D §6.1).
4. **Tệp theo dõi 20 khoản** A0-1..A16 (liệt TỪNG khoản, cấm viết `A0..A16` dạng khoảng — A12) → `docs/governance/adap-reports/upgrade-pack-phased-tracking.md`, mỗi khoản 1 dòng {trạng thái · nấc · con trỏ} — sống lâu hơn phiên, KHÔNG nằm trong run-folder.
5. **Adap-report tiếp nhận** (khuôn B 10 mục) — DRAFT trong phiên; mục 8 phản-biện gửi hub gồm: F-1 (4 thư `status: DRAFT`/`reviewer_gate: PENDING` ⟂ tuyên "bản nháp không phát") · GĐ-0-không-TC 2 đường · TC-10 = lỗ CHỮA duy nhất (lane E §4.4) · trường thứ 7 "đội hiểu thành gì" (lane C §C.4) · thang-mã-thoát cần điều-kiện-nơi-đọc (`hmw.js:288` dừng-câm) · xung-đột-3 A10 (tập-tín-hiệu đóng ⟂ SE mở có tiền-lệ owner S143). Chạy **7 dòng Tự-chấm-nhanh** trước khi trình. **GỬI = chờ anh duyệt** (outward).
- **Acceptance (lệnh):** `grep -c "upgrade-pack-phased" broadcasts/_index.md` ≥ 4 · phép đối-chiếu-ngược inbox↔sổ (lane A §2.1 phép-2) in danh-sách-vắng = **0** (hôm nay 24) · `grep -c '^| GĐ-' docs/governance/adap-reports/upgrade-pack-phased-fitmap.md` = **7** (chạy trên tệp bản-đồ, KHÔNG trên khuôn — bẫy 14) · `grep -c '^| A' …tracking.md` = **20** · `python scripts/stamp_verify.py broadcasts/inbox/ai_infra/2026-08-04-*.md` exit 0.
- **Lớp restart:** **A** (toàn docs/sổ — 0 restart).
- **Rủi ro + rollback:** bù dòng TRƯỚC khi sửa luật `:7` = thêm 4 vi phạm vào 22 ⇒ thứ tự CỨNG 1→2. Fit-map trộn giá trị = tái phạm F-03 ⇒ khuôn Q2. Docs-only ⇒ rollback = `git revert` 1 commit.
- **Khối lượng:** GĐ-0 = 18 khoản (mẫu số lane A: 7 bước + 3 lệnh kiểm + 4 Phần-C + 4 ô nghiệm thu), hiện thiếu 9 + 3 sai khuôn; +1 rider SE (backfill 20 thư ngoài gói — đếm RIÊNG, không cộng vào mẫu hub). Ước < 1 phiên.
---
## W1 — GĐ-1: Nền chuẩn đặt tên (chốt mở khoá — không khai miễn được)
- **GĐ:** 1. **Điều-kiện-vào:** W0 *đã thi công* (fit-map + tracking tồn tại). Đường `không áp dụng` ĐÃ ĐÓNG bằng đo: `vocab-alias-map.md` **bảng dịch**, trượt cả 3 phép thử tiên-đoán/phủ-sóng/hướng (lane A §3.3); `docs/rules.md` chỉ phủ tầng nguồn, 4/4 hit naming code (lane A §8.1).
- **TC chữa:** **TC-11** (≥3 ca thật: `sub-ctx-audit-*` lọt C11(b) S153 · `_tiep-1.md` sha 7-ký-tự · "17/17" hardcode stale).
- **Deliverable:**
1. 🔴 **Kiểm kê máy-đọc-tên TRƯỚC, ký chuẩn SAU** (đảo bước 2 giao-thức di-trú hub làm-KHÁC KHAI mục 6; lane A §6: 11 đoạn máy đọc tên, 3 đoạn suy vai bằng regex tham lam; đo nốt 5 kịch bản còn nợ lane A §7.1).
2. **Văn bản chuẩn DUY NHẤT** `docs/governance/naming-standard.md`: phủ **6 nhóm tên** (vai · nhãn lớp kiểm · thư mục run · tệp mốc phiên · nhãn tác vụ · tên sổ) + luật lane đơn-trị + luật giữ-nguyên-tên-cũ (frozen-set 5 vùng kế thừa alias-map) + di trú 6 bước; dòng đầu khai "bổ sung tầng bộ-máy, KHÔNG thay `docs/rules.md`" (chống 2-chỗ-tìm).
3. **Sổ đổi tên máy-đọc** (append-only, cột **"đã quét những đâu" = lệnh + số hit thật**) `docs/governance/rename-ledger.md`.
4. **Máy soi tên** báo-cáo-thôi, in **mẫu số** (N nhóm / M họ đang sống) script mới `scripts/naming-scan.ps1`, chạy tay + gọi từ bookend (wiring 1 dòng vào `session-end.md` **DỜI sang gói-C W3** để gom restart).
5. con số trôi `hmw.js` vùng `:36-40` *"11 class"* câu trỏ khoá `lead_self_audit.flag_classes` (B1, lane A §8.2 thật 12 = 6 view + 6 gap).
- **Acceptance:** `grep -c '^## ' docs/governance/naming-standard.md` 6 (6 nhóm, mỗi nhóm 1 mục) · `scripts/naming-scan.ps1` in dòng `mẫu số: … nhóm / … họ` + **fault-inject**: cấy 1 tên lệch chuẩn vào cây tạm `-RepoRoot` FLAG; gỡ sạch · `grep -n "11 class" .claude/workflows/hmw.js` = **0** (control trước-vá = 1) · rename-ledger cột "đã quét" với 1 dòng lệnh+hit thật.
- **Lớp restart:** **A** (docs + script mới + `hmw.js`; hmw.js đọc-mỗi-spawn). Không đụng persona/commands.
- **Rủi ro + rollback:** chuẩn trước kiểm chuẩn không áp được không vỡ máy (lane A cảnh báo) thứ tự CỨNG 12. Máy soi INFORM-only 0 blast; rollback = revert docs + xoá script. **Vai giữ-chuẩn (G1-B2) = VƯỢT-KHUNG (d) → P4, KHÔNG nằm trong W1** W1 đạt *đã thi công* không cần vai (chuẩn + sổ + máy đủ nghiệm thu; vai tầng vận-hành về sau).
- **Khối lượng:** GĐ-1 = 24 khoản (mẫu số lane A §3); scope W1 = 22/24 (trừ G1-B2 vai Q4 · G1-B7 siết-cổng W3b). Ước 1 phiên.
---
## W2 — GĐ-2: Lưới ghi đĩa + sổ mục lục vật chứng (đo NGHĨA, không chỉ đo TỒN TẠI)
- **GĐ:** 2. **Điều-kiện-vào:** W1 *đã thi công* (tên artifact chuẩn hoá TRƯỚC khi viết máy soi tránh máy mới ăn tên ).
- **TC chữa:** **TC-04** (nặng nhất 10 vai #53/phiên S180; 3 run-folder không `run.md` tên) + **TC-05** (máy 4-vị-từ cho vai điểm danh). **Rider SE-repair:** TC-08 (H24-2) + TC-06 (jump fed-but-unread) khai vá-máy-SE đi kèm wave, KHÔNG phải khoản hub GĐ-2 (2 mẫu số TÁCH).
- **Deliverable:**
1. **Máy điểm danh 4 vị-từ** trên run-folder (vắng · rỗng · **CỤT** · **NÉN-QUÁ-TAY**) cơ-khí-hoá AS-17/AS-19 từ nghi-thức thành máy. Vị-từ CỤT/skeleton dùng **nhãn-treo-vào-heading** (lane B, 0 dương-giả): `grep -cE '^#{1,6} .*\[(ĐANG ĐO|CHỜ|TODO)'` + tỉ lệ dòng-thật/heading (lane E §8.3a guard byte với skeleton). NÉN: so tự cùng đơn-vị nguồnđích; **không có nguồn cùng đơn-vị ⇒ in `KHÔNG ĐO ĐƯỢC`** đúng luật hub (lane E §2a).
2. **Mục-lục-sống `runs/`** 2 tầng trỏ-không-chép (`_ledger.md` RETIRED khai nhưng 73/88 folder không dòng vế-phải của điểm-danh-2-nguồn đang RỖNG) + **điểm danh 2 nguồn** đĩa mục-lục, in CHÊNH từng tên. 🔴 Nguồn-2 KHÔNG được `run-chua-gom` ( đọc thẳng đĩa = chính nguồn-1 lane B); nguồn-2 = **taskList snapshot trong `run.md` ghi TRƯỚC launch**. Tên tệp trung gian mang định-danh lane (lane E §9 va chạm tệp tạm ĐÃ xảy ra thật giữa 2 lane phiên này).
3. **Khuôn-tối-thiểu tệp nguyên văn** thành văn (tiêu đề + model tự khai + input ghim + kết luận + END-line) + khoản **GĐ-2(v) "khai điểm mù"** (F-06): map tương-đương = closeout-sentinel (cửa-sau) + bookend @open (lượt soi đầu-phiên-sau); ghi NỢ đo được: `lead-stale-auditor.md` 0 hit `run-folder|runs/` (control `FLAG`=4) persona DỜI sang gói-B W3.
4. **Rider 1 — vá H24-2 `governance-detectors.ps1:892-897`**: segment đầu từ index 0 (hoặc nới regex nhận `^#{2,3}`) vùng hôm nay L1-171 = 25/54 carry-key (46%), gồm chính `tools-whitelist-no-teeth`; máy đang in `[ok]` trên vùng chưa đọc. + bắt detector **in phạm-vi-thật vừa quét** phân biệt `0 mẫu` `0 lệch` (lane F §10.2).
5. **Rider 2 — vá `jump_on_class_repeat` fed-but-unread**: thêm vế thứ 3 vào `nhip-no-probe.ps1` (đọc `.session-counter.json → class_repeat.counts`, so ngưỡng 3, in `OVERDUE:jump` + liệt TỪNG class A12). **Chạy INFORM ≥1 phiên trước mọi gate** (lane F §8-bis); khuyến nghị bật kèm **freeze-baseline** (chỉ kêu class TĂNG sau mốc) nợ tồn 8-12 class sẽ kêu cả nắm khai trong output lượt đầu.
6. **Rider 3 — `secrets_sweep` phủ `runs/`**: `session_ctx.py:173/180/787` chỉ rglob `sessions/`, còn `runs/` nằm trong khối `- excluded:` của detector vùng vật chứng ĐẮT nhất đang ngoài 2 lưới cùng lúc (lane B). Mở rộng sweep hoặc khai lý-do-miễn visible.
7. **Rider 4 — 3 neo B1 chết trong `docs/STATUS.md`** (lệch +2 cả 3, N-3 born-dead tại `57e672f`): 3 neo + đổi HÌNH THỨC neo B1 sang chuỗi-tìm-được/tên-row (lane E §1.1: thuốc LỚP-5 đang xây bằng bệnh LỚP-6 số suông sẽ chết lại).
- **Acceptance:** vị-từ CỤT chạy trên 3 file chuẩn lane B 6/0/0, 0 dương-giả · điểm-danh in `chênh: 0`; **control-dương**: giấu 1 `*-synthesis.md` chênh 1, trả lại 0 (lane B đã chạy mẫu) · run-folder thiếu `run.md` = 0 hoặc liệt từng tên (hôm nay 3: `S117-pe-approve-minmax` · `S117-pe-luyke-finalize` · `S144-bootstrap`) · H24-2: cấy slug giả vùng L1-171 cây tạm detector KÊU, gỡ IM · jump: hạ class < 3 IM, nâng 3 KÊU (2 chiều bắt buộc) · secrets: cấy chuỗi giả-secret vào `runs/` cây tạm sweep bắt · 3 neo STATUS resolve bằng re-scan · **6 ô nghiệm thu GĐ-2 hub: 2/6 → 6/6** (chạy từng ô theo lệnh hub).
- **Lớp restart:** **A** (scripts + python + docs ăn ngay).
- **Rủi ro + rollback:** `nhip-no-probe` gọi từ **6 cửa**, `governance-detectors` máy `/session-end` bề mặt nổ rộng nhất repo **Q5 fault-inject cây tạm TRƯỚC land, backup `git checkout` 1 lệnh**; mọi máy mới INFORM-only (doctrine exit-0 giữ nguyên tới khi anh phán P1). Secrets mở rộng thể FLAG hồi tố hàng loạt chạy INFORM 1 phiên trước khi tính severity.
- **Khối lượng:** mẫu số hub = **6 ô nghiệm thu GĐ-2** (hiện 2/6 mẫu số cấp-nấc, 42%/69-75% 2 mẫu số khác đã khai) + **4 rider SE** (đếm riêng). Ước 1-2 phiên (fault-inject chiếm phần lớn).
---
## W3 — GĐ-3 phần áp: nghi thức 2 đầu + tiền kiểm + 4 nhãn (KHÔNG đụng exit-mode)
- **GĐ:** 3 (scope đã-đồng-ý: **8/10 khoản** C3-04 cổng-mã-lỗi W3b gated · C3-08 trần-chi-phí = `KHÔNG ĐO ĐƯỢC`, adopt dạng hướng-dẫn + nghĩa-vụ-khai). **Điều-kiện-vào:** W2 *đã thi công*.
- **TC chữa:** **TC-06 · TC-07 · TC-08**. 🔴 TC-10: W3 chỉ **KHAI BÁO trần** theo chữ hub **không phải thuốc**; TC-10 giữ nguyên **lỗ CHỮA duy nhất** (lane E §4.4), đã nêu ngược hub W0 mục 8. CẤM claim W3 "chữa TC-10".
- **Deliverable:**
1. **4 nhãn lệch nghi-thức** thành văn (quên · tự-ý-bỏ · suy-giảm-hợp-lệ · bị-chặn) + vị-từ đĩa TỪNG nhãn (bảng lane C §E.1) `docs/governance/ritual-labels.md`. Khai thẳng: nhãn-Ý-ĐỊNH AS-signature 20 (nhãn hành-động) dựng mới, không đổi tên ; vế "đánh-giá-lại-điều-kiện" của *tự-ý-bỏ* chưa máy khai.
2. **Vòng hỏi ngược** khuôn 5 cột + luật đóng-khi-0-dòng-trống (hội tụ độc lập bảng-disposition-S119) dùng bởi cặp auditor 2 đầu ĐANG , **không đẻ vai mới** (lane C §E.1).
3. **Bảng 19 cửa × tiền-kiểm TỪNG DÒNG** (hiện 4 chắc-có / 12 chắc-không / 3 đo nốt: `check-email`·`snapshot`·`sleep-recovery`) + thêm tiền-kiểm khuôn fail-soft nhip-no vào tối thiểu **nhóm `adap-*`** (ca LỚP-2 sống: `/adap-apply` chính cửa áp gói này 0 tiền kiểm) + cổng ép-seed cho `/snapshot` (nợ mới lane F §3.3) sửa `commands/*.md` = **lớp C**.
4. **Luật tự-trị 3 bậc** thành văn **MỘT bản NGUỒN** tại `.claude/governance/ACTIVE-MARKS.md` (khối mới, mang RC-mark anh cần **P5** gật nội dung); ST-002 của sổ W4 sẽ **TRỎ** về đây (chống nguồn-đôi C3-07 ST-002 lane C §F.2 lỗ-1). ACTIVE-MARKS hiện uỷ-quyền-per-quyết-định, KHÔNG phải luật 3 bậc (lane C §F.1 đo 0-hit, control 19).
5. **Gói-B persona** (gom 1 lần restart): `lead-stale-auditor.md` 4 tầng lỗi ( dụ stale 54113 · neo chết `STATUS:19` · tiền-đề "60 menu key" 0-hit · enum "5 class"→12=6+6) + thêm nhiệm-vụ soi `runs/` (nợ W2.3 GĐ-2(v)) · `ring2-audit.md:4` "5 class view"→6 ( CẢ 2 persona lane E §1.4: kể-công-thức-5+6+1 Goodhart rời-tập-đo) · ràng C3-02 "vai kiểm CẤM phán đặc tả; đặc tả chỏi cờ xung đột trả điều phối" thành văn · wiring `naming-scan.ps1` vào `session-end.md` (dời từ W1).
6. **C3-09 guard-vắng-tệp**: khai TƯƠNG-ĐƯƠNG với 3 neo máy sẵn (`distill-shard-probe.ps1:23` · `mfe-eval.ps1:45` · `memory-archive-gate.ps1:40-41`).
- **Acceptance:** `ritual-labels.md` đủ 4 nhãn, mỗi nhãn kèm 1 vị-từ-lệnh chạy được · bảng 19 cửa đủ 19 dòng từng-tên (3 cửa treo đã đo nốt) · **sau RESTART**: `/adap-apply` (dry) in dòng probe fail-soft (lớp C verify) · **sau RESTART**: spawn probe `lead-stale-auditor` trả 1 dòng chứa "12 class = 6 view + 6 gap" (lớp B verify phép đo chỉ-xanh-sau-restart) · ACTIVE-MARKS khối 3-bậc mang RC-mark (sau P5) · khuôn 5-cột grep được + luật đóng.
- **Lớp restart:** **A + B + C** trình tự Q4 (A B RESTART verify B C RESTART verify C).
- **Rủi ro + rollback:** sửa commands sai 1 cửa = hỏng cửa đó khuôn fail-soft y nguyên nhip-no (`probe-loi (khong chan)`), thêm dần từ nhóm `adap-*`; persona đo TRƯỚC restart sẽ tưởng-hỏng chỉ đo sau restart; P5 chưa gật khoản 4 treo KHAI (mục 10), wave vẫn đóng 7 khoản còn lại. Rollback: revert per-file.
- **Khối lượng:** mẫu số = **10 khoản GĐ-3** (lane C §F: 3 · 3 nửa · 3 thiếu · 1 ngược); scope W3 = 8/10. Ước 1 phiên + 1 restart-verify.
## W3b — GĐ-3 phần NGƯỢC: cổng chặn mã lỗi (GATED — xung đột 1, anh phán P1)
- **GĐ:** 3 (khoản C3-04 + thang 4-trạng-thái E.3). **Điều-kiện-vào:** anh chọn **PA-1/2/3/4** (P1) **+ rider-jump W2 đã soak INFORM 1 phiên** (lane F §8-bis: bật gate trước soak = chặn ngay nợ tồn 8-12 class).
- **TC chữa:** TC-06 (răng thật cho nghi-thức) + TC-08.
- **Deliverable:** theo PA anh chọn thang 4 trạng thái (trọn · thiếu-có-tên · không-xác-định · đặc-tả-xung-đột) đặt **mã thoát** (PA-1/2/4) hay **dòng in** (PA-3). 🔴 KHÔNG thi công TRƯỚC khi chốt (lane C §E.3: hình dạng đổi theo PA làm trước làm lại). Sự-thật để cân (đã đo, khỏi đo lại): ranh sẵn `memory-archive-gate.ps1:323-325` *(sắp-GHI hoặc nhị-phân ⇒ chặn · phán-xét ⇒ cờ)*, khớp 5/5 máy fail-loud; hiện trạng **5 fail-loud + 9 advisory + 3 biên** + `hmw.js` 4 throw / 2 cố-ý-không-throw (dừng-câm `hmw.js:288`); hôm nay `TOTAL FLAGS: 49 + INFORM 21` lật detectors thô = 49 cờ chặn tức thì.
- **Acceptance:** giả-lập thiếu 1 tệp mốc cổng trả 0 (nghiệm thu hub `phu-luc:223`) · dry-run `-WhatIf` in "nếu chặn thì cờ nào" chạy 1 phiên TRƯỚC khi lật · INFORM-count không bị nuốt vào tập-chặn (đếm 2 dòng TOTAL INFORM giữ nguyên).
- **Lớp restart:** A (script) nhưng máy `/session-end` đang sống Q5 fault-inject.
- **Rủi ro + rollback:** biến `$FailOnFlags` mặc định `$false` + env-override; hạ-số-cờ-không-kèm-commit-sửa-bệnh = phải khai (Goodhart lane F §4.1); nếu PA-3 báo hub "làm KHÁC" mục 6 kèm bằng chứng `hmw.js:288`.
- **Khối lượng:** PA-2 = phân loại lại **70 cờ** (49+21) nặng nhất; PA-1/PA-4 ~1 phiên; PA-3 ~nửa phiên.
---
## W4 — GĐ-4: Sổ 3 khối (GATED entry — anh phán P2 trước, rồi máy chạy)
- **GĐ:** 4 (scope: **9/12 khoản** C4-10 chấm-điểm · C4-08 vai · C4-09 thu-hẹp-vai W4b). **Điều-kiện-vào:** W3 *đã thi công* (OD-2 KHÔNG dùng quyền kéo-sớm hub cho `thu-chinh:197` cho phép; C3-04 hoãn-có-khai không chặn lane C §F.2 vế-đúng) **+ anh đã chọn PB-1/2/3 (P2)** lane C §B.6: 3 phương án 3 cấu trúc tệp khác nhau, thi công trước = làm lại từ đầu.
- **TC chữa:** **TC-01** (sổ đếm-lần-nhắc = dụng cụ TC-01 đang thiếu) · **TC-02** (dựng THUỐC ô nghiệm thu hub GIỮ CHỮ *chưa có dụng cụ*, không điền số) · **TC-12** (nền: sổ = nguồn đếm đã `luat:140`).
- **Deliverable:**
1. **Sổ 3 khối** (hình dạng lane C §D, cấu trúc cột theo PB): khối *việc-được-giao* 6 trường hub + 🔴 **trường thứ 7 "đội hiểu thành gì"** (SE mạnh hơn hub ca `HANDOFF:17`; gửi ngược hub) · khối *sở-thích* với 2 mục mồi: **ST-001** lằn-ranh-đỏ **LIỆT KÊ 7 loại, cấm tính từ** (A6: đổi lược-đồ-dữ-liệu · xoá dữ liệu · hướng-ra-ngoài · không-lùi-được · dính tiền · đổi cơ-chế-governance · đổi số-nhịp/ngân-sách) + **ST-002** tự-trị-khi-vắng = **TRỎ** về luật 3-bậc NGUỒN tại ACTIVE-MARKS (W3.4 cấm chép) · khối *lời-phàn-nàn* (hôm nay TRỐNG TUYỆT ĐỐI 0-hit, control "điểm dừng"=5 tệp).
2. **Mã vĩnh viễn** `YC-/ST-/PN-<số tăng>` cấm tái dụng; đóng = lật trạng thái, không xoá dòng (C4-02 SE đang NGƯỢC: `HANDOFF:10-17` đánh số 1..7 tái dụng mỗi phiên, đã trả giá hỏi-lại-3-lượt).
3. 🔴 **Chống bẫy A1** (F-04 + lane C §C.5): cột nguyên-văn CHỈ nhận chữ anh **từ thời điểm dựng sổ**; dữ liệu WAL/HANDOFF/auto-memory/migration-todos **PHỤ LỤC riêng** nhãn *"suy ra, không phải nguyên văn"* (61 tiêu đề auto-memory nhãn-đội đổ vào = 61 mục trượt đối chiếu). Ngoại lệ DUY NHẤT nhập bảng `HANDOFF:10-17`: **chỉ khi P2 gật vế đó** (VK-5).
4. **Kỷ luật ghi-NGAY + tra-sổ-trước-khi-hỏi** cắm vào **CLAUDE.md** (+ `docs/rules.md` = chỗ thứ 2 theo A3; **CẤM cắm vào commands** hub A2/`phu-luc:252`) + **định nghĩa A5** thành văn (*hỏi lại không viện dẫn thông tin mới = vi phạm; kèm nguồn mới = kỷ luật đúng*) lớp **C**, RESTART.
5. **Máy dò 2-số** nối 2 vế dữ liệu (*đang-treo* + *nhắc-từ-lần-2*) từ sổ vào `nhip-no-probe.ps1` (khung C4-06 ĐÃ khớp hub từng chi tiết: read-only · exit-0 · CONFIG-THIEU không default); phân biệt **chưa-có-dữ-liệu ⟂ đo-và-bằng-0** in 2 chuỗi khác nhau.
6. **Sổ vào `tiep_reload.sources`** (memory-budget.json) không thì `/tiep` không thấy = sổ chết (A3; lane F §4.3a) + **trần ký tự cột nguyên-văn** = khoá config mới (C4-01).
- **Acceptance:** `grep -c '^ST-' <sổ>` 2 (nghiệm thu hub mục mồi) · mọi YC/ST/PN mang ts ngày dựng sổ; mục chỉ phụ lục · máy fault-inject 2 chiều: sổ-rỗng in `chưa-có-dữ-liệu`, sổ-toàn-mục-đóng in `0` (2 chuỗi PHÂN BIỆT) · **A10 phép thử chạy NGAY**: đẩy 1 class lạ vào `h24-signal-write.ps1` exit 2 *"a monitor may NOT invent a class"* (ô xanh thật đầu tiên của GĐ-4 lane C §G) · **sau RESTART** (lớp C verify): lượt mới nhắc lại đúng chi-tiết luật tra-sổ chỉ-biết-nếu-đã-nạp (khuôn ctx-verifier).
- **Lớp restart:** **A + C** (sổ/config/máy = A · CLAUDE.md + rules.md = C) trình tự Q4.
- **Rủi ro + rollback:** nguồn-đôi = rủi ro số 1 (lane F §4.3) rào bằng **ranh LOẠI-NỘI-DUNG**: 3 khối thứ WAL KHÔNG (4/7 hàng trống thật đo lane C §B.3); cột trạng-thái theo đúng PB anh chọn; CLAUDE.md bề mặt đắt nhất (mọi lượt nạp) diff tối thiểu, đo byte trước/sau. Rollback: sổ = file mới (xoá sạch) + revert CLAUDE.md; giữ WAL nguyên trạng mọi nhánh.
- **Khối lượng:** mẫu số = **12 khoản GĐ-4** (lane C §G: 2 · 3 nửa · 5 thiếu · 1 ngược · 1 chưa-đo); scope W4 = 9/12 + đo nốt C4-09 (`grep -rln "yêu cầu của anh|lời anh|owner-request" .claude/agents/*.md` + control). Ước 1 phiên sau khi P2 .
## W4b — GĐ-4 phần chấm điểm + vai (GATED — P4 + P8, sau W4)
- **GĐ:** 4 (C4-10 · C4-08 · C4-09 + A9). **Điều-kiện-vào:** W4 *đã thi công* (sổ = nguồn đếm ĐÃ , `luat:140` không được bằng đổi nguồn đếm, F-08/lane C §H.1) + anh phán **P4** (vai tầng-2/3, roster) + **P8** (wire khối chấm 2 cửa) (+ **P3** định đoạt đường-ghi-lại A10).
- **TC chữa:** **TC-12** (SE nặng hơn hub: điểm CHƯA TỪNG được sinh 0-hit "chấm điểm", control 5 tệp) + **TC-01** + khoản **A9** (3 mốc niêm phong Phần-C chưa-ai-chạm).
- **Deliverable:** công thức `max(0, 10 số MỤC lặp ≥2)` + 3 cách đọc bắt buộc (`luat:53-55`) · 4 tầng với ranh CỨNG (tầng-2 KHÔNG xem điểm tầng-1; tầng-3 kiểm PHÉP ĐẾM, **CẤM đề xuất điểm khác**; tầng-4 = anh) · 3 mốc `emit_ts/redisplay_ts/first_owner_msg_ts` thiếu mốc-3 in *chờ niêm phong*, KHÔNG đẩy hàng-chờ-anh · khối in **2 cửa phiên** (P8) · **đường ghi lại khi chấm sai** thành văn (tầng-nào-sai + nhãn *chấm sai* sống `error-ledger`, CẤM nhét `flag_classes` trừ khi anh mở tập ăn khớp P3) · dòng tổng kết đủ {điểm cuối · 3 giá trị tầng · trạng thái niêm phong · liệt TỪNG mục kèm , rỗng ghi "danh sách rỗng"} · phạm vi BẤT BIẾN = **5 khoản theo `luat:140`** (công thức · nguồn đếm · 4 tầng · 3 mốc · đường ghi lại) KHÔNG theo câu tóm `:23`.
- **Acceptance:** 🔴 **lượt đầu khối chấm PHẢI in `KHÔNG ĐO ĐƯỢC`** số phủ sóng chưa tồn tại, `luat:66` CẤM in điểm; in một con số 10/10 = vi phạm ngay luật vừa adopt (lane C §H.3). Đây đồng thời phép-đo-chỉ-xanh-SAU-restart của lớp C. · Ca lặp 5 lần cùng mục trừ đúng **1** (`luat:120`) · đẩy nhãn *chấm sai* vào máy cảnh báo **bị từ chối** (exit 2) · giữ chấm điểm **INFORM-only ≥3 phiên** trước khi ảnh hưởng bất kỳ gate nào (lane F §4.2).
- **Lớp restart:** **B** (vai mới không sống tới RESTART; acceptance spawn xếp SAU restart) + **C** (session-start/end.md) trình tự Q4.
- **Rủi ro + rollback:** nguồn thưa điểm luôn tuyệt đối = máy chết (hub tự đo `luat:65`) ô `KHÔNG ĐO ĐƯỢC` chốt an toàn; **số học roster**: 26 file agents `hmw_width.cap=20` LOUD-skip +2 vai = +2 lane rớt full-sweep, `measured{}` mới 17/25 baseline vai mới PHẢI seed baseline kẻo thành 10 vai (lane F §4.4). Rollback: gỡ khối in 2 cửa + vai file .md xoá được; điểm chưa từng ảnh hưởng gate trong 3 phiên đầu.
- **Khối lượng:** mẫu số = **8 ô nghiệm thu luật chấm điểm** (`luat:120-127`); hiện 2/8 chạm được ngay (ô-2 hai-hệ-đo-tách · ô-7 phép-thử-từ-chối). Ước 1 phiên + 3 phiên soak.
---
## W5 — GĐ-5 phần tự-chạy: vá máy soát + luật GĐ-5 còn thiếu
- **GĐ:** 5. **Điều-kiện-vào:** W4 *đã thi công* (OD-2). Điều kiện hub gốc (GĐ-1 + GĐ-2 *đã thi công* + hạn mức) tự thoả từ W1/W2; hạn mức đo được (168 bản ghi `claude-fable-5` phiên này) KHÔNG rơi nhánh `không áp dụng`.
- **TC chữa:** **TC-09** ( máy soát chỗ-ngồi SE không mắc BỆNH nhưng MÁY lỗ: phủ phiên-Task-path = 0/17 in `TOTAL FLAGS: 0`) + **TC-04** (luật lượt-mới/khai-thiếu) + **TC-03** (GIỮ CHỮ ô hub *chưa đủ mẫu*; per-khoản = `không áp dụng CÓ KHAI`, control-âm 26/26 pin).
- **Deliverable:**
1. 🔴 **Vá `spawn-model-audit.ps1`** (lead-verify CONFIRMED MAJOR; 4 vế lane D §1): (a) chọn phiên KHÔNG lọc theo hình-dạng-thư-mục; (b) quét **CẢ HAI** đường `subagents/*.jsonl` (phẳng Task) + `subagents/workflows/**/agent-*.jsonl` (Workflow); (c) phiên chọn mới nhất in dòng KHAI chênh lệch, sửa nhãn vô-điều-kiện `:262`; (d) in mẫu số `n lane đo / m lane tồn tại`. 🔴 Chiều ĐÚNG: máy **THẤY Workflow, MÙ Task/flat** errata E-5: lead từng viết NGƯỢC chiều trong prompt; theo chiều viết-ngược = đúng phía đang chạy tốt. Không đập cả máy: khối A 2-key + khối C/D 26/26 + khối E tự-khai ĐANG ĐÚNG (lane D §1 khai công bằng).
2. **D-3**: `hmw.js` `resolveModel` đang trả `undefined` cả 2 nhánh = đúng nghĩa "để mặc định" làm tường minh tham số model tại chỗ-gọi (đọc từ 1 nguồn, cấm undefined-im-lặng).
3. **D-10** luật thành văn *"tổng hợp = MỘT LƯỢT GỌI MỚI, không nối lại lượt cũ"* + vẽ ranh với resume-#53 (recovery vật chứng tổng hợp N2 F-09; counter-datum §1-ter lane D: resume S180 KHÔNG rớt model, n=1, ghi nhận chứ không chép lo-ngại hub thành lo-ngại mình).
4. **D-12** luật tổng: mảnh ngữ-cảnh nào chưa khai `(THIẾU — lý do)` cho CẢ GÓI 5 mảnh (hiện chỉ phủ 1 mảnh `pause.md:53`).
5. Mục 6 khuôn B khai **làm-KHÁC/mạnh-hơn**: cửa-duyệt-spec ĐẦU thay giữa (D-8) · VALID_ROLES STOP-HARD mạnh hơn sàn (D-18) · TC-03/TC-09 `không áp dụng CÓ KHAI` 🔴 CẤM viết *"đã được kiểm chứng"* (nấc chỉ hub cấp).
- **Acceptance:** chạy máy đã trên phiên S180 (chỉ lane phẳng) **PHẢI thấy 17/17 lane** + in mẫu số (phản-chứng bắt buộc lane D: *"phiên chỉ có lane phẳng thì máy PHẢI thấy lane, không được rơi về phiên cũ"*) · control chiều kia: phiên `workflows/` vẫn đọc như · giả-lập phiên-chọn-cũ dòng khai xuất hiện · `resolveModel` hết nhánh undefined-im-lặng (grep + spawn 1 lane probe) · luật D-10/D-12 grep thấy trong doc governance.
- **Lớp restart:** **A** (script + `hmw.js` + docs).
- **Rủi ro + rollback:** `spawn-model-audit` gọi từ 2 cửa (`fable-clone` + `session-start`) Q5 fault-inject cây tạm trước land; `hmw.js` engine fan-out sống diff tối thiểu + spawn probe 1 lane sau sửa; rollback `git checkout` 2 file.
- **Khối lượng:** mẫu số = **20 khoản GĐ-5** (lane D §2, hôm nay 13,0/20 nới · 9/20 nghiêm 3 mẫu số hub hội tụ 60-67%); W5 nâng D-3/10/12 + rider vá-máy (đếm riêng); phần D-4/5/11/14/15/16/17 W5b. Ước 1 phiên.
## W5b — GĐ-5 phần GATED (P7): sổ-khung-nhìn lượt đắt + truyền-nguyên-văn lane dispatch
- **GĐ:** 5. **Điều-kiện-vào:** W5 *đã thi công* + anh phán **P7** (2 vế cả hai lane D xếp VƯỢT-KHUNG §7.17.2).
- **TC chữa:** **TC-04** (D-14/15/16/17 sổ lượt-đắt 5 cột · dòng-sống-kể-cả-chết-giữa-chừng · thiếu-tệp-lượt-đắt = severity CAO NHẤT) + **TC-03** (D-4/5/11 mảnh *lời chủ nguyên văn* lane dispatch).
- **Deliverable:** (i) **sổ-khung-nhìn lượt đắt = DERIVE-VIEW** (không phải sổ chép tay lane D §4a: dữ liệu ĐÃ nằm sẵn `runs/` + dấu `[engine:` trong 8 tệp agent-memory + WAL): 5 cột {thời điểm · loại · đề bài · con trỏ vật chứng · kết luận}, regenerate-only, đề xuất đặt `docs/governance/expensive-runs-view.md` (VIEW đúng sàn-3 anh chốt vị trí trong P7); vế-6: nối *thiếu-tệp-ở-lượt-đắt = mức nghiêm trọng CAO NHẤT* vào máy điểm danh W2. (ii) **luật truyền-nguyên-văn lane DISPATCH**: rào `> anh:` + đi-nguyên-khối + khai-thiếu mở rộng từ `pause.md:53` (rào ĐÃ nhưng chỉ phủ lane LƯU TRỮ N1 từng khai sai chiều "chưa rào", lane D §4b sửa); ca sống tự-quy-chiếu: prompt lane D chứa 0 khối `> anh:`.
- **Acceptance:** lệnh sinh view chạy 2 lần cho kết quả y hệt (idempotent) + mọi con trỏ resolve · fault-inject: xoá 1 tệp trong run-folder lượt-đắt cây tạm điểm danh in severity CAO NHẤT · sau khi luật dispatch land: spec-file của wave KẾ TIẾP chứa 1 khối `> anh:` nguyên văn (đo trên vật thật).
- **Lớp restart:** **A** (+ đổi HÀNH VI dispatch của lead không phải restart file).
- **Rủi ro + rollback:** view đặt sai chỗ = nguồn-đôi với `runs/` header "DERIVED regenerate, đừng sửa tay"; truyền-nguyên-văn đổi cách anh ra lệnh (lời anh đi thẳng vào prompt vai đắt, lead không tóm) chính thế gated; CẤM tuyên "đã chứng minh" (hub tự khai vế này của họ đang *bỏ-qua-có-khai* `thu-chinh:62(iii)`).
- **Khối lượng:** 7/20 khoản GĐ-5 thuộc cụm này. Ước 1 phiên. Đích sau W5+W5b: ~18-19/20 (D-8 giữ `KHÁC có khai`).
---
## W6 — GĐ-6: Niêm phong đồng bộ + bảng gốc (mốc ký = ANH)
- **GĐ:** 6. **Điều-kiện-vào:** mọi trong phạm-vi `áp dụng` của **bản-đồ W0** đạt *đã thi công* nay ĐÁNH GIÁ ĐƯỢC nhờ W0 (lane D §6.1: trước W0 trạng thái đúng *chưa-đánh-giá-được, thiếu vật tham chiếu*). Phần gated anh chọn KHÔNG làm lật ô per-khoản thành `không áp dụng`/`hoãn` KHAI trong fit-map + mục 10, rồi GĐ-6 vẫn vào được (phạm-vi-áp-dụng phạm vi SAU quyết định của anh).
- **TC chữa:** **TC-09 (quét lại — chạy lại đúng máy ĐÃ VÁ ở W5)** + toàn **bảng gốc 12 TC** (hợp đồng nghiệm thu cả gói).
- **Deliverable** (mẫu số 17 khoản lane D §6.2 hôm nay 3/17, thấp bằng chứng TUÂN OD-2 chứ không phải chậm):
1. Cổng đồng bộ **4 tầng** chạy + dán kết quả (khớp / lệch-đã-khai từng tầng) · **trace xuôi** mảnhspecvật chứng · **trace ngược** = liệt TỪNG khoản phạm-vi-tự-phình · đối chiếu 3 chiều bệnhthuốcbằng-chứng · soi riêng khoản **áp-một-nửa**.
2. Cổng điểm danh: số-kỳ-vọng **SUY TỪ danh sách** (khuôn E-7 đã đạt 1 cổng nhân rộng) + quét số-cũ-viết-cứng + **mutation-test roster** (bỏ 1 tên cây tạm **2** bài kiểm đỏ E-9) + đo E-8 (bài kiểm ghim TÊN hay ghim SỐ: `grep -rn "VALID_ROLES|informRoles" .claude scripts tests` soi từng chỗ).
3. Luật **E-10/E-11 trọn-gói-1-commit** thành văn (vai mới vào cổng khi CÙNG commit đủ 4 vế) áp ngay cho vai P4 nếu anh đẻ; đối chứng tên 2 chiều + phản chứng (dựa chuẩn W1 E-12).
4. **Bảng gốc 12 TC** `docs/governance/adap-reports/upgrade-pack-phased-bang-goc.md`: mỗi ô {số · lệnh tái lập · ngày đo}; **4 ô hub GIỮ CHỮ** (TC-02 *chưa có dụng cụ* · TC-03 *chưa đủ mẫu* · TC-07 *chưa có dụng cụ* · TC-10 *KHÔNG ĐO ĐƯỢC*); TC-03/TC-09 phía SE = `không áp dụng CÓ KHAI`; TC-10 khai **lỗ CHỮA**; 🔴 CẤM chữ *"đã được kiểm chứng"* trong MỌI ô (nấc đó CHỈ hub cấp).
5. **Bảng A16 máy⟂tay 3 NẤC** đủ 21 script từng-tên (M1 = 1 hook `Stop`/`wal-flush` · M2 = 17 máy-qua-nghi-thức · M3 = 3 mồ côi; cột "fire tự động?" thang 2 nấc thang HỎNG, lane F §1.1) + quét rò-rỉ-đặc-thù-nội-bộ trên bản gửi hub, khai máy-hay-tay của chính phép quét.
6. Quét đồng bộ tài liệu **tick từng cái** (danh sách chốt trước) · **bản-nháp-dấu chờ-ký, ô RC-mark ĐỂ TRỐNG** (E-14 chế ĐÃ ĐỦ schema `RC-pqhuy1987-…` ACTIVE-MARKS; người thi công KHÔNG tự cấp dấu) · **báo cáo cuối** khuôn B 10 mục + chạy **7 dòng Tự-chấm-nhanh** anh duyệt gửi hub · nấc *đã được kiểm chứng* chỉ flip SAU hub soi (E-16).
- **Acceptance:** `grep -c '^| TC-' …bang-goc.md` = **12** · 4 ô chữ đúng nguyên văn tại đúng 4 dòng · mutation-test: bỏ 1 tên 2 kiểm đỏ, trả lại xanh · `grep -rc "đã được kiểm chứng" <artifact gói phía SE>` = **0** · bảng A16 đủ 21 dòng script · ô RC-mark rỗng cho tới khi anh điền · báo cáo cuối mục 6 (làm-khác) + mục 8 (phản biện: F-1 · GĐ-0-TC · TC-10 · trường-7 · nơi-đọc-mã-thoát · A10) + mục 10 (nợ mốc).
- **Lớp restart:** **A** (+ B nếu P4 vai mới vào trọn-gói).
- **Rủi ro + rollback:** tự flip nấc kiểm-chứng = vi phạm luật nấc (CẤM chỉ hub); niêm phong khi wave gated còn treo-không-khai chặn bằng fit-map per-khoản; mutation-test chạy trên CÂY TẠM, không đụng roster thật. Rollback: mọi thứ giữ DRAFT tới khi anh RC.
- **Khối lượng:** 17 khoản (3/17 đích 17/17 hoặc từng-khoản khai). Ước 1-2 phiên + vòng hub.
---
## §T — BẢNG TỔNG 7 WAVE (+3 sub gated)
| Wave | | TC () | Lớp A/B/C | Trạng thái | Deliverable 1 câu |
|---|---|---|---|---|---|
| **W0** | 0 | TC-06 *(tạm gán — ngoại lệ CÓ KHAI, trình hub 2 đường)* | A | **chạy-ngay** (nút P6 1 dòng đầu wave) | Sổ đã-nhận 24 dòng + fit-map 7 dòng + tracking 20 khoản + adap-report tiếp nhận (draft) |
| **W1** | 1 | TC-11 | A | **chạy-ngay** (sau W0) | Kiểm máy-đọc-tên chuẩn-tên duy nhất 6 nhóm + rename-ledger + naming-scan INFORM |
| **W2** | 2 | TC-04 · TC-05 *(+rider TC-08/TC-06)* | A | tự-chạy (phiên sau, sau W1) | Máy 4-vị-từ đo-NGHĨA + mục-lục-sống runs/ + điểm-danh-2-nguồn + 4 rider máy |
| **W3** | 3 | TC-06 · TC-07 · TC-08 *(TC-10 = chỉ khai-báo)* | A+B+C | tự-chạy (carve-out P5) | 4 nhãn + vòng-hỏi-ngược + bảng 19 cửa tiền-kiểm + gói-B persona + luật 3-bậc (P5) |
| **W3b** | 3 | TC-06 · TC-08 | A | 🔴 **chờ-anh P1** (+soak jump 1 phiên) | Cổng lỗi thang-4 theo PA anh chọn (PA-1/2/3/4) |
| **W4** | 4 | TC-01 · TC-02 · TC-12 | A+C | 🔴 **chờ-anh P2** (rồi máy chạy) | Sổ 3 khối + vĩnh viễn + chống-A1 + cắm 2 kỷ luật CLAUDE.md + máy 2-số |
| **W4b** | 4 | TC-12 · TC-01 (+A9) | B+C | 🔴 **chờ-anh P4+P8** (+P3) | Chấm điểm 4 tầng + 3 mốc + khối in 2 cửa lượt đầu PHẢI in `KHÔNG ĐO ĐƯỢC` |
| **W5** | 5 | TC-09 · TC-04 · TC-03 | A | tự-chạy (sau W4) | spawn-model-audit (2 đường + mẫu số) + resolveModel tường minh + luật D-10/D-12 |
| **W5b** | 5 | TC-04 · TC-03 | A | 🔴 **chờ-anh P7** | Sổ-khung-nhìn lượt đắt (derive-view) + truyền-nguyên-văn lane dispatch |
| **W6** | 6 | TC-09 quét lại + bảng gốc 12 TC | A(+B) | 🔴 **chờ-anh** (mốc RC) | Cổng 4 tầng + trace 2 chiều + mutation-test + bảng gốc + A16 3-nấc + báo cáo cuối |
**Bất biến đã kiểm:** 10/10 dòng đều trỏ 1 TC (W0 = ngoại lệ KHAI duy nhất, đúng luật cho phép) · thứ tự GĐ-06 tuần tự, 0 nhảy cóc, 0 ăn lẹm · 4 ô chữ hub không bị điền số bất kỳ wave nào · mọi khoản VƯỢT-KHUNG nằm trong sub-wave gated hoặc P-list, KHÔNG trộn vào wave tự-chạy · mọi wave mẫu số khai "đếm cái " · **mỗi wave qua gate reviewer riêng + 1 vòng vá mặc định** (hub tự khai 6/6 lượt chấm chéo KHÔNG ĐẠT lần đầu; SE cùng hướng: ring1 32Đ/6T).
## §P — CHỜ-ANH PHÁN (8 câu — khuyến nghị hỏi 1 LẦN ngay sau W0; hỏi ≠ thi công, không phạm OD-2)
| # | Câu hỏi | Phương án (KHÔNG tự chọn) | Mở khoá |
|---|---|---|---|
| **P1** | Xung đột 1: exit-0-advisory cổng-chặn-mã-lỗi | **PA-1** kéo-dài-ranh-có-sẵn · **PA-2** 2-mã-thoát-mỗi-máy (phân loại 70 cờ) · **PA-3** thang-ở-dòng-in (làm-KHÁC, khai hub) · **PA-4** cửa-sau-có-răng (tiền-kiểm cửa kế chặn) bảng cân lane C §A.6; ranh sẵn `memory-archive-gate.ps1:323-325` | W3b |
| **P2** | Xung đột 2: sổ = đường-ghi-chính (ĐÃ ) sàn-3 cấm nguồn-đôi xung đột THẬT chỉ 1 cột *trạng thái* | **PB-1** sổ giữ LỜI, trạng-thái = VIEW trỏ WAL · **PB-2** sổ = REQUEST WAL = TASK (cần anh SỬA luật ratify `tiep.md:181`+`pause.md:117`) · **PB-3** nâng cấp HANDOFF thành sổ (phá hợp-đồng lean) lane C §B.5. Kèm vế VK-5: cho nhập bảng `HANDOFF:10-17` làm ngoại lệ duy nhất? | W4 |
| **P3** | Xung đột 3 (ứng viên lane F §7): hub A10 *tập tín hiệu PHẢI TỪ CHỐI nhãn mới* SE slot(68) CỐ Ý MỞ (tiền lệ anh S143) | giữ-SE-mở + khai làm-KHÁC gửi hub · theo-hub-đóng (lớp mới chỉ sống error-ledger) | cách viết A10 trong fit-map/báo-cáo + đường-ghi-lại W4b |
| **P4** | Đẻ vai mới: giữ-chuẩn-tên (G1-B2) · đọc-sổ tầng-2 · gán/đẻ tầng-3 + thu-hẹp-vai-cũ | gật/không per-vai. Số học phải cân: roster 26 file `hmw_width.cap=20` LOUD-skip; 8 vai đang thiếu baseline `measured{}`; E-10 trọn-gói-1-commit | W4b (+phần vai W1/W6) |
| **P5** | Luật tự-trị 3 bậc (tự-vá · mơ-hồnhánh-an-toàn · hỏi khi mơ-hồ+phá-huỷ) gật NỘI DUNG + đích NGUỒN = ACTIVE-MARKS (ST-002 trỏ về) | gật nguyên văn / sửa lời / không adopt | khoản W3.4 + ST-002 của W4 |
| **P6** | `broadcasts/_index.md:7`: thư đại-trà ghi đâu? | **(a)** mở INBOUND `_index` (rẻ hợp thức hoá 22 dòng đang sống) · **(b)** sổ mới + gỡ 22 dòng | W0.2 ( 24 dòng) |
| **P7** | GĐ-5 hai khoản lane D xếp vượt-khung | (i) vị trí sổ-khung-nhìn lượt-đắt (đề xuất `docs/governance/expensive-runs-view.md`, derive-only) · (ii) truyền-nguyên-văn lane dispatch lời anh đi NGUYÊN KHỐI vào prompt vai đắt (đổi cách anh ra lệnh) | W5b |
| **P8** | Wire khối chấm điểm vào `session-start.md` + `session-end.md` (nghi thức 2 cửa vật anh chốt) + chấp nhận nhịp INFORM-only 3 phiên | gật / hoãn | W4b |
## §R — RỦI RO CAO NHẤT (xếp hạng)
1. **Nguồn-đôi sổ⟂WAL (W4)** rủi ro số 1 toàn gói (lane F §4.3). Rào: ranh LOẠI-NỘI-DUNG (3 khối WAL-không-có; 4/7 hàng trống thật đã đo) + P2 chốt TRƯỚC khi build + sổ vào `tiep_reload.sources` kẻo chết.
2. **Bề mặt nổ máy-đang-sống (W2/W3b/W5)** `nhip-no-probe` 6 cửa · `governance-detectors` = máy `/session-end` · `spawn-model-audit` 2 cửa. Rào: Q5 fault-inject cây tạm BẮT BUỘC + backup checkout-1-lệnh.
3. **Chấm điểm in SỐ ở lượt đầu (W4b)** vi phạm ngay luật vừa (`luat:66`); máy đọc nguồn thưa luôn cho 10/10 (hub đã đo). Rào: acceptance ép `KHÔNG ĐO ĐƯỢC` + INFORM 3 phiên.
4. **Restart-layer lẫn (mọi wave B/C)** đo trước restart tưởng-hỏng / tưởng-ăn. Rào: trình tự Q4 + mỗi wave B/C 1 phép đo CHỈ-XANH-SAU-restart, ghi sẵn trong acceptance.
5. **Jump bật không soak (W2→W3b)** 8-12 class nợ tồn kêu cùng lúc, người tưởng máy hỏng tắt. Rào: INFORM 1 phiên + freeze-baseline khuyến nghị + khai trong output lượt đầu.
6. **Goodhart sau khi có cổng (W3b)** áp lực giảm-số-cờ bằng đổi-hình-dạng-thứ-bị-đo. Rào: luật *"hạ cờ không kèm commit sửa bệnh = phải khai"* + không sinh tệp mốc để cổng = rời-tập-đo (đã ghi trong PA-1 trade-off).
## §L — WAVE BỊ LOẠI / NGOẠI LỆ CÓ KHAI / KHÔNG-MỞ-WAVE
- **Loại: 0 wave.** 10/10 dòng TC. (Nếu W0 không được phép dùng ngoại lệ thì theo luật hub phải LOẠI GĐ-0 enabling; đã trình hub cả 2 đường mục 8 adap-report.)
- **Ngoại lệ KHAI duy nhất:** W0/GĐ-0 N4 **chọn đường 2 của lane E** (tạm gán **TC-06**, ca sống A0-3 làm bằng chứng), đồng thời nêu đường 1 (hub thêm ngoại-lệ *enabling* vào luật) cho hub phán. KHÔNG dùng câu chữ *"điều kiện tồn tại của mọi TC"* vào ô TC.
- **KHÔNG mở wave cho (đã cân, do):** `tools-whitelist-no-teeth` (anh chốt GIỮ @S179 *"tha CA NÀY không tha cơ-chế"* + SE tự khai 7 persona = đúng vế-2 thuốc LỚP-9 lane E §1.6) · vòng-vá LỚP-3 (đã sống trong cấu trúc N1N5; thay bằng luật *1 vòng vá/wave mặc định* §T) · đề xuất N1 *"W5 ghép W2"* (BÁC vĩnh viễn F-01: vi phạm điều-kiện-vào GĐ-5 lẫn OD-2; không tái xuất dưới mọi dạng) · `session_ctx_kb` + `pull_warn_days` (KHÔNG phải ghost-wire đã đóng @S153 / cố-ý-trống-có-khai; đưa vào E-6 errata, không vào wave).
- **TC-10 không wave chữa = ĐÚNG THIẾT KẾ khai lỗ** (lane E §4.4: lỗ CHỮA duy nhất, 3 ô chữ còn lại chỉ lỗ NGHIỆM THU) đã chuyển hub W0 mục 8; SE chỉ adopt trần-hướng-dẫn + nghĩa-vụ-khai W3, dán nhãn *khai-báo, không phải thuốc*.
## §S — TRẢ LỜI DỨT KHOÁT: chạy NGAY ⟂ chờ ANH
- **Chạy NGAY trong phiên còn lại:** **W0** (trọn chỉ cần anh gật P6 một dòng ngay đầu wave), rồi **W1** nếu còn thời lượng (điều-kiện-vào tự thoả khi W0 đóng; không quyết định owner nào chặn lõi W1). Kèm việc song-song hợp lệ: **phát 8 câu P1..P8 cho anh NGAY SAU W0** hỏi không phải thi công, không phạm OD-2 (lane A §6 việc-5); hỏi muộn thì W3b/W4/W4b/W5b treo dây chuyền.
- **Tự-chạy các phiên sau, KHÔNG cần anh phán** (theo chuỗi, mỗi wave 1 gate + 1 vòng ): **W2 → W3 (trừ khoản P5) → W5**.
- **BẮT BUỘC chờ anh trước khi động:** **W3b** (P1) · **W4** (P2) · **W4b** (P4 + P8, +P3) · **W5b** (P7) · **W6** (điều-kiện-vào + mốc RC của anh).
---
**END wave-plan-S180 — VERDICT=PLAN-CHỐT: 7 wave + 3 sub gated · W0/W1 chạy-ngay · 5 điểm chờ-anh (8 câu P) · 0 wave loại · 1 ngoại lệ CÓ KHAI (W0/TC-06) · TC-10 = lỗ-chữa khai hub · bất biến OD-2 + 4-ô-chữ + mẫu-số giữ trọn.**