diff --git a/.claude/WAL.md b/.claude/WAL.md index 9e7eb1a..6410644 100644 --- a/.claude/WAL.md +++ b/.claude/WAL.md @@ -1,20 +1,21 @@ # WAL — auto-generated, không sửa tay -updated: 2026-07-29T15:35+07:00 | session: S160 (phiên-LOGIC L8, window 2 — /tiep) | branch: main +updated: 2026-07-29T15:45+07:00 | session: S160 (phiên-LOGIC L8, window 2) | branch: main -goal: ĐẦU VIỆC ARC-2 + CLOSEOUT **ĐÓNG** — anh chốt @S160: "OK tạm thời các điều chỉnh vừa rồi ổn. Xem như đóng đầu việc." (verbatim → session-log §Chốt đầu việc). 7 khoản checklist KHÔNG trả lời ⇒ GIỮ SLOT TREO. +goal: DRY-RUN TOÀN TRÌNH ĐẾN HỢP ĐỒNG CỨNG (lệnh anh @S160 — verbatim đầy đủ trong run.md). Spec KHKK cũ RATIFIED ("Spec vừa rồi build đúng rồi đó") = nền, KHÔNG viết lại. Pipeline anh chỉ định: 2×/fable-real invest (bổ sung spec cũ → dry-run tới HĐ cứng) → PLAN CHA + spec-chi-tiết-cách-làm + checklist CHO TỪNG WAVE → /fable-clone review → /fable-real review CHỐT CUỐI → hmw Opus-5-MAX chạy từng wave theo Plan cha + kiểm luôn. chain: -- [x] /tiep trọn nghi-thức: Sàn-3 5-tín-hiệu kêu ĐÚNG (khớp WAL) · tick 33→34 CLEAN · thư se=0/all=0 · mind-check 11/0 · _tiep-1 ghi + verdict ctx-verifier CO-CO-9-cờ -- [x] đọc cicd-verify-ea962b1: PASS 9/9 — menu 119→142=+23 khớp toán · endpoint 401-với-control-404 · durability-3 · baseline admin `D0sXA0fe`/`DWDbm5As`-frozen · user `Y6dW_5CM`/`6YIAufJR` -- [x] CLOSEOUT 7 mục (UNION K1): STATUS CURRENT arc-2 ⑦⑧ + bỏ "0 prod-code" + Gotchas-row 84 · HANDOFF khối ARC-2 + ❹-risk verbatim + vá stale 37,9%→69,2% · gotcha #84 revoker-2-chiều · spec KHKK note W1 (tái dùng Khkk_* + tiền-đề dark-launch ĐẢO) · session-log 2026-07-29-1440-S159 · diary designer S159 on-behalf + cicd baseline #426 · [MIND @close = nhịp cửa-đóng, treo] -- [x] curate 2 diary (hook 24,4KB): designer 23.570→19.388B · cicd 23.678→21.852B (moved-not-cut ×3 True; 17,1K KHÔNG ép = thước MA slot 46) — nợ mới: pointer _INDEX #424 treo chờ (51-bis) -- [x] governance-detectors ×2: C11 9→5 (diary-delta CLEAR sau commit) · TOTAL 48→43 (vá Gotchas-row canonical) · INFORM 14→5 +- [x] closeout arc-2 + chốt đầu việc (commit 1d3d167 local; push chờ squash session-end) +- [!] wf: run `2026-07-29-S160-khkk-dryrun-plan` — scaffold run.md (verbatim lệnh anh) + extract RG-001 v02 + 2 lane /fable-real invest (lane-1 nguồn/quy-trình GĐ3-GĐ4 + lane-2 codebase dry-run map) +- [ ] Plan cha + spec-chi-tiết + checklist per-wave (lead viết từ 2 invest + spec cũ) +- [ ] /fable-clone reviewer (ensemble) +- [ ] /fable-real reviewer chốt cuối +- [ ] hmw Opus-5-MAX chạy dry-run hết các wave theo Plan cha, kiểm từng wave -next: STANDBY — không còn mạch dở. Commit closeout `[CLAUDE] Docs:` đã land LOCAL, 🔴 push CHỜ nghi-thức squash session-end (tránh leak wal:-commit lên origin — bài S119 57×). Khi anh quay lại: việc mới HOẶC đóng L8 (/session-end → bookend @close + MIND @close + đổi nhãn D-ý5 gần-chốt @block-kế). 7 slot treo: (1) FLAG-4 · (2)=(51-bis) · (3) Bảng↔Bản · (4) Hộp thư · (5) 6 FLAG-L · (6)=(46) 17,1K · (7)=(42)(43)(44)(47)(48). +next: hoàn thành mục [!] → lần lượt các [ ] theo thứ tự. Nguồn: FORM = D:\Dropbox\CONG_VIEC\SOLUTION\FORM (8 file — RG-001 ở đây là V02, repo parse Phase 0 cần diff) · QUY_TRINH = D:\Dropbox\CONG_VIEC\SOLUTION\QUY_TRINH (QT TRINH KY 21 bước — đã có extract S157 src-QT-TRINH-KY-HD.txt). Spec cũ: runs/2026-07-28-S157-ke-hoach-ky-ket-hd/spec-ke-hoach-ky-ket-hd-28-07-2026.md (+note W1 @S160). verify: -- [x] closeout: `git log --oneline -7` thấy 5 commit arc-2 + wal:pause · session-log tồn tại `docs/changelog/sessions/2026-07-29-1440-S159-tong-quan-quy-trinh-arc2-bookend.md` · `grep -c '### 84\.' docs/gotchas.md` = 1 -- [x] detector: `governance-detectors.ps1` TOTAL=43 INFORM=5 (baseline khớp S159; 1 MED pre-existing #91@S151-log → drift-audit 08-01) -- prod state chốt: menu 142 · 4-GĐ 6-leaf ×(1 Khkk + 7 Ct) + Hdc 7 "- Bảng cứng" + root 12 + 38-key 13/13 + 21-key mới 13/13 · test 562 · Mig 68/89 bảng · bundle admin `D0sXA0fe`/user `Y6dW_5CM` -- 🔴 KHÔNG SQL tay cho menu — code-first seeder (gotcha #84); comment nêu LUẬT+grep, CẤM số-đếm -- 🔴 drift-audit tháng tới 2026-08-01 (2 ngày) — 6 vai (3 ctx + 3 ring) chưa baseline; ef-core/contract-workflow SKILL derived-stale LOW chờ đợt đó +- [ ] run-folder tồn tại + run.md có verbatim lệnh anh + 2 sub-file invest ghi-đĩa-trong-lúc-làm (chống #53) +- [ ] Plan cha + N spec-wave tồn tại trong run-folder +- 🔴 GATE 5-ANCHOR (HANDOFF): trước thi công MỖI wave mở 5 anchor, ≥1 trượt ⇒ chấm lại toàn bộ — PHẢI nhúng vào Plan cha +- 🔴 An-ninh HĐ (S156 treo "cứ từ từ"): dry-run chạm HĐ ⇒ invest phải khoanh vùng authz, đưa vào spec để review chốt +- prod state: menu 142 · test 562 · Mig 68/89 bảng · bundle admin D0sXA0fe/user Y6dW_5CM diff --git a/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/run.md b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/run.md new file mode 100644 index 0000000..4ee8a1e --- /dev/null +++ b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/run.md @@ -0,0 +1,53 @@ +# run: 2026-07-29-S160-khkk-dryrun-plan — DRY-RUN toàn trình đến Hợp đồng cứng (Plan cha + spec/checklist per-wave) + +> Mở @S160 2026-07-29 ~15:45 (L8 window-2, ngay sau chốt đóng đầu việc arc-2). +> 🔴 Sub-file ghi-đĩa-TRONG-lúc-làm (chống #53). RAW `sub-*` ⟂ VERIFIED `*-synthesis.md`/spec (lead viết). + +## 🔴 LỆNH ANH (verbatim, 2026-07-29 @S160) + +> "Hiện tao quyết định sẽ dry-run luôn cho đến hợp đồng cứng. +> Hợp đồng cứng trong folder D:\Dropbox\CONG_VIEC\SOLUTION\FORM +> Còn quy trình và cách đặt tên: D:\Dropbox\CONG_VIEC\SOLUTION\QUY_TRINH +> Spec vừa rồi build đúng rồi đó. +> Giờ cho 2 /fable-real invest bổ sung lại cái spec củ để chạy dry-run luôn đến hợp đồng cứng -> Ra cái spec-chi-tiết-cách-làm-checklist-cho cụ thể từng wave (Mỗi wave cho 1 spec-chi-tiet-cach-làm cu thẻ và checklist )luôn. (Lập 1 cái plan cha cho cái này luôn). +> /fable-clone review lại. +> /fable-real review lại chốt cuối. +> Sau đó cho Opus 5 MAX chạy hwm dry-run hết các wave ->Dựa vào Plan cha chạy từ spec cụ thể cho từng wave và kiểm tra luôn." + +**Đọc-hiểu chốt (lead):** ① spec KHKK cũ = RATIFIED, chỉ BỔ SUNG không viết lại · ② phạm vi mở rộng: GĐ2 (KHKK, spec cũ W1-W5) **+ GĐ3 Duyệt hợp đồng (b.13→21, verdict LAI = tái dùng Contract V2) + GĐ4 Hợp đồng cứng (`Hdc_*` skeleton → trang thật)** — toàn trình chạy được end-to-end dạng dry-run để mọi người bấm thử + góp ý (khớp ❹ @S159) · ③ deliverable đợt này: **1 Plan cha + mỗi wave 1 spec-chi-tiết-cách-làm + checklist** · ④ lệnh này ĐỒNG THỜI là lời giải cho gate "Wave 5 chạm HĐ ⇒ hỏi lại anh" (HANDOFF) — anh chủ động mở; riêng LỖ HỔNG authz S156 vẫn phải khoanh vùng đưa vào spec cho review chốt, KHÔNG tự coi là được sửa hay được bỏ qua. + +## Nguồn PIN + +| Nguồn | Path | Ghi chú | +|---|---|---| +| Spec KHKK cũ (RATIFIED) | `runs/2026-07-28-S157-ke-hoach-ky-ket-hd/spec-ke-hoach-ky-ket-hd-28-07-2026.md` | +NOTE W1 @S160 (Khkk_* tái dùng, dark-launch ĐẢO) | +| QT trình ký 21 bước | `runs/2026-07-28-S157-ke-hoach-ky-ket-hd/src-QT-TRINH-KY-HD.txt` (14.425B) | extract S157 từ QUY_TRINH docx | +| FO-002.01 Bảng kiểm tra HĐ | `runs/2026-07-28-S157-ke-hoach-ky-ket-hd/src-FO-002.01-bang-kiem-tra-HD.txt` (21.287B) | checklist per-phòng | +| RG-001 **v02** mã số HĐ | `runs/2026-07-29-S160-khkk-dryrun-plan/src-RG-001-v02-ma-so-hd.txt` (2.907B) | extract @S160 — DIFF với forms-spec/codegen repo (repo parse Phase 0) | +| Catalog 8 form | `docs/forms-spec.md` + FORM folder (6 template .doc/.docx/.xlsx còn lại) | form-engine đã render 8 form | +| Verdict LAI b.7→21 | STATUS ✅S155→S158 mục ② | b.13→21 TÁI DÙNG Contract V2 · b.7→12 DỰNG MỚI | + +## taskList snapshot + +| # | Stage | Vai / cách | Trạng thái | +|---|---|---|---| +| 1 | Scaffold + extract RG-001 v02 | lead | [x] | +| 2 | invest lane-1: NGUỒN/QUY-TRÌNH GĐ3-GĐ4 (b.13→21 chi tiết + RG-001 v02 diff + FO-002.01 checklist-map + "hợp đồng cứng" = gì cụ thể) | `/fable-real investigator-codebase` #1 | [ ] | +| 3 | invest lane-2: CODEBASE dry-run map (PE→KHKK→Contract→Hdc gap-map + reuse Contract V2 + authz khoanh vùng + dry-run mode + wave structure đề xuất) | `/fable-real investigator-codebase` #2 | [ ] | +| 4 | Plan cha + spec-chi-tiết + checklist per-wave | lead (từ 2 invest + spec cũ) | [ ] | +| 5 | Review ensemble | `/fable-clone reviewer` | [ ] | +| 6 | Review chốt cuối | `/fable-real reviewer` | [ ] | +| 7 | hmw Opus-5-MAX chạy dry-run từng wave theo Plan cha + kiểm | hmw (worker-tier-pin) | [ ] | + +## Ràng buộc mang theo (từ sổ bền) + +- 🔴 **GATE 5-ANCHOR** (HANDOFF, reviewer đề @S157): trước thi công MỖI wave mở 5 anchor bất kỳ; ≥1 trượt ⇒ chấm lại TOÀN BỘ anchor wave đó. → nhúng vào Plan cha. +- 🔴 **Authz HĐ** (S156): `ContractWorkflowService.cs:48-66` Reject-trước-guard + `ContractsController.cs:13` `[Authorize]` trần 22 endpoint ghi — dry-run mở menu cho mọi người ⇒ phải khoanh vùng + đề phương án trong spec (review chốt quyết). +- 🔴 **KHÔNG SQL tay cho menu** (gotcha #84) — mọi thay đổi menu/permission qua seeder. +- 🔴 Khkk_* + Hdc_* skeleton ĐÃ TỒN TẠI prod (arc-2) — tái dùng, ComingSoon → trang thật; seeder skip-existing. +- Acceptance đo-được kiểu spec cũ: pin N + TÊN test (H5), tránh literal tự-lão-hoá (neo TÍNH-CHẤT). + +## Stages + +- [x] 1. scaffold + extract (15:45-15:50) +- [!] 2+3. 2 lane `/fable-real investigator-codebase` model=fable PHÓNG SONG SONG ~15:55 (lane-1 nguồn GĐ3-GĐ4 → `sub-investigator-codebase-1.md` · lane-2 codebase map → `sub-investigator-codebase-2.md` — cả 2 ghi-đĩa-trong-lúc-làm, kết bằng END+TOTAL line) diff --git a/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/src-RG-001-v02-ma-so-hd.txt b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/src-RG-001-v02-ma-so-hd.txt new file mode 100644 index 0000000..6b54508 --- /dev/null +++ b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/src-RG-001-v02-ma-so-hd.txt @@ -0,0 +1,57 @@ +# EXTRACT: SOL-CCM-RG-001.v02 QD ma so hop dong.docx (extract @S160 2026-07-29, khuon S157) + +QUY ĐỊNH/REGULATION: +Số hợp đồng/Contract code: +Số hợp đồng bao gồm các thông tin sau đây: +The contract code shall include the following information: +A/B/SOL&C/D +Code dự án hoặc Năm đối với hợp đồng dịch vụ/nguyên tắc +Project Code or Year for service contract or framework contract +Tên viết tắt loại hợp đồng: +Contract Type Abbreviation: +HĐTP: hợp đồng Thầu phụ/Sub-contractor contract +HĐGK: hợp đồng Giao khoán/Đội thi công/Nhân công cơ hữu +Freelance contract /Team/Worker +NCC: hợp đồng Nhà cung cấp/Supplier contract +HĐDV: hợp đồng Dịch vụ/Service contract +Tên viết tắt của TP/NCC/TĐ/NC/ĐVDV +Abbreviation of the TP/NCC/TĐ/NC/ĐVDV +Số thứ tự hợp đồng sẽ đươc đánh số tăng dần bắt đầu từ 01 +Contract shall be numbered sequentially in ascending order, starting from 01 +Ví dụ/Example: +Số đơn đặt hàng (theo Hợp đồng Nguyên tắc)/Purchasing Order code (follow Framework Contract): +Số đơn hàng bao gồm các thông tin sau đây: +The Purchasing Order code shall include the following information: +X/Y/PO Z +Code dự án +Project code +Tên viết tắt của NCC +Abbreviation of NCC name +Số thứ tự PO và sẽ đánh số tăng dần bắt đầu từ 01 +PO shall be numbered sequentially in ascending order, starting from 01 +Ví dụ/Example: +Số đơn đặt hàng (không theo Hợp đồng Nguyên tắc)/Purchasing Order code (not follow Framework Contract): +Số đơn hàng bao gồm các thông tin sau đây: +The Purchasing Order code shall include the following information: +A/PO/SOL&C/D +Code dự án +Project code +Tên viết tắt của TP/NCC/ĐVDV +Abbreviation of TP/NCC/ĐVDV +Số thứ tự PO và sẽ đánh số tăng dần bắt đầu từ 01 +PO shall be numbered sequentially in ascending order, starting from 01 +Ví dụ/Example: + +--- TABLE 1 --- + | Hợp đồng TP / Sub-contractor contract | : | FLOCK 01/HĐTP/SOL&HD/01 + | Hợp đồng Giao khoán/TĐ/NC / Freelance/Team/Worker contract | : | FLOCK 01/HĐGK/SOL&PVL/01 + | Hợp đồng NCC cấp riêng từng dự án / Supplier contract for each Project | : | FLOCK 01/NCC/SOL&CC1/01 + | Hợp đồng nguyên tắc Nhà cung cấp / Supplier framework contract | : | 2026/NCC/SOL&AKATI/01 + | Hợp đồng ĐVDV cấp riêng từng dự án / Service Provider contract for each project | : | FLOCK 01/HĐDV/SOL&KG/01 + | Hợp đồng nguyên tắc ĐVDV / Service provider framework contract | : | 2026/HĐDV/SOL&TTL/01 + +--- TABLE 2 --- + | Đơn hàng vật tư, thiết bị / Purchase Order for Material and Equipment | : | FLOCK 01/TRUNGDUNG/PO 01 + +--- TABLE 3 --- + | Đơn hàng với TP/NCC/ĐVDV / Purchase Order for TP/NCC/ĐVDV | : | FLOCK 01/PO/SOL&PVL/01 \ No newline at end of file diff --git a/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/sub-investigator-codebase-1.md b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/sub-investigator-codebase-1.md new file mode 100644 index 0000000..79aa216 --- /dev/null +++ b/.claude/workflows/runs/2026-07-29-S160-khkk-dryrun-plan/sub-investigator-codebase-1.md @@ -0,0 +1,30 @@ +# 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ữ | + +(tiếp tục append bên dưới)