Files
solution-erp/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/sub-investigator-codebase-1.md
2026-07-29 15:51:33 +07:00

24 KiB
Raw Blame History

sub-investigator-codebase-1 — LANE-1 NGUỒN/QUY-TRÌNH GĐ3-GĐ4 (S160 dry-run toàn trình)

RAW invest — fable-real single-deep-pass. Nguồn PIN: run.md + 5 file + folder FORM. Trục: NGHIỆP VỤ từ tài liệu nguồn (KHÔNG đọc src/Backend, fe-* — đó là lane-2). Ghi-đĩa-trong-lúc-làm chống #53. Mỗi mục đánh số F-nn.

§0 — Nguồn đã đọc (log tuần tự)

  • F-01. run.md đọc TRƯỚC TIÊN (lệnh anh verbatim :6-15; đọc-hiểu lead :17; ràng buộc :42-48). Chốt: spec KHKK cũ RATIFIED chỉ BỔ SUNG; toàn trình 4 GĐ ❶PE ❷KHKK ❸Duyệt HĐ b.13→21 ❹HĐ cứng Hdc_*.
  • F-02. src-QT-TRINH-KY-HD.txt (14.425B, paragraphs=38 tables=2). TABLE 1 = lưu đồ 12r×5c (cột shape flowchart MẤT khi extract — tên bước phải suy từ TABLE 2 + thứ tự trách nhiệm). TABLE 2 = diễn giải 10r×3c = 9 bước có tên. QT tự nó KHÔNG đánh số 13→21 — numbering toàn-trình là quy ước dự án (S156/S157: b.13→21 ↔ 9 bước ISO 1:1).

§1 — Câu 1: Bảng b.13→21 chi tiết (mirror khuôn spec cũ)

F-03. Căn chỉnh số bước ↔ 9 bước ISO (nguồn: QT TABLE 2 :59-68 + TABLE 1 SLA :47-55)

TABLE 1 hàng theo thứ tự (cột Trách nhiệm + Thời gian — tên bước ghép từ TABLE 2 cùng trách nhiệm):

Hàng T1 Trách nhiệm SLA (QT ghi) Bước TABLE 2 khớp
:47 PB/BCH CT (form SOL-PRO-SP-001) Lựa chọn NTP/NCC
:48 QS/NV.PB/TBP/TPB 07 ngày Soạn thảo HĐ
:49 PD/PM/PRO/CCM/FIN/ACT 07 ngày Góp ý nội dung
:50 QS/NV.PB/TBP/TPB/PD/PM 07 ngày Đàm phán thương thảo
:51 NTP/NCC/TĐ 07 ngày In HĐ (NTP in-ký-đóng dấu trước)
:52 CCM 03 ngày Kiểm tra
:53 BOD/NĐUQ 01 ngày Duyệt
:54 HRA (không ghi) Đóng dấu
:55 PB/BCH CT/CCM (không ghi) Phát hành + Lưu trữ

F-04. FO-002.01 đọc xong (40r×13c, 1 table)

Cấu trúc form: header thông-tin HĐ (:8-11 Phòng ban/Dự án · Loại HĐ tick-box · Tên đối tác · Nội dung) + 4 KHỐI KÝ per-phòng (:15-45) + LƯU Ý 3 luật (:46).

4 khối ký + mục tick từng khối (mỗi khối có Họ tên + Ngày):

  1. PHÒNG BAN/DỰ ÁN — ĐỀ XUẤT (:15-20): tick ①Soạn thảo ②Nội dung HĐ
  2. PHÒNG CUNG ỨNG — PRO (:21-30): tick ①Điều khoản HĐ ②Điều khoản t/toán ③Rủi ro pháp lý HĐ
  3. PHÒNG CCM (:31-40): tick ①G/trị HĐ so với NS ②Rủi ro pháp lý HĐ
  4. GIÁM ĐỐC / NĐUQ (:41-45): "Ký kết, phát hành" (1 mục)

