Files
solution-erp/.claude/workflows/runs/2026-07-29-S161-khkk-w2-crud/w2-synthesis.md
2026-07-29 21:34:37 +07:00

3.0 KiB
Raw Blame History

W2-SYNTHESIS — Wave W2 KHKK: CRUD phiếu nháp + căn cứ b.8-9 + FE 3 page ×2 app (S161, 2026-07-29) — VERIFIED

Lead-verified synthesis (đóng run). Chi tiết: 4 sub-md + cicd-verify cùng cấp.

KẾT QUẢ: W2 SHIP PROD — cicd VERDICT=PASS 6/6, commit 6cbc6ad (20 file, +5.020/23)

  • BE: mega-file ContractSigningPlanFeatures.cs (Create 4-rào + auto-Lines snapshot per-winner + MaKeHoach @CREATE + UpdateDraft null-safe + Get/List/inbox-precompute-V2/deleted + Dossier + Attachments + Delete allow-list M6 + picker) + Controller 15 action policy per-action 15/15. 4 quyết D1-D4 lane khai → lead duyệt cả 4.
  • FE: 3 page + types ×2 app SHA-pair · 6 leaf Khkk_* hết ComingSoon · WfView 2-app-2-đường (user=matrix?type=10 whitelist+10 · admin=Designer deep-link) · root KeHoachKyKet/khkk/list.
  • Test: 566 → 574/0 (+8: 2 PIN + 6 acceptance — authz reflection ĐỘNG + không-đốt-mã-khi-409 + fixture-có-interceptor).
  • Review: PWF 12 finding (3 CRIT · 5 MAJ · 4 MIN)11 FIXED cùng lượt + 1 GIỮ (F-10). Prod: picker trả PE thật PE/2026/A/045 — đường ống sống end-to-end.

BÀI ĐẮT NHẤT WAVE — "hợp-đồng 2-lane-song-song vỡ 6 điểm, mọi máy xanh"

2 lane viết FE↔BE song song từ CÙNG spec ⇒ 6 điểm đứt (route picker · peId body · dossier planId · PUT-vs-POST · peTenGoiThau · winnerSupplierNames) mà tsc + build + 574 test đều KHÔNG thấy; F-1/F-6 còn che nhau (mảng rỗng do 404 làm crash chưa lộ). Lập luận D1 của BE ("FE đọc cùng spec sẽ khớp") = lời khai là giả định, không phải phép đo — FE thực tế theo convention repo. ⇒ Luật cho wave sau: spec-là-hợp-đồng chưa đủ — sau khi 2 lane land phải có bước ĐỐI CHIẾU ROUTE+FIELD từng cái trên đĩa (reviewer trục-1 chính là bước đó; cân nhắc đưa thành checklist §③ chuẩn cho W3/W5/W6/W7).

An ninh: F-8/F-9 vá — "list bịt mà detail mở = rào thành UX"

Detail + download/view 0-rào trong khi twin PE có guard + luật nháp-riêng-tư S89 ⇒ EnsureCanViewAsync (owner ∥ Admin ∥ [rời-nháp ∧ wf-approver]) áp 2 site.

VẬN HÀNH — #53: 4/4 lượt spawn chết, THIỆT HẠI 0 BYTE

BE 16.5KB sub-md (tự mở 5 anchor + grep-cùng-lớp 3 site khi lead giao 1) · FE 4.5KB + 4 file land · test 3KB + 8 test land · reviewer 13.9KB ghi-từng-trục · cicd 7.9KB tới PHÉP 4. Mọi phần đuôi = lead solo theo sub-md. Ghi-đĩa-từng-mục tiếp tục là biến số quyết định.

TỒN SANG WAVE SAU

  1. F-10 upload/delete-attachment no-owner-check = lỗ CHUNG khuôn PE → bịt ĐỒNG BỘ 2 module 1 đợt riêng — cần anh gật (đụng PE prod).
  2. Dựng tay workflow type-3 + type-10 3-trạm qua Designer (trước W5; type-10 giờ dựng được — prod đã nhận type 10, picker có PE chờ).
  3. Tài khoản UAT non-Admin (carry từ W1).