Files
solution-erp/.claude/workflows/runs/2026-07-29-S161-khkk-w3-duyet/run.md
2026-07-29 21:34:37 +07:00

2.7 KiB
Raw Blame History

RUN — W3 KHKK: Duyệt 3 trạm + finalize chốt giá (S161, 2026-07-29) 🔴 wave nặng nhất

Wave 3/6. Spec: ../2026-07-29-S160-khkk-dryrun-plan/spec-wave-w3-duyet-3-tram-29-07-2026.md. W1 a8027c0 + W2 6cbc6ad ĐÃ SHIP (cicd PASS 6/6 ×2). Gate 5-anchor PASS 5/5 @S161 (ApproveV2Async:217 [🔴 path = Infrastructure/Services] · OR-of-N :259-260 · UPSERT :292-296 + "(duyệt — không ý kiến)" · ApprovalWorkflow.cs :95/:116-125 · RULE khuôn ContractFeatures :356-360). 🔴 TEST-BEFORE BẮT BUỘC (critical algo OR-of-N) ⇒ 3 đợt: skeleton → 6 test RED → implement GREEN. 🔴 HỢP-ĐỒNG TRANSITIONS (LEAD định nghĩa — bài W2 6-điểm-đứt; 2 lane implement đúng LITERAL): POST /api/contract-signing-plans/{id}/transitions · policy KeHoachKyKet.Update body { "action": "submit"|"approve"|"return"|"reject", "comment": string|null } response 200 { "phase": int, "currentWorkflowStepIndex": int|null, "currentApprovalLevelOrder": int|null }

taskList snapshot

# Stage Vai Trạng thái
1 Đợt-1a: BE SKELETON — interface IContractSigningPlanWorkflowService.TransitionAsync + impl throw-stub + DI + endpoint transitions (build xanh, 0 logic) hmw implementer-backend [ ]
2 Đợt-1b: FE panel ×2 app — workflow panel ✓/●/○ + banner đến-lượt-bạn + nút Gửi/Duyệt/Trả/Từ-chối + ô ý kiến (POST theo HỢP-ĐỒNG trên) hmw implementer-frontend [ ]
3 Đợt-2: test-specialist — 6 test SÀN tên PIN (spec §③-B) chạy RED (skeleton throw) + record RED output hmw test-specialist [ ]
4 Đợt-3: BE IMPLEMENT — copy ApproveV2Async:217-394 adapt 3 chỗ (choke-point 2-write-path + KHÔNG port 2 đường sớm + TraLai) + LogSigningPlanTransition KHKK-riêng (CẤM IChangelogService — FK-547) + guard trình + notify Cấp-kế → 6 test GREEN hmw implementer-backend [ ]
5 Lead: suite + build ×2 + acceptance sweep lead [ ]
6 Reviewer adversarial (transitions = financial/security) reviewer [ ]
7 Commit + push + cicd lead + cicd-monitor [ ]

Ràng buộc

  • 🔴 CẤM copy ProposalFeatures (flatten :427-439 phá OR-of-N) — nguồn = ContractWorkflowService.
  • 🔴 Choke-point helper ApplyApprovedValuesOnFinalize gọi CẢ 2 write-path (duyệt-cấp-cuối + admin-override :190-193 gán-qua-biến) + RULE-comment khuôn :356-360.
  • 🔴 CẤM IChangelogService.LogWorkflowTransitionAsync (FK ContractId Cascade → 547 runtime, compiler không chặn).
  • 🔴 KHÔNG port AllowApproverFinalize/SkipToFinal/CeoApprovalThreshold (anh phán "PHÁ VỠ" S155; W1 đã rào 3 tầng).

Stages

(cập nhật theo tiến độ)