Files
solution-erp/docs/governance/so-yeu-cau-chu-du-an.md
pqhuy1987 706134daa9
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 6m24s
[CLAUDE] Workflow: KHKK 8 panel nhóm mirror DuyetNcc + BE guards (0-mig)
YC-013 (S182/L13). 8 leaf "Duyệt KHKK — Nhóm 1..8" ra đúng khuôn trang
DuyetNcc: slice per-Code + lockedCode + Sửa-tại-chỗ/Tạo-version/Ghim/Xoá.
D3=C (YC-014): 6 ô chưa-wire disabled-giữ-state-thật + tooltip trên label
(Chromium không hiện title trên input disabled — MAJOR-1); ô #4 thêm chữ
nhìn thấy được; #7 giữ; #8 Finalize 0-chạm (prod 8/88 dựa nó); ô CEO
disable type-10 + POST null.

BE 5 guard (0 migration):
- W1a deactivate-per-Code cho type-10 (Code+Type+IsActive — cấm regex);
  Code normalize Trim().ToUpperInvariant() tại đường ghi + IgnoreCase belt
  trong GroupCodePattern (MAJOR-2: SQLite test case-sensitive nguoc prod
  CI_AS collation)
- W1b ContractSigningPlanWorkflowGuards (public static, Application) —
  rào nhóm 3 cửa Create/UpdateDraft/Submit, giữ cho-qua-code-ngoài-họ
- W1b2 (D6) pin-check IsActive+IsUserSelectable 2 cửa, 2 message tách
- W1c changelog PUT type-10 vào ContractSigningPlanChangelogs
- W1d DELETE usage-check 409 đích danh (8 module pin, IgnoreQueryFilters
  cho PE/Contract/KHKK; 5 module office pin loose-0FK — guard là rào duy
  nhất chống dangling) + 404 NotFoundException + D5 rào version-cuối nhóm
  (+ ApplicableType — MINOR-3)

Test 645 → 660 (+14 spec + T15 D6-Create MAJOR-3); MINOR-1 pin nguyên câu
thứ-tự 1 ca. File test thứ 3 (GroupAndCatalog) đổi 1 assertion theo câu
409 mới của W1b — spec-change, không phải nới bar.

Khai accepted (reviewer PASS_WITH_FIXES 0C/3M+6m, đã vá 3M+2m):
- MINOR-4: panel nhóm tạo-version-mới ⇒ 6 cờ khoá đóng băng default FE
  (vô hại — BE không đọc 6 cờ đó cho type-10)
- MINOR-5: bỏ ghim/bỏ active bản cuối nhóm = đóng cửa tạo phiếu nhóm đó
  (răng thật của nút Ghim — không rào đợt này)
- race 2-admin cùng Code → 2601/500 thô (UNIQUE đỡ data, chấp nhận)

Evidence: .claude/workflows/runs/2026-08-08-S182-khkk-awf-mirror-ncc/
(3 fable-invest + 2 fable-review + spec FINAL + 4 lane + precheck prod
12 phiếu/pin-lệch-0 + reviewer pre-commit)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 12:14:37 +07:00

11 KiB
Raw Blame History

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.

🔴 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-bisB1: 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".

  • 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.jsonB1: 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.

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 WAL chain W5 + W4b (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 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 mở 1 WAL next: (1) push 42 commit · (2) cổng đồng-bộ + báo cáo cuối · rồi đóng phiên
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 mở 1 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

🔴 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à 41, 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

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 (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-07ST-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 — CHƯA nhập, có lý do. Ngoại-lệ VK-5 (cho phép nhập bảng này vào khối chính) là vế con của P2 mà anh chưa phán riêng: anh chốt "P2 = b" cho trục REQUEST ⟂ TASK, không nói về VK-5. Theo bậc 2 của luật 3 bậc vừa ban (mơ hồ, không phá huỷ → chọn nhánh an toàn + khai), lead chọn KHÔNG nhập và ghi ở đây. Anh gật VK-5 thì nhập sau, một lượt là xong.

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 chưa được phá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