LƯU Ý (:46) — 3 luật nghiệp vụ:

  • (a) HĐ Chủ đầu tư: đơn vị đề xuất chuyển TRỰC TIẾP Giám đốc (bỏ PRO+CCM). Mọi loại còn lại PHẢI qua PRO và CCM trước. → khớp cờ BypassProcurementAndCCM đã có trong code (lane-2 verify).
  • (b) Mỗi bộ phận CHỈ 01 NGÀY xử lý; quá 01 ngày chưa xong = XEM NHƯ ĐÃ THÔNG QUA (auto-pass). Kéo dài phải báo bộ phận soạn thảo + ghi chú vào "Ý kiến". → mâu thuẫn V2 no-auto-approve (đã biết S157, owner O-2: SLA=tham khảo).
  • (c) Bảng kiểm tra PHẢI lưu kèm bộ hồ sơ gốc → FO-002.01 là ARTIFACT của bộ HĐ cứng, không chỉ màn hình.

Tick-box Loại HĐ trên form (:9): 6 lựa chọn = Chủ đầu tư / Nhà cung cấp / Thầu phụ / Tổ đội / Thiết bị thuê / Khác — KHÔNG 1:1 với 7 ContractType repo (không có Mua bán/Dịch vụ/Nguyên tắc riêng; có "Thiết bị thuê" + "Khác" mà repo không có). Ghi nhận diff phân loại, form-render cần map.

Chuỗi ký FO-002.01 = ĐỀ XUẤT → PRO → CCM → GIÁM ĐỐC. QT TABLE 2 chỉ nêu cover được ký ở b.17 (PD/PM/TPB), b.18 (CCM), b.19 (BOD) — PRO không có trạm riêng trong lưu đồ QT nhưng có khối ký trên cover + LƯU Ý (a) buộc "qua PRO và CCM". → QT mơ hồ chỗ này; đề xuất: PRO ký cover trong khoảng b.17→b.18 (sau ký nháy nội bộ, trước CCM).

F-05. RG-001 v02 đọc xong (2.907B)

Mã HĐ A/B/SOL&C/D (:7): A=Code dự án HOẶC Năm (HĐ dịch vụ/nguyên tắc) · B=viết tắt loại HĐ · C=viết tắt TP/NCC/TĐ/NC/ĐVDV · D=STT từ 01.

Bộ viết tắt loại HĐ v02 CHỈ CÓ 4 (:12-16): HĐTP · HĐGK (Giao khoán/Đội thi công/Nhân công cơ hữu) · NCC · HĐDV. KHÔNG có "MB" (Mua bán) — trong khi repo codegen có 7 type gồm HopDongMuaBan → {Project}/MB/SOL&{Sup}/{Seq}.

6 ví dụ mã HĐ (:46-51): FLOCK 01/HĐTP/SOL&HD/01 · FLOCK 01/HĐGK/SOL&PVL/01 · FLOCK 01/NCC/SOL&CC1/01 · 2026/NCC/SOL&AKATI/01 (nguyên tắc=Năm) · FLOCK 01/HĐDV/SOL&KG/01 · 2026/HĐDV/SOL&TTL/01.

2 dạng PO:

  • PO THEO HĐ nguyên tắc (:25, ví dụ :54): X/Y/PO Z = {ProjectCode}/{NCC-abbr}/PO {Seq} — ví dụ FLOCK 01/TRUNGDUNG/PO 01. KHÔNG có SOL&, KHÔNG có token loại HĐ, "PO" đứng TRƯỚC seq có DẤU CÁCH.
  • PO KHÔNG theo HĐ nguyên tắc (:36, ví dụ :57): A/PO/SOL&C/D — ví dụ FLOCK 01/PO/SOL&PVL/01. "PO" chiếm vị trí loại-HĐ, có SOL&.

Mã cho PHIẾU KHKK: RG-001 v02 KHÔNG quy định — văn bản chỉ cover mã HĐ + mã PO. (Đề xuất ở §3.)

§3 — Câu 3: DIFF RG-001 v02 vs bản repo (forms-spec.md)

