Files
solution-erp/.claude/skills/contract-workflow/SKILL.md
pqhuy1987 25dad7f36f [CLAUDE] Scaffold: khoi tao SOLUTION_ERP Phase 0
- .NET 10 Clean Architecture: Domain/Application/Infrastructure/Api (4 project)
- 2 React + Vite + TS app: fe-admin (:8082), fe-user (:8080) voi proxy /api
- Node engines >=20, .nvmrc = 20 cho CI (bai hoc NamGroup)
- SQL Server 2022 qua docker-compose (dev)
- Parse 8 FORM -> docs/forms-spec.md (catalog + ma HD format RG-001)
- Parse QUY_TRINH -> docs/workflow-contract.md (9 phase state machine + role matrix)
- docs: CLAUDE.md, STATUS.md, PROJECT-MAP.md, migration-todos.md (roadmap 5 phase)
- .claude/skills: 3 placeholder (contract-workflow, form-engine, permission-matrix)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 10:37:34 +07:00

1.6 KiB
Raw Blame History

name, description, when-to-use
name description when-to-use
contract-workflow State machine 9 phase cho hợp đồng TP/NCC/Tổ đội — guard rule, SLA auto-approve, role × phase matrix. Dùng khi debug transition, approve HĐ, xử lý HĐ quá hạn.
transition contract
chuyển phase hợp đồng
HĐ quá hạn auto-approve
role không duyệt được
reject contract về draft

Contract Workflow Skill

Phase 3 deliverable. Hiện tại skill này là PLACEHOLDER — sẽ được expand khi implement Phase 3.

Context

Xem đầy đủ ở docs/workflow-contract.md:

  • 9 state: DangChonDangSoanThaoDangGopYDangDamPhanDangInKyDangKiemTraCCMDangTrinhKyDangDongDauDaPhatHanh (+ TuChoi)
  • SLA mỗi phase: Draft 7d, GópÝ 7d, ĐàmPhán 7d, InKý 1d, CCMCheck 3d, BOD 1d
  • Role × Phase matrix (Drafter, TBP/TPB, PD/PM, PRO/EQU/FIN/ACT, CCM, BOD/NĐUQ, HRA)

Code pointers (sẽ có sau Phase 3)

  • src/Backend/SolutionErp.Domain/Contracts/ContractPhase.cs (enum)
  • src/Backend/SolutionErp.Domain/Contracts/Contract.cs (aggregate root)
  • src/Backend/SolutionErp.Application/Contracts/Services/IContractWorkflowService.cs
  • src/Backend/SolutionErp.Infrastructure/HostedServices/SlaExpiryJob.cs

Common pitfalls (dự kiến — update khi build)

  • Không check bypass flag khi HĐ với Chủ đầu tư → sẽ reject oan ở CCM phase
  • Gen mã HĐ trước khi BOD approve → có thể waste số thứ tự nếu reject sau đó
  • Auto-approve chạy trong transaction dài → lock table → timeout