# 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ó

| Skill | Mục đích | Trigger ví dụ | Trạng thái |
|---|---|---|---|
| `contract-workflow` | State machine 9 phase, role × phase guard, SLA timer, auto-approve | "approve contract", "chuyển phase", "auto-approve quá hạn" | 📝 Placeholder (Phase 3) |
| `form-engine` | Render template docx/xlsx, parse 8 form, field mapping, PO generator | "export contract as word", "điền form", "render template" | 📝 Placeholder (Phase 2) |
| `permission-matrix` | Role × MenuKey × CRUD, seed, reset password, 3-layer resolution | "permission denied", "gán role", "menu không hiện" | 📝 Placeholder (Phase 1) |

## Format chuẩn 1 skill

Mỗi skill là 1 folder với ít nhất `SKILL.md` + optional `examples/` + `references/`:

```
.claude/skills/<skill-name>/
├── SKILL.md                  ← Entry point: description, when-to-use, workflow
├── examples/                 ← Code snippets mẫu
│   └── *.cs | *.tsx
└── references/               ← Link đến file code thật, docs
```

**Frontmatter `SKILL.md`:**

```markdown
---
name: contract-workflow
description: State machine 9 phase cho hợp đồng — guard rule, SLA, auto-approve
when-to-use:
  - "approve contract"
  - "state machine bug"
  - "SLA expired"
---

# Contract Workflow Skill

## Context
...

## Workflow
...

## Code pointers
- `src/Backend/SolutionErp.Domain/Contracts/ContractPhase.cs`
- `src/Backend/SolutionErp.Application/Contracts/Commands/TransitionContractCommand.cs`
```

## Tạo skill mới — checklist

1. Tạo folder `.claude/skills/<kebab-case-name>/`
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. Commit `[CLAUDE] Skill: add <name>`