F-06. Kết luận DIFF: forms-spec.md = parse của CHÍNH file v02 → 0 lệch trên format

Folder FORM chỉ có 1 file RG-001 = SOL-CCM-RG-001.v02 QD ma so hop dong.docx (46.147B, mtime 2026-03-19) — tức Phase 0 đã parse đúng bản v02, không có v01 nào khác trên đĩa. Đối chiếu TỪNG dòng:

Điểm RG-001 v02 (src :dòng) forms-spec.md (:dòng) Verdict
Format HĐ A/B/SOL&C/D :7 :82-87 6 row KHỚP 6/6 ví dụ nguyên văn (kể cả FLOCK 01 có DẤU CÁCH)
4 viết tắt HĐTP/HĐGK/NCC/HĐDV :12-16 :82-87 cột Loại KHỚP (HĐGK gồm Tổ đội/NC cơ hữu ✓)
Nguyên tắc → Năm thay ProjectCode :8-9 + ví dụ :49,:51 :85,:87 KHỚP
PO theo HĐNT X/Y/PO Z (không SOL&, "PO␣01") :25,:54 :93 KHỚP
PO không theo HĐNT A/PO/SOL&C/D :36,:57 :94 KHỚP

3 điểm KHÔNG-khớp-hoàn-toàn (đắt cho lane-2):

  1. 🔴 "MB" (Mua bán) KHÔNG TỒN TẠI trong RG-001 v02 — v02 chỉ định nghĩa 4 viết tắt (:12-16), KHÔNG có MB; forms-spec cũng không có row MB. NHƯNG codegen repo (skill contract-workflow, bảng Mã HĐ gen) có HopDongMuaBan → {Project}/MB/SOL&{Sup}/{Seq} — tức "MB" là SÁNG TÁC của repo, không có gốc quy định. HĐ Mua bán (template FO-002.06 có thật) dùng mã gì theo v02? Nguồn CÂM. Đề xuất default dry-run: GIỮ "MB" hiện trạng (đổi codegen giữa dry-run = rủi ro), flag chờ anh ratify (option: map Mua bán→NCC hoặc →PO). Lane-2 check consumer.
  2. Scope reset Seq: v02 CÂM — chỉ ghi "đánh số tăng dần bắt đầu từ 01" (:19-20), KHÔNG nói seq reset theo gì. forms-spec :96 diễn giải "theo dự án + loại HĐ + đối tác" = interpretation hợp lý (codegen per-prefix khớp), nhưng cần biết đây là suy, không phải quy định.
  3. Chữ "dịch vụ/nguyên tắc" mơ hồ ở :8 ("Năm đối với HĐ dịch vụ/nguyên tắc") — nếu đọc chữ, HĐDV cấp-riêng cũng dùng Năm; nhưng ví dụ :50 = FLOCK 01/HĐDV/... (ProjectCode) → ví dụ THẮNG chữ: Năm CHỈ cho nguyên tắc. forms-spec đã resolve đúng theo ví dụ.

F-07. Mã cho PHIẾU KHKK: RG-001 v02 KHÔNG quy định

v02 chỉ cover mã HĐ + mã PO (2 loại). Không có mã phiếu trình/kế hoạch nào. → khai "nguồn không nói". Đề xuất default (mirror tiền lệ PE PE/{YYYY}/{A|B}/{Seq:D3} là mã tự đặt của hệ thống, không từ QĐ nào): KHKK/{YYYY}/{Seq:D3} atomic sequence, hiển thị trên phiếu + list; chờ anh ratify (spec cũ đã đề gì → xem §F-08 sau khi đọc spec).

§2-pre — Câu 2 chất liệu: folder FORM + "hợp đồng cứng" vật lý

F-08. Danh mục FORM folder (8 file, ls 2026-07-29 — khớp forms-spec 8 form, KHÔNG file mới)

