# spec — adap gói nâng cấp quy trình 7 giai-đoạn (S180, 07-08-2026)

> **Nguồn:** 4 thư `2026-08-04-Governance-upgrade-pack-phased-*` (`broadcasts/inbox/ai_infra/`, tổng **120.044 B**), phát 2026-08-04, `to: all-fit`, **CHƯA ÁP** (0 adap-report — control-dương `loi-do-luong` = 1).
> **Lệnh anh @S180:** `/check-email` + `/adap-apply` → `/fable-real` invest+review đầy-đủ nhất → `/fable-clone` review bóc-tách kỹ không bỏ sót → `/fable-real` review tổng-hợp chia rõ **plan wave** → **fan-out HMW Opus 5 MAX xử-lý từng wave theo plan**.
> **H21:** spec này do **LEAD verify + ghi**; worker thực-thi THEO spec bơm qua args.

---

## ① Tính-năng / đề-bài

Áp **gói nâng cấp quy trình bản phased 7 giai-đoạn** của AI_INFRA vào SOLUTION_ERP, theo đúng khuôn federated: **tailor form, giữ function-floor, KHÔNG copy-paste**.

**Bộ 4 món (đường đọc do hub chỉ định):**
| món | vai trò | byte |
|---|---|---|
| `thu-chinh` | thư chính — khối phát hành · SUPERSEDE · khai trạng-thái trung-thực · **bảng bệnh 12 TC** · luật chung 7 GĐ · ranh-giới áp-dụng · đường đọc | 33.156 |
| `phu-luc-spec-pitfall` | **9 lớp lỗi xuyên suốt** + spec từng GĐ-0..GĐ-6 + bẫy đã giẫm | 46.416 |
| `khuon-fit-map-report-checklist` | Phần A **bản-đồ áp-dụng** (điền @GĐ-0) · Phần B khuôn báo-cáo 10 mục · Phần C **danh-mục kiểm chống adapt-thiếu v1** | 30.502 |
| `luat-cham-diem` | luật chấm điểm phiên — **đã ký, áp thẳng**; 4 tầng chấm + niêm-phong 3 mốc | 9.970 |

**Khung nghiệm thu của chính gói (hợp-đồng, không phải trang trí):** mỗi GĐ **phải trỏ ngược về ≥1 triệu chứng TC**, không thì nó là **đồ chơi**.

**Luật vận-hành gói (trích thư chính, BINDING):**
- **Luật điều-kiện vào:** mỗi GĐ ghi rõ nó cần GĐ nào đứng trước; đọc là *"GĐ trước đã ở nấc **đã thi công**, HOẶC đã được miễn có khai"*.
- **Luật nấc:** `đã gửi → đã nhận → đã đồng ý → đã thi công → đã được kiểm chứng`. **CẤM nhảy cóc.**
- **Luật bằng-chứng:** mỗi GĐ có khối *"kiểm xong chưa"* gồm **lệnh chạy được**. Lệnh nào không dịch được sang SE ⇒ **khai `KHÔNG ĐO ĐƯỢC`** + dùng vị-từ thận-trọng.

🔴 **Điểm chất-lượng của hub cần được TÔN TRỌNG, không được "cải thiện" thành số:** hub **cố ý để CHỮ thay vì con số ở 4 dòng** (TC-02 · TC-03 · TC-07 *chưa có dụng cụ* · TC-10 **KHÔNG ĐO ĐƯỢC**), và tự khai lý do: bản gửi ra ngoài **không được lạc quan hơn bản trong nhà**. Nguyên tắc hub tự viết: *"một bảng gốc thật thà tám dòng có giá hơn mười hai dòng đẹp mà bốn dòng bịa."* ⇒ **SE tuyệt đối KHÔNG được điền số vào 4 ô đó để trông đủ.**

---

## ② Cách implement — 5 NẤC (anh chỉ định thứ tự)

