[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>
This commit is contained in:
pqhuy1987
2026-04-21 10:37:34 +07:00
commit 25dad7f36f
69 changed files with 3616 additions and 0 deletions

View File

@ -0,0 +1,34 @@
---
name: form-engine
description: Template engine render 8 form hợp đồng ra .docx/.xlsx giống 100% mẫu gốc. Gen mã HĐ theo RG-001. Dùng khi export HĐ, upload template mới, debug render lỗi format.
when-to-use:
- "export contract to word"
- "render template docx"
- "xuất đơn đặt hàng excel"
- "gen mã hợp đồng"
- "upload template mới"
---
# Form Engine Skill
> **Phase 2 deliverable.** Hiện tại skill này là PLACEHOLDER.
## Context
Xem đầy đủ ở [`docs/forms-spec.md`](../../../docs/forms-spec.md):
- 8 form (6 .docx/.doc + 1 .xlsx + 1 .docx quy định)
- Mã HĐ format theo SOL-CCM-RG-001: `{Project}/{Type}/SOL&{Partner}/{Seq}` và biến thể
- 3 file `.doc` cần convert qua Word COM / LibreOffice headless trước khi parse
## Tech stack dự kiến
- **.docx render:** DocumentFormat.OpenXml (free, verbose) hoặc Aspose.Words (phí, dễ)
- **.xlsx render:** EPPlus (free non-commercial) hoặc ClosedXML (free)
- **PDF preview:** wkhtmltopdf hoặc LibreOffice `--convert-to pdf`
## Code pointers (sẽ có sau Phase 2)
- `src/Backend/SolutionErp.Application/Forms/Services/IFormRenderer.cs`
- `src/Backend/SolutionErp.Infrastructure/Forms/DocxRenderer.cs`
- `src/Backend/SolutionErp.Infrastructure/Forms/XlsxRenderer.cs`
- `src/Backend/SolutionErp.Infrastructure/Services/ContractCodeGenerator.cs`