File (bytes, mtime) Loại Nhận diện
FO-002.01.v01 Bảng kiểm tra (113.214B docx) Cover/checklist ĐÃ extract S157
FO-002.02.v01 Trọn gói NC+VT (516.608B .doc) Template HĐ cứng thầu phụ trọn gói
FO-002.03.v01 Trọn gói NC+TB (591.360B .doc) Template HĐ cứng thầu phụ trọn gói TB
FO-002.04.v01 Điều kiện chung (192.608B docx) Appendix cố định đính kèm HĐ trọn gói
FO-002.05.v01 HĐ Giao khoán (459.676B docx) Template HĐ cứng 10 table
FO-002.06.v01 HĐ mua bán (356.864B .doc) Template HĐ cứng NCC vật tư/TB
FO-002.07.V01 Đơn đặt hàng (1.032.615B xlsx) Template PO 3 sheet (SS GIA/PO/Po01 NLT)
RG-001.v02 QĐ mã số (46.147B docx) Quy định extract @S160

→ "6 template còn lại" = 002.02→.07. 3 file .doc (02/03/06) vẫn chưa convert (forms-spec TODO Phase 2 còn treo). mtime mới nhất 2026-03-19 = KHÔNG có bản mới sau Phase 0 parse → catalog forms-spec vẫn đúng hiện trạng đĩa.

§1 (tiếp) — Câu 1: bảng b.13→21 + ranh GĐ3/GĐ4

F-09. 🔴 RANH GĐ3/GĐ4 KHÔNG cần suy từ QT — OWNER ĐÃ CHỐT @S159

Spec cũ :27 (verbatim owner ratification): "ranh GĐ2 = b.7→12 (b.12 chốt con số ∈ GĐ2) · GĐ3 = b.13→18 tận dụng Contract V2 · GĐ4 = b.19→21 + ký cứng upload-only". QT tự nó KHÔNG chia giai đoạn (1 quy trình 9 bước liền); ranh là quy ước dự án đã ratify. ⚠️ DRIFT trong run.md :17: lead viết "GĐ3 Duyệt hợp đồng (b.13→21…)" — đọc đúng phải là khúc 13→21 = verdict LAI (toàn bộ tái dùng Contract), còn RANH GĐ3/GĐ4 = 13→18 / 19→21 theo owner @S159. Plan cha PHẢI dùng ranh @S159, đừng chép "b.13→21" thành span GĐ3.

F-10. Bảng b.13→21 chi tiết (khuôn spec cũ §1.5; nguồn = QT TABLE 2 :60-68 + SLA TABLE 1 :47-55 + FO-002.01)

Căn số: toàn trình b.1-6=PE(GĐ1) · b.7-12=KHKK(GĐ2) · b.13-21 ↔ 9 bước ISO 1:1 (spec cũ §1.3(A) :35-38, lens-fidelity xác nhận 9/9 :459-461).