| nấc | engine | vai | đầu ra |
|---|---|---|---|
| **N1** | `/fable-real` | `investigator-codebase` | **BẢN-ĐỒ ÁP-DỤNG** (Phần A khuôn) — từng GĐ × trạng-thái SE thật + 9 lớp lỗi soi vào SE + 12 TC map sang bệnh SE |
| **N2** | `/fable-real` | `reviewer` | phản-biện N1: chỗ nào invest đọc lệch thư · chỗ nào tuyên SE-đã-có mà thật ra chưa · chỗ nào bỏ sót khoản |
| **N3** | `/fable-clone` | `reviewer` (ensemble N lane đa lăng-kính) | **BÓC TÁCH KHÔNG BỎ SÓT** — mỗi lane 1 lăng-kính, quét đủ 4 thư; hội-tụ + phân-kỳ |
| **N4** | `/fable-real` | `reviewer` | **TỔNG HỢP → PLAN WAVE** — chia rõ từng wave, điều-kiện vào, deliverable, acceptance ĐO ĐƯỢC, vai đảm nhiệm |
| **N5** | HMW fan-out | Opus 5 MAX | thi công **từng wave theo plan** N4 |

### 🔴 2 QUYẾT ĐỊNH OWNER @S180 (AskUserQuestion, ràng buộc N3 + N5)

**OD-1 · trục N3 = LAI — 4 lane GĐ + 2 lane xuyên suốt (6 lane).**
Anh chọn phương án **đắt nhất nhưng khó sót nhất** — đúng chữ anh dặn ở lệnh gốc: *"review lại thật kỹ **ko bỏ sót**, bóc tách thật kỹ các plan mà AI_INFRA đã gửi"*.
⇒ 4 lane bổ theo **cụm phụ-thuộc GĐ** (bóc sâu từng giai đoạn, ra plan wave khớp thẳng cấu trúc hub) **+** 2 lane **cắt ngang** (bắt mâu thuẫn liên-GĐ mà lane-dọc mù). Hai trục bù đúng điểm mù của nhau: lane-GĐ mù liên-giai-đoạn, lane-xuyên-suốt mù chi tiết thi công.

**OD-2 · thứ tự N5 = ĐÚNG GĐ-0 → GĐ-6 của hub, KHÔNG nhảy cóc.**
⇒ **luật điều-kiện-vào + luật nấc của hub được tôn trọng nguyên vẹn**; SE **KHÔNG** kéo GĐ-4 lên sớm dù hub cho phép (*"kéo sớm được"*).
🔸 **Khai đánh đổi anh đã chấp nhận:** GĐ-0/GĐ-1 là phần nhẹ ⇒ **giá trị thấy được sẽ chậm hơn** so với việc chạy thẳng wave chữa bệnh đang mắc nặng (LỚP-2/6/8/9 đo được hôm nay). Đổi lại: **0 nhảy cóc ⇒ 0 nợ điều-kiện-vào**, và bản báo cáo gửi ngược hub sẽ sạch nấc.
⇒ N4 vẫn phải chia **đủ 7 wave**, nhưng xếp **tuần tự**; wave nào chạy hết phiên thì **dừng đúng ranh nấc**, không ăn lẹm sang wave sau.

### 🔴 4 QUYẾT ĐỊNH OWNER ĐỢT 2 @S180 (AskUserQuestion sau N4 — ràng buộc W0/W3b/W4/W4b)

🔴 **Anh chọn phương án THAM VỌNG HƠN ở 3/4 câu**, ngược khuyến nghị của lead. Hướng chung: **nhận ĐỦ hình dạng hub, không nhận bản rút gọn.** Lead ghi hệ quả một lần rồi thi hành đủ, **không bàn lại** (nguyên-tắc: anh tái khẳng định = quyết định của anh).

| # | anh chốt | lead đề | hệ quả ràng buộc |
|---|---|---|---|
| **P6** | **Mở INBOUND cho cả fan-out** (rẻ, additive) | cùng | ✅ **W0 mở khoá**. `_index.md` nhận CẢ 2 kênh; **KHÔNG dựng sổ 2, KHÔNG gỡ 22 dòng** (tránh lằn-ranh xoá-dữ-liệu) |
| **P1** | **PA-2 — hai mã thoát trong MỘT máy** | PA-1 | W3b phải **phân loại ~70 cờ** thành chặn/cảnh-báo **từng cờ một**. Đắt hơn PA-1 nhưng **sát ý hub nhất**. 🔴 Ranh có sẵn `memory-archive-gate.ps1:323-325` vẫn dùng làm **tiêu chí phân loại**, không vứt |
| **P2** | **PB-2 — tách REQUEST ⟂ TASK hai tầng** | PB-1 | 🔴 **PHẢI SỬA LUẬT ĐÃ RATIFY `tiep.md:181`** (+`pause.md:115`). Anh tự sửa luật của chính mình ⇒ lead làm **tường minh, có vết lineage**, không sửa lén. Đây là điều-kiện-vào của W4 |
| **P4** | **Đẻ vai mới VÀ nâng cap ≥ roster** | hoãn | `hmw_width.cap` **20→30** ⇒ **ĐÓNG slot (75)** treo từ S172. 🔴 Nợ kèm: vai mới **phải seed `measured{}` NGAY** (lane F: *"thêm 2 vai không seed = 10 vai mù baseline"*); và cap mirror **2 nơi**, C9 chỉ INFORM ⇒ sửa đủ 2 |

