# Skill Library — SOLUTION_ERP Skill này là tài liệu chuyên biệt để Claude (và developer khác) dùng khi cần deep-dive 1 domain area. Claude tự động invoke qua Skill tool dựa trên semantic matching với `description` trong từng `SKILL.md`. ## Skills hiện có ### Domain skills (logic nghiệp vụ) | Skill | Mục đích | Trigger ví dụ | Trạng thái | |---|---|---|---| | `contract-workflow` | State machine 9 phase + versioned workflow per ContractType + role × phase guard + SLA + auto-gen mã HĐ RG-001 | "approve contract", "chuyển phase", "versioned workflow", "HĐ cũ giữ cũ" | ✅ Tier 3 updated | | `form-engine` | Render template docx/xlsx + FieldSpec JSON + DynamicForm + PDF export LibreOffice | "export contract as word", "điền form", "render template", "PDF export" | ✅ Active | | `permission-matrix` | Role × MenuKey × CRUD + seed + 3-layer resolution + inherit Contracts/Workflows | "permission denied", "gán role", "menu không hiện", "inherit permission" | ✅ Active | ### Ops/infra skills (devops + security + schema) | Skill | Mục đích | Trigger ví dụ | Trạng thái | |---|---|---|---| | `dependency-audit-erp` | Scan CVE NuGet + npm 2 FE, respect pin constraint (MediatR 12.4.1, Swashbuckle 6.9.0) | "npm audit", "dotnet vulnerable", "deps scan", "nâng cấp package" | ✅ New Tier 3 | | `ef-core-migration` | Tạo/revert EF Core 10 migration, 3-file rule, DesignTimeDbContextFactory, 8 migration history | "thêm migration", "EF migration", "schema update", "snapshot lỗi" | ✅ New Tier 3 | | `iis-deploy-runbook` | 3 IIS site + win-acme cert + gitea-runner + LibreOffice + debug 500/502/SignalR prod | "prod 500", "IIS fail", "cert hết hạn", "restart app pool", "deploy IIS" | ✅ New Tier 3 | ## Format chuẩn 1 skill Mỗi skill là 1 folder với ít nhất `SKILL.md` + optional `examples/` + `references/`: ``` .claude/skills// ├── SKILL.md ← Entry point: description, when-to-use, workflow ├── examples/ ← Code snippets mẫu (optional) │ └── *.cs | *.tsx └── references/ ← Link đến file code thật, docs (optional) ``` **Frontmatter `SKILL.md` (BẮT BUỘC `when-to-use` để skill auto-trigger):** ```markdown --- name: skill-name-kebab-case description: 1-3 câu mô tả skill làm gì + stack specificity (để embedding match chính xác) when-to-use: - "trigger phrase 1" - "trigger phrase 2" - "keyword tiếng Việt" --- # Skill Name ## Context ... ## Workflow / Commands ... ## Pitfalls ... ## Code pointers - `path/to/file.cs` ``` ## Tạo skill mới — checklist 1. Tạo folder `.claude/skills//` 2. Viết `SKILL.md` với frontmatter + sections: Context / Workflow / Code pointers / Common pitfalls 3. Add row vào bảng "Skills hiện có" phía trên 4. Update `docs/CLAUDE.md` (dòng skill count) 5. Commit `[CLAUDE] Skill: add ` ## Nguyên tắc design skill **PROJECT-SPECIFIC, không clone generic:** - Skill user-level global đã có sẵn (`code-reviewer`, `sql-database-assistant`, `focused-fix`, ...) - Skill project-level phải encode kiến thức SOLUTION_ERP-only mà generic không có: - Commit convention `[CLAUDE] : ...` - Path pattern `src/Backend/SolutionErp.*/...` - Pin constraint (MediatR 12.4.1, Swashbuckle 6.9.0, TypeScript 6 erasableSyntaxOnly) - Gotcha-referenced (dẫn chiếu `docs/gotchas.md#N`) - Workflow Vietnamese-first **Keep it actionable:** - Commands copy-pastable (không pseudocode) - Paths đầy đủ (không `src/...`) - Version pinned (không "latest") - Dẫn chiếu gotcha/migration # cụ thể ## Related - `docs/CLAUDE.md` — quick rules + full stack context - `docs/gotchas.md` — 32 bẫy đã gặp - `docs/changelog/migration-todos.md` — roadmap 5 phase + Tier 3