b Việc Ai (QT) Đầu vào Đầu ra/artifact Chuyển bước SLA QT
13 GĐ3 Lựa chọn NTP/NCC PB/BCH CT (:60) QĐ theo SOL-PRO-SP-001 (:47,:60nguồn thứ 4 NGOÀI pin, chưa ai đọc, spec cũ :483-485) NTP/NCC được chọn → b.14 không ghi
14 GĐ3 Soạn thảo HĐ QS/NV.PB soạn; TBP/TPB kiểm khớp gói thầu + biểu mẫu (:61) Winner + giá chốt GĐ2 + template FO-002.02→06 Dự thảo HĐ, gửi các PB qua email lấy ý kiến → b.15 07 ngày (:48)
15 GĐ3 Góp ý nội dung PD/PM (phạm vi CV/tiến độ/chất lượng/biện pháp — HĐ BCH CT) · EQU (thuê/mua TB) · PRO (vật tư/TP trọn gói) · CCM (điều khoản chi phí) · ACT/FIN (thanh toán/bảo lãnh/bảo hành) (:62) Dự thảo Ý kiến per-phòng → b.16 07 ngày (:49)
16 GĐ3 Đàm phán thương thảo QS/NV.PB/TBP/TPB/PD/PM; PB/BCH CT đàm phán chất lượng/giao hàng/giá trị/thanh toán/tạm ứng; phòng chức năng tham gia nếu yêu cầu (:63) Dự thảo + ý kiến Điều khoản chốt với NTP → b.17 07 ngày (:50)
17 GĐ3 In HĐ ⚠️ 2 nguồn trong CÙNG doc lệch nhẹ: T1 :51 ghi trách nhiệm NTP/NCC/TĐ, T2 :64 ghi QS/NV.PB (chủ trì) — thực chất chuỗi: NTP in 2 mặt + KÝ + ĐÓNG DẤU TRƯỚC gửi về PB/BCH CT → cập nhật SỐ HĐ theo quy định (RG-001) → PD/PM/TPB ký nháy từng HĐ đúng vị trí → PD/PM/TPB/TBP ký duyệt + ý kiến lên cover FO-002.01 → QS/NV.PB chuyển CCM Điều khoản chốt BẢN CỨNG ra đời tại đây + số HĐ + ký nháy + cover khối ĐỀ XUẤT → b.18 07 ngày (:51)
18 GĐ3 Kiểm tra CCM; TP.CCM ký nháy từng HĐ + ký duyệt + ý kiến lên cover FO-002.01 (:65) Bộ cứng + cover Cover khối CCM đã ký → b.19 03 ngày (:52)
19 GĐ4 Duyệt BOD/NĐUQ xem xét + ký duyệt HĐ (:66) Bộ cứng đã qua CCM Chữ ký GĐ trên HĐ + cover khối GĐ "Ký kết, phát hành" → b.20 01 ngày (:53)
20 GĐ4 Đóng dấu HRA/ISO (T2 :67 có ISO; T1 :54 chỉ HRA); PB/BCH CT chuyển HĐ đã ký đến HRA/ISO đóng dấu theo quy định HĐ đã ký GĐ HĐ đóng dấu SOL → b.21 không ghi
21 GĐ4 Phát hành + Lưu trữ PB/BCH CT + CCM (:68) HĐ hoàn chỉnh scan + gửi 01 BẢN GỐC cho CCM · thông báo + chuyển bản gốc "theo đúng số lượng" đến NTP/NCC · lưu bản gốc · lưu Server theo Filing System (bản CỨNG chính + bản SCAN) terminal không ghi