🔸 **Lineage đáng ghi cho P4:** slot (75) `hmw_width.cap 20 < roster 26` mở từ S172. @S179 anh trả **"OK"** và lead **tự thu-hẹp** thành *"ghi-nhận, CHƯA phải lệnh đổi số"* ⇒ giữ 20. Đó chính là ca `lead-gap-auditor` FLAG-4 bắt (*"Diễn-giải của lead, không phải chữ của anh"*). **@S180 anh nói dứt khoát "nâng cap" ⇒ lead thi hành THẬT.** Ghi lại để lần sau không tự thu-hẹp nữa.

🔴 **4 P còn lại CHƯA hỏi** (P3 tập-tín-hiệu ĐÓNG⟂MỞ · P5 luật tự-trị 3 bậc · P7 vị trí sổ-lượt-đắt · P8 wire khối chấm vào 2 cửa) — hỏi **1 LẦN** khi chạm W3b/W4b/W5b, đúng khuyến nghị N4 (*"hỏi ≠ thi công"*).

**Ràng buộc xuyên nấc:**
- 🔴 **Ghi đĩa TRONG LÚC LÀM** — mọi vai ghi `sub-<role>-<i>.md` trong run-folder này từng phần. Phiên S180 đã có **6/6 vai dính #53**; chống-#53 = **thiết-kế ARTIFACT**, không phải prompt.
- 🔴 **Return = KẾT QUẢ CUỐI**, cấm mô-tả-ý-định-rồi-tắt (`return CHẤM DỨT agent`).
- 🔴 **`KHÔNG ĐO ĐƯỢC` là verdict HỢP LỆ** và được khuyến khích. Bịa số thì không.
- 🔴 **Control-dương bắt buộc** cho mọi phép 0-hit.

---

## ③ Checklist (vai · deliverable · acceptance ĐO ĐƯỢC)

| # | vai | deliverable | acceptance |
|---|---|---|---|
| C1 | `investigator-codebase` (N1) | `sub-invest-fitmap-S180.md` | phủ **7/7 GĐ** + **12/12 TC** + **9/9 lớp lỗi**; mỗi ô có ≥1 lệnh/đường-dẫn SE; ô không đo được ⇒ ghi `KHÔNG ĐO ĐƯỢC` **có lý do** |
| C2 | `reviewer` (N2) | `sub-review-n2-S180.md` | ≥1 chỗ BÁC hoặc khai rõ *"0 bác, đã thử k phép"*; mọi claim "SE đã có" phải có `file:line` |
| C3 | `reviewer` ensemble (N3) | `sub-review-clone-lane-<k>.md` | mỗi lane khai **lăng-kính** riêng; tập hợp phủ **4/4 thư**; báo hội-tụ ⟂ phân-kỳ |
| C4 | `reviewer` (N4) | `wave-plan-S180.md` | mỗi wave: điều-kiện vào · TC nào chữa · deliverable · **acceptance lệnh chạy được** · vai · rủi ro. **Wave nào không trỏ về TC nào ⇒ LOẠI** (luật hợp-đồng của gói) |
| C5 | HMW (N5) | per-wave commit | theo plan N4, mỗi wave qua gate riêng |

**Bất-biến gói (kiểm ở N4, trước khi fan-out):**
1. Mỗi wave trỏ ngược ≥1 TC — không thì **là đồ chơi, LOẠI**.
2. Không nhảy cóc nấc; điều-kiện vào của wave sau = wave trước **đã thi công** hoặc **miễn CÓ KHAI**.
3. 4 ô hub khai chữ (TC-02·03·07·10) **giữ nguyên chữ** ở bản SE.
4. Ranh-giới: khoản nào **vượt khung** ⇒ 🔴 **request anh + AI_INFRA**, KHÔNG tự quyết (nguyên-tắc owner S119).
