# Sổ yêu-cầu chủ dự án — 3 khối (GĐ-4, wave W4) > **Dựng @S181 · 2026-08-07.** Điều-kiện-vào đã đủ: W3 thi công xong + chủ dự án chốt **P2 = PB-2** (tách REQUEST ⟂ TASK). > Sổ quyết-định: [`owner-decisions-07-08-2026-dot-2.md`](../../.claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/owner-decisions-07-08-2026-dot-2.md). ## 🔴 Ranh sống-còn: sổ này là REQUEST, KHÔNG phải TASK | | REQUEST (sổ này) | TASK (`.claude/WAL.md`) | |---|---|---| | Trả lời câu | *"anh đã yêu-cầu gì, đã được đáp chưa?"* | *"việc đang tới đâu?"* | | Nguồn | **sổ này** | **WAL — nguồn duy-nhất** | | Cột trạng-thái | `mở`/`đóng` của **YÊU-CẦU** | `[ ]`/`[!]`/`[x]` của **VIỆC** | 🔴 **Sổ này CẤM mang cột trạng-thái-thi-công của riêng nó.** Muốn biết việc tới đâu thì đi theo cột *con trỏ* về WAL. Luật + lý-lẽ đầy-đủ = canonical ở [`.claude/commands/tiep.md` §3-bis](../../.claude/commands/tiep.md) — **B1: CẤM chép sang đây.** ## 🔴 Chống bẫy A1 — cột *lời nguyên văn* chỉ nhận chữ anh gõ TỪ 2026-08-07 Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** được đổ vào 3 khối dưới — chúng là **nhãn do đội đặt**, không phải lời anh. Chúng sống ở **PHỤ LỤC** cuối tệp, mang nhãn *"suy ra, không phải nguyên văn"*. - **Mã `YC-`/`ST-`/`PN-` là VĨNH VIỄN, cấm tái dụng.** Đóng = **lật trạng thái**, KHÔNG xoá dòng. *(SE từng làm ngược: `HANDOFF:10-17` đánh số 1..7 tái dụng mỗi phiên, đã trả giá bằng 3 lượt hỏi lại.)* - **Trần ký tự cột nguyên văn** = khoá `owner_request_verbatim_char_cap` trong `.claude/agent-memory/memory-budget.json` — **B1: trỏ khoá, CẤM chép số vào đây.** --- ## Khối 1 — `việc-được-giao` > 🔴 **CỘT `nhắc-lại-của` — ĐỌC TRƯỚC KHI ĐẾM** (thêm @S181 sau khi vai tầng-2 bắt lỗi mã hoá của lead). > Đơn vị đếm là **MỤC = YÊU-CẦU**, không phải **DÒNG**. Yêu-cầu bị nhắc lại **KHÔNG** được cấp mã mới — nó chỉ làm tăng cột *số lần đã nhắc* của **mã GỐC**. > Bản đầu của sổ **làm sai đúng điều đó**: cấp 4 mã cho **một** yêu-cầu. Mã đã cấp là **vĩnh viễn, cấm xoá dòng** ⇒ chữa bằng **đánh dấu**, không bằng gỡ. > 🔴 **LUẬT ĐẾM:** chỉ đếm dòng có `nhắc-lại-của` **TRỐNG**. Dòng có giá trị = cùng một mục, đã tính ở mã gốc. | mã | lời nguyên văn | thời điểm · phiên | trạng thái | số lần đã nhắc | con trỏ | 🔴 đội hiểu thành gì | nhắc-lại-của | |---|---|---|---|---|---|---|---| | `YC-001` | "Nói rõ các vấn đề trên nhé" | 2026-08-07 · S181 | đóng | 1 | báo-cáo lượt S181 | Giải thích 6 câu chờ-anh bằng nguồn thật, không phỏng theo trí nhớ — kèm khuyến nghị từng câu | | | `YC-002` | "OK cứ làm dry-run luôn" | 2026-08-07 · S181 | **mở** | **4** | `docs/changelog/sessions/` log S181 + run `2026-08-07-S180-adap-upgrade-pack-phased/` *(con-trỏ cũ "WAL W5+W4b" chết theo reset — gap-F2)* | *(lead hiểu SAI lượt đầu: tưởng dry-run các ô acceptance W3 ⇒ anh phải đính chính **3 lần**, xem 3 dòng dưới.)* Ý thật: **thi hành trọn plan adapt** | | | `YC-003` | "gõ /adap-apply (dry) -> OK chốt cái này cho W3" | 2026-08-07 · S181 | đóng | 1 | `WAL` chain "W3 acceptance 6/6 ĐÓNG" | Gõ lệnh thật để xác nhận thân lệnh nạp có BƯỚC 0, **không** áp thư nào | | | `YC-004` | "làm tiếp đi nhé, nãy tao nói dry-run tức chạy hết cái plan adapt ở turn trước chứ ko phải dry-run cái này" | 2026-08-07 · S181 | đóng | — | `WAL` chain "THI HÀNH 5/6 khoản đợt-2" | Đính chính lần 1 | **`YC-002`** | | `YC-005` | "làm xong thì chậy hết cái plan adapt nhé" | 2026-08-07 · S181 | đóng | — | cùng trên | Đính chính lần 2 | **`YC-002`** | | `YC-006` | "làm cho hết đi nhé" | 2026-08-07 · S181 | đóng | — | `WAL` chain W5 + W4b | Đính chính lần 3 | **`YC-002`** | | `YC-007` | "1 -> B / 2 -> nguyên văn / 3 ->1 -> Gật luôn / 4 -> Đội đầy đủ khi chạy -> OK / 5 -> b / 6 -> b" | 2026-08-07 · S181 | đóng | 1 | `owner-decisions-07-08-2026-dot-2.md` | Sáu phán quyết P3·P5·P7(i)·P8 + cột `status` + baseline. 🔴 P7 chỉ vế (i); vế (ii) phán riêng ở `YC-009` | | | `YC-008` | "Làm xong hết đi nhé" *(dán kèm bảng 5 wave còn lại, trong đó 2 wave ghi rõ đang CHẶN)* | 2026-08-07 · S181 | đóng | 1 | `WAL` chain W5/W4b | Chạy hết wave chạy được; 2 wave chặn thì chuẩn bị trọn rồi để đúng phần của anh | | | `YC-009` | "đồng ý stamp - ký tên -> Làm đi nhé" | 2026-08-07 · S181 | đóng | 1 | `ACTIVE-MARKS` mark `RC-…-21-42-10` | Cấp chữ ký niêm phong W6 **và** phán nốt P7 vế (ii) | | | `YC-010` | "OK làm hết rồi khép trọn đi" | 2026-08-07 · S181 | đóng | **2** | `WAL` chain W5b/W3b/W6 | Khép trọn gói: W5b + W3b + phần còn lại W6 | `YC-008` | | `YC-011` | "1,2 -> làm đi, OK sau đó /session-end" | 2026-08-07 · S181 | **đóng** *(lật @S185 — stale-F8: 3/3 vế xong từ S181, treo oan 4 nhãn phiên)* | 1 | closeout S181 commit `d2918790` + `HANDOFF` segment L12 *(con-trỏ cũ "WAL next:" đã chết theo reset — gap-F2, đổi sang mốc bền)* | (1) push 42 commit · (2) cổng đồng-bộ + báo cáo cuối · rồi đóng phiên — cả 3 đã thi hành @S181 | | | `YC-012` | "nâng cap" *(🔸 trích từ `spec-…-07-08-2026.md:64`, cửa-sổ **S180**, KHÔNG bắt trực tiếp ở cửa-sổ này — khai đúng nấc)* | 2026-08-07 · S180 | đóng | 1 | `memory-budget.json` `_cap_raised_S181` | Lệnh dứt khoát nâng `hmw_width.cap` 20→30. 🔴 @S179 lead **tự thu-hẹp** chữ "OK" thành "chưa phải lệnh đổi số" — lần này không tự thu-hẹp | | | `YC-013` | "Hiện tạo muốn cac quy trình này giống như duyệt NCC. Có thể thêm sửa xóa edit stick tương tự như duyệt NCC. Cho 2 /fable-real invest cách làm BE và Database, 1 /fable-real invest cách cấu hình giao diện front-end đúng nhất về UI lẫn giao diện, ko lệch. -> Ra các wave xử lý chi tiết nhất. cho 2 /fable-real review và tổng hợp các wave xử lý chi tiết. Cuối cùng fan-out cho Opus 5 MAX xử lý nhé." *(kèm 4 ảnh trang `approval-workflows-v2/DuyetNcc` + dialog Sửa-tại-chỗ)* | 2026-08-08 · S182 | **đóng** *(acceptance mắt-anh = "Tạm OK" @S185/YC-019(1) — nấc TẠM khai đúng: anh chưa duyệt sâu, có gì bung thì mở lại bằng mã mới)* | **2** | `runs/2026-08-08-S182-khkk-awf-mirror-ncc/` | 8 workflow "Duyệt KHKK — Nhóm 1..8" phải có ĐỦ chức năng như trang "Duyệt NCC": xem steps/cấp/NV + per-NV quyền duyệt + Sửa-tại-chỗ + Tạo-phiên-bản-mới + Ghim/Bỏ-ghim + Xoá-version + lịch-sử-versions. UI **không lệch** khuôn DuyetNcc. Pipeline anh chỉ định: 3 `/fable-real investigator-codebase` (BE · DB · FE-UI) → wave-plan chi tiết → 2 `/fable-real reviewer` → hmw fan-out **Opus 5 MAX** execute | | | `YC-014` | "C — Mờ ô chưa nghe (Recommended)" *(AskUser D3 @S182 — sau khi invest phát hiện 6/9 checkbox KHKK-runtime bỏ qua)* | 2026-08-08 · S182 | đóng | 1 | `spec-khkk-awf-mirror-ncc-DRAFT.md` MỤC 3 D3 | Dialog KHKK giữ layout y khuôn; ô máy-chưa-nghe **mờ + tooltip "chưa áp dụng cho KHKK"** (tiền lệ ô Duyệt-thẳng-Cấp-cuối @K3). KHÔNG port semantics đợt này (W3 hủy); port sau thì gỡ mờ dần | | | `YC-015` | "làm nốt cho ra giao diện luôn nhé" *(qua `/tiep` @S183)* | 2026-08-08 · S183 | đóng | — | WAL chain `[x]` cicd-4-chân | Verify deploy `706134da` cho giao diện 8 panel SỐNG trên prod — 4/4 chân PASS (bundle ×2 rotate + marker + DLL 3-hit + 8-row IsActive=1 + pin-lệch 0) | **`YC-013`** | | `YC-016` | "1 -> (c) THEO TAY CẦM PHIẾU -> OK nhé" | 2026-08-08 · S183 | **đóng** *(verify-DLL @S183 + RE-verify @S185 + acceptance "Tạm OK" @S185/YC-019(1) — lật cùng đợt YC-013)* | 1 | ship `72568f05` + WAL chain (TASK → WAL) | **Phán quyết slot (67)** treo từ S172: upload file-khi-duyệt KHKK theo TAY CẦM PHIẾU — phiếu Nháp/Trả-lại (tay người soạn) ⇒ NGƯỜI SOẠN up được; phiếu Chờ-duyệt ⇒ CHỈ NGƯỜI DUYỆT (thuộc workflow phiếu); guard ở API-layer (#82 2-tầng), kèm test. Slot (67) ĐÓNG | | | `YC-017` | "AI_INFRA và /adap-apply — Cho /fable-real invest và review checklist cẩn thận sau đó cho Opus 5 MAX xử lý" *(args lệnh `/check-email` @S185)* | 2026-08-09 · S185 | **đóng** *(pipeline P1→P4 trọn @S185: 0/39 nợ per-id · 21/21 item disposition; 4 câu W phát sinh → khối CHỜ-ANH riêng, không giữ YC mở)* | 1 | `runs/2026-08-09-S185-email-adap-pipeline/implement-synthesis.md` | Kéo thư AI_INFRA CẢ 2 kênh (`outbox/se` qua check-email + `outbox/all` qua adap-apply), rồi pipeline khuôn YC-013: `/fable-real investigator-codebase` soi trạng-thái thư/adopt + dựng checklist → `/fable-real reviewer` review checklist cẩn thận → hmw fan-out **Opus 5 MAX** execute. *(Thư 08-08 đã áp trọn @S185 TRƯỚC lệnh này — pipeline chạy trên phần việc CÒN LẠI mà invest tìm ra.)* | | | `YC-020` | "1 -> OK, 1 phiên. · 2 -> đồng ý 14 ngày. (nhưng cũng theo phiên luôn vì có ngày làm ngày ko). · 3 -> OK · 4 -> OK · 5 -> OK đông ý." *(trả lời 5 khoản SKIP-owner)* | 2026-08-10 · S185 | **mở** | 1 | WAL chain (TASK → WAL) | (1) fold C13/C14/C15 vào TOTAL sau **1 phiên nền** (S185 = nền — sửa code giờ, lần chạy kế tự vào TOTAL) · (2) ngưỡng title-freshness = **14 PHIÊN** (KHÔNG phải ngày — anh chỉ rõ "có ngày làm ngày ko" ⇒ đo bằng nhãn-phiên/counter, khớp luật H24 "khoảng đo từ counter không từ đồng-hồ") · (3) V5 bao-cao-cuoi: KHÔNG sửa file đã gửi — đính chính 1 dòng trong THƯ KẾ gửi hub · (4) mở detector C13 canh thêm lưới trio · (5) GIỮ neo-glyph (không đổi quy ước heading) | | | `YC-019` | "1 -> Tạm OK · 2 -> Role baseline + Runs · 3,4 -> giải thích · 5 -> OK kéo audit luôn giờ cứ end/start là cứ chạy · 6 -> Nợ cũ thì xử lý cho xong luôn" | 2026-08-10 · S185 | **đóng** *(6/6 vế thi hành @S185: (1) YC-013/016 đóng · (2) ring2 24.859B · (3)(4) đã giải thích → anh phán tiếp = YC-020 · (5) deep_every=1 · (6) nợ cũ đóng trọn)* | 1 | WAL chain (TASK → WAL) | 6 phán quyết một lượt: (1) acceptance 8-panel TẠM-OK ⇒ lật YC-013/016 nấc "tạm" · (2) C-6 = NÉN `Role baseline`+`Runs` của ring2 (khuôn moved-not-cut như lead-stale) · (3)(4) em giải thích W-1..W-4 + 5 SKIP-owner, chưa phán · (5) 🔴 ĐỔI NHỊP DEEP: từ nay **mỗi bookend end/start đều chạy deep** (deep_every → 1, hết chờ nhịp 15) · (6) uỷ quyền xử TRỌN nợ cũ theo bậc-2 LT3 (chọn nhánh an toàn + khai, việc-vật-lý-của-anh thì kê rõ) | | | `YC-018` | "2 phần bookend và bookstart -> trong đợt adapt này AI_INFRA cũng có hướng dẫn bọn mày chạy 1 mạch hết toàn bộ ko còn pause/tiep nữa, chú ý cấu hình cái đó kỹ nhé" | 2026-08-09 · S185 | **đóng** *(cấu hình land 4 site @S185 + chạy thật trọn 1 mạch bookend @close cùng đêm — nghiệm bằng vận hành)* | 1 | WAL chain (TASK → WAL) | Nghi-thức 2 đầu phiên (`/session-start` bookstart + `/session-end` bookend) phải chạy **TRỌN TRONG MỘT LƯỢT** như hub kể ở thư 08-08 Phần 1b ("lượt mở phiên gần nhất chạy trọn trong một lượt duy nhất, không cần cửa tạm dừng nào chen giữa") — cấu hình luật ONE-SHOT vào 2 file lệnh, CẤM rải nghi-thức qua nhiều cửa pause/tiep, CẤM hẹn-cửa-sau. *(Đội hiểu: pause/tiep VẪN là recovery khi đứt bất-khả-kháng [limit/crash — H22 giữ nguyên]; thứ bị cấm là DÙNG chúng làm nhịp chia-chặng nghi-thức. Anh bác cách hiểu này thì em sửa.)* | | > 🔴 **MỘT yêu-cầu, nhắc 4 lần.** Đây là dữ-liệu **TC-01** sinh ra để bắt, và nó tố-giác chính lead: hiểu sai ở `YC-002` nên anh phải nói lại 3 lần. **Ghi lại chứ không làm đẹp.** > > 🔬 **Ca này thành phép thử THẬT của hệ 4 tầng — và hệ ĐÃ BẮT LỖI CỦA TẦNG-1.** Lead đếm **3 mục** (đếm theo DÒNG). Vai tầng-2 `score-counter` đếm độc lập ra **1 mục**, lập luận không cãi được: luật lấy ví dụ *"mục nhắc 5 lần trừ đúng 1, không phải 4"* — mã hoá ca đó thành 5 dòng thì đếm-dòng ra **4**, **đúng con số luật gọi là SAI**. Tức đếm-dòng **tái tạo y hệt đáp án LẦN** dưới vỏ MỤC; số 3 của lead là `4−1`, cùng dấu vân tay. ⇒ Tầng-2 đọc-độc-lập **không phải nghi thức thừa** — nó cứu đúng con số đầu tiên sổ này sinh ra. ## Khối 2 — `sở-thích-thường-trực` | mã | lời nguyên văn | phạm vi được làm thẳng | 🔴 lằn ranh đỏ vẫn PHẢI hỏi | lý do anh đã lường trước | thời điểm · trạng thái | |---|---|---|---|---|---| | `ST-001` | *(mục mồi — chưa có lời nguyên văn; liệt kê dưới là lằn-ranh do đội dựng theo A6, chờ anh xác nhận hoặc sửa)* | — | **LIỆT KÊ 7 LOẠI, CẤM dùng tính từ:** (1) đổi lược-đồ dữ-liệu · (2) xoá dữ-liệu · (3) hành-động hướng-ra-ngoài · (4) việc không-lùi-được · (5) việc dính tiền · (6) đổi cơ-chế governance · (7) đổi số-nhịp / ngân-sách | — | 2026-08-07 · **mở (chờ anh)** | | `ST-002` | *(mục mồi)* — tự-trị khi anh vắng mặt | theo **bậc 1** của luật 3 bậc | theo **bậc 3** của luật 3 bậc | — | 2026-08-07 · mở | > `ST-002` **TRỎ** về nhà NGUỒN: [`ACTIVE-MARKS.md` **§LT3**](../../.claude/governance/ACTIVE-MARKS.md) (mark `RC-pqhuy1987-07-08-2026-20-57-48`). 🔴 **CẤM chép nội dung luật xuống đây** — đó đúng là nguồn-đôi `C3-07` ⟂ `ST-002` mà lane C §F.2 chỉ ra. > > ⚠️ **`ST-001` khai thẳng nấc:** 7 loại trên **chưa phải lời anh**. Chúng là lằn-ranh đội dựng theo khuôn A6 để mục mồi có nội dung soi được. Cột *lời nguyên văn* **để trống có khai** đúng luật chống-bẫy-A1, thay vì bịa một câu rồi gán cho anh. ## Khối 3 — `lời-phàn-nàn` **TRỐNG TUYỆT ĐỐI.** Đo @S180: **0 hit** trên toàn kho (control dương cùng phép, chuỗi *"điểm dừng"* = 5 tệp ⇒ lệnh chạy được, rỗng là rỗng thật). 🔴 Ô trống này **KHÔNG** đọc thành *"anh chưa từng phàn nàn"* — nó chỉ nghĩa là **chưa ai từng ghi**. Có `PN-001` thì đánh số từ 1. --- ## PHỤ LỤC — 🔴 SUY RA, KHÔNG PHẢI NGUYÊN VĂN > Mọi thứ dưới đây là **nhãn do đội đặt**, KHÔNG phải chữ anh gõ. **CẤM nâng lên 3 khối trên.** Lý do: 61 tiêu đề `auto-memory` là nhãn-đội — đổ vào sổ là 61 mục trượt đối chiếu ngay lượt đầu (F-04 + lane C §C.5). **Bảng `HANDOFF:10-17` — KHÔNG nhập, ✅ VK-5 ĐÓNG (phán quyết THẬT của anh @S181 `owner-decisions…dot-2.md:49` "CHỐT GIỮ PHỤ LỤC" — lane-4 @S185 đo ra; S185/YC-019(6) chỉ THI HÀNH lật vết):** **GIỮ PHỤ LỤC vĩnh viễn** — bảng đó là nhãn-đội, không phải chữ anh gõ; nhập vào khối chính là vi phạm chính luật chống-bẫy-A1 của sổ. Anh bác thì nhập lại 1 lượt là xong. 🧊 lời cũ: *(vế con P2 chưa phán riêng — treo từ S181, ctx-audit @S185 cũng BÁC áp-máy-móc nhãn WAL, củng cố nhánh này)*. | Nguồn suy ra | Ở đâu | Vì sao chưa nâng lên | |---|---|---| | bảng chờ-anh `HANDOFF:10-17` | `docs/HANDOFF.md` | ✅ VK-5 ĐÓNG @S185 — giữ phụ lục vĩnh viễn (xem trên) | | 5 câu chờ-anh gói adap | `WAL` + `_context-s-12.md` PAUSE-1 | đã được đáp @S181 — thuộc `owner-decisions`, không phải yêu-cầu mở | | 61 tiêu đề `auto-memory` | `.claude/auto-memory/` | nhãn-đội, không phải lời anh |