From 7cf5dcfd0b0eb292ba41d2b6392ffc4fb7f1f0b4 Mon Sep 17 00:00:00 2001 From: pqhuy1987 Date: Fri, 14 Aug 2026 01:42:18 +0700 Subject: [PATCH] wal: flush 20260814T0142 --- .claude/WAL.md | 6 ++- .../spec-hd-thauphu-2form-13-08-2026.md | 46 +++++++++++++++++++ .../sub-implementer-backend-1.md | 37 +++++++++++++++ .../sub-implementer-frontend-1.md | 26 +++++++++++ .../sub-office-document-2.md | 32 +++++++++++++ 5 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 .claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-backend-1.md create mode 100644 .claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-frontend-1.md create mode 100644 .claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-office-document-2.md diff --git a/.claude/WAL.md b/.claude/WAL.md index ef26f523..7791e12f 100644 --- a/.claude/WAL.md +++ b/.claude/WAL.md @@ -22,7 +22,11 @@ chain: [!] 3 finding CRITICAL đổi kế hoạch: R2-F4 W2⟂W3 TRANH cùng cột DraftData (phải chốt schemaVersion TRƯỚC W2) · R3-F6 chuỗi VAT của spec SAI (ChuaVat là cột chết ⇒ câu (100) hỏi sai khuôn, ĐÃ đính chính với anh) · R3-F7 bảng giá Σ PeReferenceAmount ⟂ ô Giá trị Σ ApprovedAmount ⇒ HĐ tự mâu thuẫn tiền, Dev 2/2 lệch [!] R3-F5b: 5/8 ô master IN TRẮNG (TK 83% · người đại diện 83% · chủ đầu tư 93% · địa điểm 93% rỗng) ⇒ pre-fill chạy đúng mà ra HĐ trống — lớp "cơ-chế đúng, dữ-liệu không có" lần thứ N [!] 5 câu CHỜ ANH cho YC-032 — (97) 12 điều thiếu · (98) in bằng gì · (99) khoá · (100) VAT ĐÃ SỬA KHUÔN thành hỏi quy-ước-nhập-liệu · (101) đánh số menu -[ ] sau r4: lead vá spec theo 28+ finding rồi mới fan-out Opus 5 MAX (CẤM giao thợ bản spec chưa vá — acceptance 2/5 hỏng) +[x] owner phán 5/5 câu (YC-033 + YC-034): (97) PHẦN 2 = 002.04 đặt CUỐI · (99) khoá BẤT-KHẢ-ĐẢO, quy trình duyệt để sau · (100) chưa VAT, để sau · (101) uỷ quyền lead → 01A/01B giữ 02-07 · (102) nhân viên upload, quy trình để sau +[x] lead đo lại 002.04 bằng thước ĐÃ VÁ (control-dương 3/3 CO sau khi sửa lỗi nối-mảnh-bằng-dấu-cách): vẫn 5 điều/40 đoạn/6.929 chữ, 12 tên điều 0 hit ⇒ chặn gỡ bằng THU HẸP PHẠM VI không phải tìm ra đủ +[x] spec §⑥ bản thi công: lược đồ DraftData {schemaVersion,kind,body,paymentTerms} gỡ B-1 · 4 nợ đã-biết khai rõ · G1-G5 thay đồ thị cũ +[!] wf: wf_4ce77f41-0ea G1 3 lane (impl-be tách 17 site · impl-fe 4 bản TYPE_CODE_TO_INT + 2 mirror · office convert 2 .doc→.docx + bản chữ chuẩn) — chết giữa ⇒ /tiep §4 theo sub-*.md +[ ] sau G1: G2 document-view (PHẦN 1 riêng ×2 + PHẦN 2 chung cuối) → G3 pre-fill → G4 in+khoá → G5 verify/deploy [ ] sau review: lead tổng hợp → fan-out Opus 5 MAX thi công theo wave [!] 7 câu (90)-(96) CHỜ CHỦ DỰ ÁN — 0 đáp; nhà CANONICAL = docs/HANDOFF.md khối (90)-(96) [!] residual-write 2 vai/2 phiên (score-counter S192 · score-count-auditor S189+S192) — GIỮ+KHAI theo LT3 bậc-2, chờ owner lật diff --git a/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/spec-hd-thauphu-2form-13-08-2026.md b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/spec-hd-thauphu-2form-13-08-2026.md index 9548e6f0..a088379e 100644 --- a/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/spec-hd-thauphu-2form-13-08-2026.md +++ b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/spec-hd-thauphu-2form-13-08-2026.md @@ -218,3 +218,49 @@ B-4 (authz đính kèm) ──→ W5 | (100) VAT | ❌ **SAI KHUÔN** (S-4) | → *"giá nhập ở Duyệt NCC là **đã gồm** hay **chưa gồm** VAT?"* | | (101) đánh số menu | ✅ giữ | giữ nguyên | | — | 🔴 **QUÊN HỎI** | **(102)** *"**ai** được bấm upload bản cứng?"* — quyết cả authz (B-4) lẫn cửa GĐ4 | + +--- + +## ⑥ BẢN THI CÔNG — sau khi owner phán 5/5 câu (`YC-033` + `YC-034`, 2026-08-14) + +### ⑥.a — 5 phán quyết của owner + +| Câu | Owner chốt | Hệ quả thi công | +|---|---|---| +| **(97)** PHẦN 2 | *"à có nhé, file này"* → `002.04`; *"cho nó phần cuối là đc"* | document-view = **PHẦN 1 riêng** (`002.02`/`002.03`) **+ PHẦN 2 gắn CUỐI** (`002.04`, **dùng chung 2 loại**). 🔴 Đo lại bằng thước đã vá: `002.04` = **5 điều**, KHÔNG phải 17 ⇒ chặn gỡ bằng **thu hẹp phạm vi**, không phải bằng tìm ra 12 điều | +| **(99)** khoá | *"upload có quy trình duyệt riêng → duyệt nhanh, nhưng đã chốt rồi ko sửa đc"* | Khoá = **BẤT-KHẢ-ĐẢO**, không phải cờ 2 chiều. Quy trình duyệt bản cứng = **để sau** (kèm `(102)`) ⇒ lượt này chỉ dựng **chốt-cứng** | +| **(100)** VAT | *"hiện là chưa VAT nhưng chỗ này để sau"* | KHÔNG dựng xử-lý VAT. Ghi **nợ đã-biết**: thân HĐ ghi *"bao gồm VAT"* mà số đang chưa VAT | +| **(101)** đánh số menu | *"Tùy mày"* | Lead chọn **`01A.` / `01B.`**, giữ nguyên `02.`→`07.` (đánh lại 01→09 sẽ đổi số 6 menu người dùng đang quen; bộ số này đã sửa theo UAT anh Kiệt @S159) | +| **(102)** ai upload | *"cho nhân viên → có quy trình riêng nhưng để sau"* | KHÔNG dựng phân quyền upload lượt này. Lỗ `B-4` (endpoint 0 policy/0 ownership) **giữ KHAI là nợ đang mở** | + +### ⑥.b — Lead chốt lược đồ `DraftData` (gỡ B-1, tiền đề của W2+W3) + +Dev đang **0 row** `DraftData` ⇒ thời điểm rẻ nhất để đặt bao ngoài. Chốt: + +```jsonc +{ "schemaVersion": 1, + "kind": "HD-TP-VT" | "HD-TP-TB", // biết thân nào để render + "body": { "": "" }, // W2 sở hữu + "paymentTerms": { … } // W3 sở hữu — chỗ pe.PaymentTerms đổ về +} +``` +⇒ W2 và W3 **hết tranh cột**: mỗi wave sở hữu một nhánh, đọc/ghi qua nhánh của mình. `schemaVersion` để đổi thân về sau không phải đoán. + +### ⑥.c — Nợ đã-biết (owner đã thấy, CỐ Ý chưa làm — KHÔNG phải bỏ sót) + +1. **VAT** — thân ghi "bao gồm VAT", số chưa VAT · owner: để sau. +2. **Con trỏ chết** — bảng tóm tắt PHẦN 1 trỏ *"xem ĐIỀU 8 / ĐIỀU 12"* của PHẦN 2, mà `002.04` **không có 2 điều đó** · owner chấp nhận đi tiếp. +3. **Authz đính kèm** — upload/xoá 0 policy · 0 ownership · owner: quy trình riêng để sau. +4. **12 điều** của PHẦN 2 theo mục lục · phạm vi thu hẹp còn 5 điều của `002.04`. + +### ⑥.d — Thứ tự thi công CHỐT (thay đồ thị §⑤.f) + +| Nhóm | Việc | Tiền đề | +|---|---|---| +| **G1** *(chạy ngay, song song thật)* | **W1** tách 2 loại (**17 site**, không phải 13) · **⑤.c-1** convert 2 `.doc`→`.docx` + chép `wwwroot/templates` + `UPDATE IsActive=1` + **B-5** vá `ContractTemplates.ContractType` sang 8/9 | 0 | +| **G2** | **W2** document-view (PHẦN 1 riêng ×2 + PHẦN 2 chung ở cuối) + gỡ `draftData:null` **4/4 site** + `MaximumLength` cho `DraftData` | G1 · ⑥.b | +| **G3** | **W3** pre-fill 13 ô + đổi C4 sang `pe.DiaDiem` + vá regression `PaymentTerms` + **B-2** chốt bảng giá đọc số nào để Σ khớp `GiaTri` | G2 | +| **G4** | **W4** print CSS · **W5** khoá bất-khả-đảo (`SealedAt` + cấm xoá/thay file sau chốt) | G2 · G3 | +| **G5** | **W6** reviewer + style ×2 + cicd + runtime-verify | tất cả | + +🔴 **Acceptance đã viết lại** theo §⑤.d — đặc biệt: W1 **KHÔNG** dùng "697 PASS giữ nguyên" (sai by-construction) mà **"697+k, khai k, chỉ được sửa `AwV2DesignerMenuKeyTests` 3 method neo số, cấm xoá/skip"**; W5 **KHÔNG** dùng "upload → sửa ⇒ 409" (PASS sẵn) mà **"xoá file bản cứng ⇒ KHÔNG mở khoá lại"**. diff --git a/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-backend-1.md b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-backend-1.md new file mode 100644 index 00000000..f4780d0d --- /dev/null +++ b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-backend-1.md @@ -0,0 +1,37 @@ +# sub-implementer-backend-1 — G1-BE: tách `01. HĐ Thầu phụ` thành 2 loại (VT / TB) + +Run: `2026-08-13-S194-yc032-hd-thauphu-2form` · lane G1-BE · agent `implementer-backend` + +## 0. Khung + +Tên chốt (dùng chung 3 lane, KHÔNG tự đặt khác): + +| Member | Value | typeCode | Mã họ | Nhãn VN | Form | +|---|---|---|---|---|---| +| `ContractType.HopDongThauPhuVatTu` | 8 | `ThauPhuVatTu` | `HD-TP-VT` | `01A. HĐ Thầu phụ (Nhân công & Vật tư)` | `SOL-CCM-FO-002.02` | +| `ContractType.HopDongThauPhuThietBi` | 9 | `ThauPhuThietBi` | `HD-TP-TB` | `01B. HĐ Thầu phụ (Nhân công & Thiết bị)` | `SOL-CCM-FO-002.03` | +| `ContractType.HopDongThauPhu` | 1 | `ThauPhu` | `HD-TP` | `01. HĐ Thầu phụ` (LEGACY, giữ nguyên) | — | + +Ràng buộc: 0 migration (2 loại mới DÙNG CHUNG bảng `ThauPhuDetails`) · CẤM đụng FE · CẤM đụng `ContractTemplates` seed. + +_(đang thi công — append sau mỗi file)_ + +## 1. Site đã sửa (bảng file:line) + +_(pending)_ + +## 2. Nhánh câm đã bịt + +_(pending)_ + +## 3. Seed menu + workflow + +_(pending)_ + +## 4. Acceptance (lệnh + số thật) + +_(pending)_ + +## 5. Chưa làm được / rủi ro + +_(pending)_ diff --git a/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-frontend-1.md b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-frontend-1.md new file mode 100644 index 00000000..82d19459 --- /dev/null +++ b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-implementer-frontend-1.md @@ -0,0 +1,26 @@ +# sub-implementer-frontend-1 — G1-FE: 2 loai HD Thau phu moi (ThauPhuVatTu=8 / ThauPhuThietBi=9) + +Run: 2026-08-13-S194-yc032-hd-thauphu-2form · lane: implementer-frontend · turn-cap ~35 + +## 0. Khung + +- [ ] Doc spec §6 (ban thi cong) + §5 (va sau review) +- [ ] Grep dem site that (TYPE_CODE_TO_INT / HD-* family / ContractDetailsTab / ContractCreatePage) +- [ ] Sua site +- [ ] Acceptance: npm run build x2 + sha256 pair + grep dem entry + +## 1. Site da sua + +(dang do dia) + +## 2. Dem entry tung ban + +(chua do) + +## 3. Acceptance (lenh + so) + +(chua chay) + +## 4. Ca am / rui ro con lai + +(chua viet) diff --git a/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-office-document-2.md b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-office-document-2.md new file mode 100644 index 00000000..495e5ac4 --- /dev/null +++ b/.claude/workflows/runs/2026-08-13-S194-yc032-hd-thauphu-2form/sub-office-document-2.md @@ -0,0 +1,32 @@ +# sub-office-document-2 — G1 YC-032 · Đưa 2 mẫu HĐ Thầu phụ vào hệ + bản chữ chuẩn + +> Run: `2026-08-13-S194-yc032-hd-thauphu-2form` · Vai: office-document · Ngày: 2026-08-14 +> Trạng thái: 🟡 ĐANG CHẠY (khung rỗng, append dần) + +## 0. Khung + +_(đang điền)_ + +## A1. Convert + đặt file + +_(đang điền)_ + +## A2. Cờ IsActive + +_(đang điền)_ + +## A3. Chất lượng convert + +_(đang điền)_ + +## B. Bản chữ chuẩn (3 file) + +_(đang điền)_ + +## C. Acceptance + control-dương + +_(đang điền)_ + +## D. Trích lỗi / chưa làm được + +_(đang điền)_