Some checks failed
Deploy SOLUTION_ERP / build-deploy (push) Has been cancelled
Verdict sản phẩm: `998ea55` (KHKK 3-panel mirror Duyệt NCC) = PASS. Test-gate #447 644/644 Failed 0 khớp baseline tách-phần Δ0 · bundle 4/4 rotate khớp log CI tới byte · 2 endpoint MỚI 401 · mig repo 71 = prod 71 set-diff 0/0 hai chiều, tables 97 · smoke 8/8. Không rollback, prod khoẻ. Chân #44/#85 đóng bằng đo — nấc cũ "credential UAT chết" SAI (tra nhầm account đời cũ; bộ sống ở HANDOFF slot 64). Phạm vi = 2 tổ-hợp vai (Drafter+Procurement · CostControl+DeptManager); CHƯA loại nhánh vai thường khác vẫn 403 — siết 5 site/3 file sau ring2 ESCALATE-1. Bookend-close 5 vòng / 11 sub → runs/2026-08-05-S172-bookend-close/: H1 DRIFT 7 · H2 GATE-HOLD 6 · lead-stale 9 FLAG(SÀN)+1 ESCALATE · lead-gap 8 FLAG(3 HIGH) · ring1 67/69 · ring2 ĐẠT 17/17 · trio MIXED → 2 action/15 bác → MIXED-PASS 50/59 · ctx-audit TRUOT 3 FLAG. Vá stale @closeout: - STATUS:479 bundle hash (stale 2 phiên, lần 2 cùng ô) → Ajv-MaCz/YsXRkBSR - STATUS:6 counter 42→46, deep 2/15→6/15; Recently Done S171-S172 - HANDOFF segment @S172: E-7 + 5 acceptance có nhà (trước đó 0 hit/6 sổ bền), carry re-stamp sau 4 phiên bỏ, 4 site neo tuyệt đối (1 site sai DẤU), slot 67-72 - skills/README ×2 ổ số cứng nằm cạnh chính con trỏ B1 - gotcha #87 (mã pre-auth 411/415 trả lời sai câu hỏi authz) - run.md S171 hết mồ côi (0→4 hit) · 8 dir rỗng mis-land đã dọn - MIND-3 neo xuất xứ sai 2 trường (ts tương lai + HEAD stale) — ctx-audit F-1 §L.c completeness-gate: vòng 4/5 (V4 không-nhịp) | phép ĐẠT 2 / TRƯỢT 2 / vacuous 0. 2 TRƯỢT cùng một bệnh: S169·S170·S171 chạy xong mà 0 session-log durable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
92 lines
4.3 KiB
Markdown
92 lines
4.3 KiB
Markdown
# 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 + Phase 6 cross-ref PE workflow |
|
||
| `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/PurchaseEvaluations | "permission denied", "gán role", "menu không hiện", "inherit permission" | ✅ Active (Phase 6 +Pe_*/PeWf_*) |
|
||
|
||
### 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, migration history (mới nhất → row cuối bảng skill; số → `docs/STATUS.md`) | "thêm migration", "EF migration", "schema update", "snapshot lỗi" | ✅ Updated S168 (`ff7f655`) · nội-dung tới row Mig cuối hiện hành — **soát @S172**; số bảng + số Mig → `docs/STATUS.md` (B1, KHÔNG neo số ở ô này) |
|
||
| `iis-deploy-runbook` | 3 IIS site + win-acme cert + gitea-runner + LibreOffice + debug 500/502/SignalR prod + **G-084 IPv4/IPv6 hardening** | "prod 500", "IIS fail", "cert hết hạn", "restart app pool", "deploy IIS", "port hijack" | ✅ Updated (G-084) |
|
||
|
||
## 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 (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/<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. Update `docs/CLAUDE.md` (dòng skill count)
|
||
5. Commit `[CLAUDE] Skill: add <name>`
|
||
|
||
## 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] <scope>: ...`
|
||
- 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` — bẫy đã gặp (**số + các mục mới nhất → `docs/STATUS.md`** — B1, KHÔNG chép digest ở đây: bản sao thối im lặng, gỡ @S172 sau khi đo lệch 7 mục)
|
||
- `docs/changelog/migration-todos.md` — roadmap 5 phase + Tier 3
|