Nhánh lỗi/vòng lặp: QT KHÔNG VẼ nhánh trả-lại nào cho b.13→21 (spec cũ bảng mâu-thuẫn #5 :88 cùng nhận định) → hệ thống dùng TraLai/TuChoi sẵn có của V2, khai là default.

F-11. Nuance ranh: bản cứng SINH ở b.17 (GĐ3) nhưng MODULE cứng (GĐ4) mở từ b.19

Owner chốt GĐ4=b.19→21, nhưng theo QT thì vật-lý giấy + ký NTP + ký nháy + số HĐ đều sinh ở b.17-18 (∈GĐ3). ⇒ Trang Hdc_* phải HIỂN THỊ readonly metadata sinh từ b.17-18 (NTP đã ký/đóng dấu, ký nháy, cover 2 khối đầu), còn THAO TÁC của nó chỉ là 3 trạm b.19/20/21. Khai rõ để lane-2/lead không dựng trùng trạm.

F-12. Điều kiện ">5 tỷ" quanh b.18→19: NGOÀI nguồn pin

Sổ S156 ghi "bước-18 '>5 tỷ' chưa có máy" (nguồn = sơ đồ PDF S156, KHÔNG nằm trong 6 nguồn pin lượt này). QT + FO-002.01 + RG-001 đều IM LẶNG về ngưỡng giá trị. → uncertain: KHÔNG đưa ngưỡng vào bảng bước; lead muốn dùng phải re-check PDF S156 + hỏi anh (twin câu Q3 GĐ2 đang treo).

§2 — Câu 2: GĐ4 "Hợp đồng cứng" cụ thể là gì + đề xuất 6 leaf Hdc_*

F-13. GĐ4 theo nguồn — cái BIẾT và cái NGUỒN CÂM

Nguồn NÓI (QT :64-68 + FO-002.01 :46):

  • Ký: NTP ký+đóng dấu TRƯỚC (b.17) → ký nháy nội bộ PD/PM/TPB đúng vị trí (b.17) → TP.CCM ký nháy (b.18) → BOD/NĐUQ ký duyệt (b.19). Đóng dấu SOL: HRA/ISO (b.20).
  • Lưu: 01 bản gốc → CCM · bản gốc theo số lượng → NTP/NCC · PB/BCH CT lưu bản gốc · Server Filing System giữ CẢ bản-cứng-chính lẫn bản-scan (b.21).
  • Scan/số hoá: CÓ — scan là nghĩa vụ b.21; cover FO-002.01 PHẢI lưu kèm bộ hồ sơ gốc (luật (c) :46). Nguồn CÂM (khai + đề xuất default, đảo được):
  • Tổng số bộ in: QT không quy định (chỉ "01 bản cho CCM" + "theo đúng số lượng" cho NTP) → default: field SoBoGoc nhập tay khi tiếp nhận, tối thiểu 2; cần anh ratify.
  • Nơi lưu vật lý cụ thể (tủ/phòng/mã hồ sơ): không nói → default: field text ViTriLuuTru + FilingPath (link server), nhập ở b.21.
  • Ai bấm gì trên hệ thống: QT là quy trình giấy; owner @S159 đã chốt cơ chế hệ thống = "ký cứng upload-only" → mỗi trạm b.19/20/21 = 1 action xác nhận + upload scan bằng chứng, KHÔNG e-signature.

F-14. Artifact GĐ4 cần track (đề xuất, suy trực tiếp từ b.17-21)

  1. Số HĐ (RG-001) — sinh trước GĐ4 (xem F-16 lệch thời điểm). 2. SoBoGoc (default, nguồn câm). 3. Trạng thái cứng: đề xuất 4 mốc ChoKyGD → DaKyGD → DaDongDau → DaPhatHanh (map 1:1 b.19/20/21+terminal). 4. Scan bộ HĐ đã ký+đóng dấu (b.21). 5. Scan cover FO-002.01 (luật (c)). 6. Tick + ngày "01 bản gốc đã giao CCM". 7. Số bộ + ngày giao NTP/NCC. 8. ViTriLuuTru + FilingPath. 9. Ngày ký GĐ / ngày đóng dấu / ngày phát hành + người thao tác (audit). 10. Readonly từ GĐ3: NTP đã ký (b.17), ký nháy PD/PM/TPB + TP.CCM (b.17-18).

F-15. Đề xuất nội dung 6 leaf Hdc_* (nhãn "- Bảng cứng", skeleton prod sẵn — run.md :47)

Leaf Dry-run cần hiển thị/thao tác
Hdc_WfView Sơ đồ 3 trạm b.19→21 (Ký GĐ → Đóng dấu → Phát hành/Lưu) + đếm HĐ đang đứng mỗi trạm — mirror trang "Tổng quan quy trình" arc-2
Hdc_List Mọi HĐ đã vào GĐ4 (tức GĐ3 xong): mã HĐ, NCC, dự án, giá trị, trạng thái cứng 4-mốc, số bộ, cột thiếu-scan
Hdc_Create ⚠️ Nguồn không nói — GĐ4 không "tạo mới từ trắng". Default: form "Tiếp nhận bản cứng" pick HĐ GĐ3-xong + nhập SoBoGoc/ghi chú; cần anh ratify (option B: leaf này giữ ComingSoon, tiếp nhận tự động khi GĐ3 terminal)
Hdc_Pending Inbox theo vai: BOD/NĐUQ thấy ChoKyGD · HRA thấy DaKyGD (chờ đóng dấu) · PB/BCH+CCM thấy DaDongDau (chờ phát hành/scan/giao)
Hdc_Approved HĐ DaPhatHanh: đủ scan + đã giao CCM/NTP + nơi lưu
Hdc_Deleted Soft-deleted records (khuôn 6-leaf y-chang Duyệt NCC, commit ea962b1)
Mỗi transition = nút xác nhận + upload scan + note (upload-only @S159).

F-16. Lệch thời điểm GÁN MÃ HĐ: QT b.17 vs máy gen ở terminal — input cho lane-2

QT :64: "Cập nhật số Hợp đồng theo quy định" nằm TRONG b.17 In HĐ (mã phải có trên bản in). Code hiện gen mã lúc khác (skill: transition DangDongDau; sổ S156: V2 terminal gen-mã+DaPhatHanh — lane-2 verify site thật). Dry-run default: GIỮ máy hiện trạng (mã sinh ở terminal GĐ3 = sau b.18, vẫn TRƯỚC khi GĐ4 thao tác) + ghi nhận lệch so QT-b.17; user viết tay mã lên bản in nếu in trước. Cần anh ratify nếu muốn dời sớm thời điểm gen.

§4 — Câu 4: FO-002.01 → gate/checklist per-phòng

F-17. Map 4 khối ký ↔ bước

Khối FO-002.01 Mục tick Bước Căn cứ
PHÒNG BAN/DỰ ÁN (ĐỀ XUẤT) Soạn thảo · Nội dung HĐ ký ở b.17 (nội dung làm từ b.14) QT :64 "ký duyệt + ý kiến lên tờ cover"
PHÒNG CUNG ỨNG (PRO) Điều khoản HĐ · Điều khoản t/toán · Rủi ro pháp lý b.17→18 handover — QT KHÔNG có trạm PRO riêng trong lưu đồ; LƯU Ý (a) buộc "qua PRO và CCM trước" → khai mơ hồ, default đặt PRO ký NGAY TRƯỚC CCM FO :21-30 + :46(a)
PHÒNG CCM G/trị HĐ so với NS · Rủi ro pháp lý b.18 QT :65
GIÁM ĐỐC/NĐUQ Ký kết, phát hành b.19 QT :66

Spec cũ đã dùng chuỗi này làm đối-chứng-GIẤY cho O-1 (bảng :92 — cùng HÌNH b.9→12 GĐ2). Hai giai đoạn dùng CÙNG khuôn 4-trạm là feature, không phải trùng lặp.

F-18. Default dry-run cho 3 luật LƯU Ý + checklist (O-Q1/O-Q2 CHƯA trả lời — default phải đảo được)

  1. Checklist per-phòng (O-Q2 treo): dry-run chạy bằng comment tự do LevelOpinions như hiện trạng V2 = 0 dev mới; số hoá checkbox (ĐỀ XUẤT 2 mục · PRO 3 · CCM 2 · GĐ 1) dời sang wave-gate sau khi anh trả lời. Đảo: bật checkbox per-Level, map đúng bảng F-17.
  2. Auto-pass 01-ngày (luật (b)): KHÔNG máy hoá (mâu thuẫn duyệt-chặn V2; O-2 SLA=tham khảo — spec cũ :412 cùng kết luận). Default: hiển thị số-ngày-đang-chờ trên phiếu, không auto-approve. Đảo: cần SLA-engine (đã bị loại khỏi mọi wave GĐ2 — nếu anh muốn thì là wave riêng).
  3. Bypass Chủ đầu tư (luật (a)): ngoài scope dry-run NTP/NCC (QT scope = TP/NCC/TĐ); cờ BypassProcurementAndCCM đã tồn tại, không kích hoạt.
  4. Cover lưu kèm bộ gốc (luật (c)): thành acceptance GĐ4: HĐ DaPhatHanh PHẢI có scan cover đính kèm (attachment purpose riêng — lane-2 check enum AttachmentPurpose thiếu ký-nháy/cover, sổ S156 đã flag).

§5 — Câu 5: wave-structure NGHIỆP VỤ GĐ3+GĐ4 (nối W1-W5 spec cũ)

F-19. Nguyên tắc kế thừa + đề xuất W6→W9

Nguyên tắc spec cũ §③ :253-254: mỗi wave deploy riêng phải trả lời "người dùng thấy gì"; NOTE @S160: menu đã public toàn bộ (skeleton), dark-launch = lớp TRANG/DATA.

Wave Tên (nghiệp vụ) Người dùng thấy gì khi đẩy riêng Chặn bởi Bắt buộc cho dry-run E2E?
W6 GĐ3 sống: HĐ từ KHKK → duyệt V2 → DaDuyet Tạo HĐ từ phiếu KHKK DaDuyet (giá = ApprovedAmount), trình, 3 trạm PRO→CCM→CEO duyệt web (default mirror chuỗi FO-002.01, admin-config được), approver MỞ ĐƯỢC phiếu chờ mình Q6/Q11 (cầu W5 — anh ĐÃ MỞ gate chạm HĐ @S160 run.md :17④); 🔴 authz S156 phải khoanh vùng per-action TRONG wave này vì dry-run mở menu mọi người
W7 GĐ4 lõi: Hdc 6 leaf trang thật, 3 trạm cứng b.19/20/21 Theo dõi bản cứng: tiếp nhận → ký GĐ (upload) → đóng dấu → phát hành (scan+số bộ+giao CCM/NTP+nơi lưu) Hdc_Create semantics cần anh ratify (F-15); còn lại default đủ chạy
W8 Gate + checklist FO-002.01 số hoá Checkbox per-phòng trên phiếu + gate trình/duyệt siết dần O-Q1 + O-Q2 (twin W4 GĐ2) hoãn — nguồn: O-2 tham khảo + 2 câu owner treo
W9 Hồ sơ hoàn tất + nhắc thiếu scan + thống kê lưu trữ Filing view, cảnh báo HĐ phát hành thiếu scan/cover không hoãn — không chặn vòng chạy

Bắt buộc E2E đến "Hợp đồng cứng": W5(cầu, spec cũ) + W6 + W7. b.14-16 (soạn/góp ý/đàm phán) dry-run bằng trạng thái Nháp + comment thread + update draft (default khai rõ: ISO có trạm "Góp ý 6 phòng" nhưng V2 5-state không có phase góp-ý riêng — nếu anh muốn trạm thật thì thêm Bước trong workflow admin-config, 0 code).

F-07-BỔ-SUNG. Mã phiếu KHKK: spec cũ ĐÃ đề KHKK/{YYYY}/{Seq:D3} (:128 tái dùng WorkflowAppCodeSequence prefix namespaced + :307 "owner nên liếc format trước W1") — F-07 giữ nguyên kết luận "RG-001 câm", đề xuất KHỚP spec cũ, vẫn CHỜ anh ratify format.

§6 — Surprises ngoài 5 câu hỏi

  • F-20. run.md :17 drift ranh GĐ3 (chi tiết F-09) — Plan cha phải theo owner @S159: GĐ3=13→18, GĐ4=19→21.
  • F-21. "MB" codegen không có gốc quy định (F-06.1) — dry-run HĐ Mua bán sẽ đẻ mã ngoài RG-001 v02; forms-spec.md cũng KHÔNG có row MB → repo tự thêm ở tầng codegen, cần owner ratify hoặc loại type MuaBan khỏi dry-run.
  • F-22. forms-spec TODO Phase 2 còn treo: 3 file .doc (002.02/.03/.06) chưa convert → template render HĐ trọn gói/mua bán chưa chắc chạy được trong dry-run — lane-2 check form-engine coverage thật; nghiệp vụ fallback: đính file mẫu tĩnh.
  • F-23. FO-002.01 tick-box 6 loại HĐ ≠ 7 ContractType repo (F-04) — màn render cover cần bảng map, "Thiết bị thuê"/"Khác" không có ContractType tương ứng.
  • F-24. SLA QT b.14-17 = 07 ngày khớp fallback code (7d) nhưng b.17 In-HĐ QT=07d ≠ skill DangInKy=1d — O-2 nói tham khảo nên không chặn, ghi để bảng SLA hiển thị đúng NGUỒN thay vì đúng code.