@anionzo/skill 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +302 -0
- package/LICENSE +21 -0
- package/README.md +209 -0
- package/adapters/README.md +13 -0
- package/adapters/claude-code/README.md +32 -0
- package/adapters/copilot/README.md +32 -0
- package/adapters/gemini/README.md +32 -0
- package/adapters/generic/README.md +32 -0
- package/adapters/opencode/README.md +32 -0
- package/docs/adapter-guide.md +62 -0
- package/docs/authoring-guide.md +69 -0
- package/docs/design-brief.md +97 -0
- package/docs/knowledge-spec.md +78 -0
- package/docs/research-notes.md +99 -0
- package/docs/skill-spec.md +107 -0
- package/i18n/CONTRIBUTING.vi.md +302 -0
- package/i18n/README.vi.md +209 -0
- package/i18n/adapter-guide.vi.md +62 -0
- package/i18n/authoring-guide.vi.md +69 -0
- package/i18n/design-brief.vi.md +97 -0
- package/i18n/knowledge-spec.vi.md +78 -0
- package/i18n/research-notes.vi.md +99 -0
- package/i18n/skill-spec.vi.md +107 -0
- package/knowledge/README.md +7 -0
- package/knowledge/global/debugging-patterns.md +20 -0
- package/knowledge/global/engineering-principles.md +23 -0
- package/knowledge/global/evidence-before-claims.md +20 -0
- package/knowledge/global/review-heuristics.md +23 -0
- package/knowledge/global/skill-triggering-rules.md +24 -0
- package/knowledge/project/README.md +10 -0
- package/knowledge/working/README.md +10 -0
- package/package.json +43 -0
- package/scripts/sync-platform-files +73 -0
- package/scripts/validate-skills +103 -0
- package/skills/brainstorming/SKILL.md +45 -0
- package/skills/brainstorming/examples.md +61 -0
- package/skills/brainstorming/meta.yaml +23 -0
- package/skills/brainstorming/references/output-template.md +26 -0
- package/skills/bug-triage/SKILL.md +47 -0
- package/skills/bug-triage/examples.md +68 -0
- package/skills/bug-triage/meta.yaml +25 -0
- package/skills/bug-triage/references/output-template.md +26 -0
- package/skills/code-review/SKILL.md +41 -0
- package/skills/code-review/examples.md +77 -0
- package/skills/code-review/meta.yaml +24 -0
- package/skills/code-review/references/checklist.md +34 -0
- package/skills/code-review/references/output-template.md +12 -0
- package/skills/docs-writer/SKILL.md +42 -0
- package/skills/docs-writer/examples.md +108 -0
- package/skills/docs-writer/meta.yaml +22 -0
- package/skills/docs-writer/references/output-template.md +17 -0
- package/skills/feature-delivery/SKILL.md +39 -0
- package/skills/feature-delivery/examples.md +83 -0
- package/skills/feature-delivery/meta.yaml +26 -0
- package/skills/feature-delivery/references/output-template.md +26 -0
- package/skills/planning/SKILL.md +61 -0
- package/skills/planning/examples.md +124 -0
- package/skills/planning/meta.yaml +29 -0
- package/skills/planning/references/output-template.md +37 -0
- package/skills/refactor-safe/SKILL.md +53 -0
- package/skills/refactor-safe/examples.md +96 -0
- package/skills/refactor-safe/meta.yaml +28 -0
- package/skills/refactor-safe/references/output-template.md +37 -0
- package/skills/repo-onboarding/SKILL.md +52 -0
- package/skills/repo-onboarding/examples.md +115 -0
- package/skills/repo-onboarding/meta.yaml +23 -0
- package/skills/repo-onboarding/references/output-template.md +24 -0
- package/skills/using-skills/SKILL.md +108 -0
- package/skills/using-skills/examples.md +79 -0
- package/skills/using-skills/meta.yaml +29 -0
- package/skills/using-skills/references/output-template.md +14 -0
- package/skills/verification-before-completion/SKILL.md +46 -0
- package/skills/verification-before-completion/examples.md +83 -0
- package/skills/verification-before-completion/meta.yaml +26 -0
- package/skills/verification-before-completion/references/checklist.md +7 -0
- package/skills/verification-before-completion/references/output-template.md +16 -0
- package/templates/SKILL.md +29 -0
- package/templates/examples.md +13 -0
- package/templates/meta.yaml +14 -0
- package/templates/output-template.md +11 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🤝 Hướng Dẫn Đóng Góp
|
|
4
|
+
|
|
5
|
+
**Cách đóng góp skill, knowledge, và cải tiến cho thư viện này**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/anionzo/skill/pulls)
|
|
8
|
+
[](../docs/skill-spec.md)
|
|
9
|
+
[](../docs/authoring-guide.md)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
🌐 **[English](../CONTRIBUTING.md)**
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
> 🎯 Cảm ơn bạn đã quan tâm đóng góp! Hướng dẫn này cover mọi thứ bạn cần để thêm hoặc cải thiện skill, knowledge, và tooling trong repo này.
|
|
20
|
+
|
|
21
|
+
### 📋 Mục Lục
|
|
22
|
+
|
|
23
|
+
| | Phần |
|
|
24
|
+
|---|---|
|
|
25
|
+
| 🏁 | [Bắt Đầu Nhanh](#-bắt-đầu-nhanh) |
|
|
26
|
+
| ➕ | [Thêm Skill Mới](#-thêm-skill-mới) |
|
|
27
|
+
| ✏️ | [Sửa Skill Có Sẵn](#️-sửa-skill-có-sẵn) |
|
|
28
|
+
| 📚 | [Đóng Góp Knowledge](#-đóng-góp-knowledge) |
|
|
29
|
+
| 🔌 | [Cập Nhật Adapter](#-cập-nhật-adapter) |
|
|
30
|
+
| ✅ | [Validation & Chất Lượng](#-validation--chất-lượng) |
|
|
31
|
+
| 📐 | [Style & Quy Ước](#-style--quy-ước) |
|
|
32
|
+
| 🔄 | [Quy Trình Pull Request](#-quy-trình-pull-request) |
|
|
33
|
+
| 🚫 | [Những Điều Không Nên Làm](#-những-điều-không-nên-làm) |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### 🏁 Bắt Đầu Nhanh
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 1. Fork và clone repo
|
|
41
|
+
git clone https://github.com/<your-username>/skill.git
|
|
42
|
+
cd skill
|
|
43
|
+
|
|
44
|
+
# 2. Tạo branch mới
|
|
45
|
+
git branch feat/skill-moi
|
|
46
|
+
git checkout feat/skill-moi
|
|
47
|
+
|
|
48
|
+
# 3. Thực hiện thay đổi (xem các phần bên dưới)
|
|
49
|
+
|
|
50
|
+
# 4. Validate
|
|
51
|
+
bash scripts/validate-skills
|
|
52
|
+
|
|
53
|
+
# 5. Sinh platform file
|
|
54
|
+
bash scripts/sync-platform-files
|
|
55
|
+
|
|
56
|
+
# 6. Commit và push
|
|
57
|
+
git add .
|
|
58
|
+
git commit -m "add skill: <ten-skill>"
|
|
59
|
+
git push origin feat/skill-moi
|
|
60
|
+
|
|
61
|
+
# 7. Mở Pull Request trên GitHub
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### ➕ Thêm Skill Mới
|
|
67
|
+
|
|
68
|
+
Mỗi skill nằm trong thư mục riêng dưới `skills/`. Làm theo các bước sau:
|
|
69
|
+
|
|
70
|
+
#### Bước 1 — Scaffold từ template
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
cp -r templates/ skills/<ten-skill>/
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### Bước 2 — Điền `meta.yaml`
|
|
77
|
+
|
|
78
|
+
| Key | Bắt buộc | Mô tả |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| `name` | ✅ | Định danh skill (kebab-case) |
|
|
81
|
+
| `version` | ✅ | Phiên bản semantic (`1.0.0`) |
|
|
82
|
+
| `category` | ✅ | Một trong: `routing`, `discovery`, `planning`, `implementation`, `debugging`, `review`, `documentation`, `verification` |
|
|
83
|
+
| `summary` | ✅ | Mô tả một dòng bằng tiếng Anh |
|
|
84
|
+
| `summary_vi` | 🟡 | Mô tả một dòng bằng tiếng Việt |
|
|
85
|
+
| `triggers` | 🟡 | Khi nào kích hoạt skill |
|
|
86
|
+
| `inputs` | 🟡 | Skill cần gì |
|
|
87
|
+
| `outputs` | 🟡 | Skill tạo ra gì |
|
|
88
|
+
| `constraints` | 🟡 | Rào cản và giới hạn |
|
|
89
|
+
| `related_skills` | 🟡 | Skill liên quan trong graph |
|
|
90
|
+
|
|
91
|
+
> ✅ = bắt buộc 🟡 = khuyến nghị
|
|
92
|
+
|
|
93
|
+
#### Bước 3 — Viết `SKILL.md`
|
|
94
|
+
|
|
95
|
+
Theo cấu trúc từ [Skill Spec](../docs/skill-spec.md):
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
# <Tên Skill>
|
|
99
|
+
|
|
100
|
+
## 🎯 Mục Đích
|
|
101
|
+
## ⏰ Khi Nào Dùng
|
|
102
|
+
## 🔄 Workflow
|
|
103
|
+
## 📋 Output Format
|
|
104
|
+
## 🚩 Red Flag
|
|
105
|
+
## ✅ Done Criteria
|
|
106
|
+
## ➡️ Handoff
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> 💡 Giữ tính **vận hành** — bước cụ thể, không phải lý thuyết trừu tượng. Xem [Authoring Guide](../docs/authoring-guide.md) để biết quy tắc viết chi tiết.
|
|
110
|
+
|
|
111
|
+
#### Bước 4 — Thêm `examples.md`
|
|
112
|
+
|
|
113
|
+
Bao gồm ít nhất một ví dụ thực tế với:
|
|
114
|
+
|
|
115
|
+
- 🗣️ Một user request đại diện
|
|
116
|
+
- 📋 Hình dạng response hoặc workflow dự kiến
|
|
117
|
+
- ✅ Một ví dụ output đã hoàn thành
|
|
118
|
+
|
|
119
|
+
#### Bước 5 — Thêm references (tùy chọn)
|
|
120
|
+
|
|
121
|
+
Đặt file hỗ trợ trong `references/`:
|
|
122
|
+
|
|
123
|
+
- 📋 Output template
|
|
124
|
+
- ☑️ Checklist
|
|
125
|
+
- 📊 Rubric
|
|
126
|
+
- 🌳 Cây quyết định
|
|
127
|
+
|
|
128
|
+
#### Bước 6 — Kết nối vào skill graph
|
|
129
|
+
|
|
130
|
+
Cập nhật trường `related_skills` trong `meta.yaml` của các skill liên quan để router (`using-skills`) có thể tìm thấy skill mới của bạn.
|
|
131
|
+
|
|
132
|
+
#### Bước 7 — Validate
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
bash scripts/validate-skills
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Tất cả skill phải pass với **0 FAIL** và **0 WARN**.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### ✏️ Sửa Skill Có Sẵn
|
|
143
|
+
|
|
144
|
+
| | Hướng dẫn |
|
|
145
|
+
|---|---|
|
|
146
|
+
| 🔹 | Ưu tiên **thu hẹp phạm vi** hơn là thêm nhánh |
|
|
147
|
+
| 🔹 | Nếu skill xử lý quá nhiều trường hợp, **tách nó** thành hai |
|
|
148
|
+
| 🔹 | Giữ output format ổn định — các skill downstream phụ thuộc vào nó |
|
|
149
|
+
| 🔹 | Cập nhật `examples.md` nếu workflow thay đổi |
|
|
150
|
+
| 🔹 | Tăng `version` trong `meta.yaml` |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### 📚 Đóng Góp Knowledge
|
|
155
|
+
|
|
156
|
+
File knowledge nằm trong `knowledge/global/`. Chúng chứa nguyên tắc, heuristic, và pattern — **không phải** workflow từng bước (đó thuộc về skill).
|
|
157
|
+
|
|
158
|
+
| File | Mục đích |
|
|
159
|
+
|---|---|
|
|
160
|
+
| 📐 `engineering-principles.md` | Giá trị coding cốt lõi |
|
|
161
|
+
| 🔍 `review-heuristics.md` | Quy tắc code review |
|
|
162
|
+
| 🐛 `debugging-patterns.md` | Phương pháp debug có hệ thống |
|
|
163
|
+
| 🧠 `skill-triggering-rules.md` | Khi nào load skill nào |
|
|
164
|
+
|
|
165
|
+
Khi thêm hoặc sửa knowledge:
|
|
166
|
+
|
|
167
|
+
- 🔹 Giữ mục ngắn gọn và hành động được
|
|
168
|
+
- 🔹 Tránh chi tiết dự án cụ thể — knowledge phải portable
|
|
169
|
+
- 🔹 Mỗi mục phải giúp AI agent đưa ra quyết định tốt hơn
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### 🔌 Cập Nhật Adapter
|
|
174
|
+
|
|
175
|
+
Skeleton adapter trong `adapters/` định nghĩa cách sinh platform file. Nếu bạn thay đổi catalog skill hoặc cấu trúc knowledge:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Sinh lại tất cả platform file
|
|
179
|
+
bash scripts/sync-platform-files
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
> ⚠️ Không bao giờ sửa trực tiếp file trong `generated/` — chúng bị ghi đè mỗi lần sync.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
### ✅ Validation & Chất Lượng
|
|
187
|
+
|
|
188
|
+
Trước khi submit bất kỳ thay đổi nào, chạy:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# 1. Validate tất cả skill
|
|
192
|
+
bash scripts/validate-skills
|
|
193
|
+
|
|
194
|
+
# 2. Sinh lại platform file
|
|
195
|
+
bash scripts/sync-platform-files
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
#### Checklist Chất Lượng
|
|
199
|
+
|
|
200
|
+
| | Kiểm tra |
|
|
201
|
+
|---|---|
|
|
202
|
+
| 🏷️ | Tên skill cụ thể và mô tả được |
|
|
203
|
+
| 📝 | Summary một câu và vẫn hữu ích |
|
|
204
|
+
| 🔄 | Workflow thực hiện được mà không cần context riêng tư |
|
|
205
|
+
| 📋 | Output format nhất quán |
|
|
206
|
+
| 💡 | Ví dụ thực tế và có completed output |
|
|
207
|
+
| ✅ | Done criteria yêu cầu bằng chứng, không phải ngôn ngữ mong muốn |
|
|
208
|
+
| 🔗 | Graph `related_skills` nhất quán (link hai chiều) |
|
|
209
|
+
| ⚙️ | `validate-skills` pass với 0 FAIL, 0 WARN |
|
|
210
|
+
| 📦 | `sync-platform-files` chạy không lỗi |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### 📐 Style & Quy Ước
|
|
215
|
+
|
|
216
|
+
| | Quy ước |
|
|
217
|
+
|---|---|
|
|
218
|
+
| 📁 | Thư mục skill dùng **kebab-case** (`feature-delivery`, không phải `FeatureDelivery`) |
|
|
219
|
+
| 📄 | File skill: `meta.yaml`, `SKILL.md`, `examples.md`, `references/` |
|
|
220
|
+
| 🌐 | Tài liệu phải **song ngữ** — tiếng Anh ở file chính, tiếng Việt ở `i18n/` |
|
|
221
|
+
| 📂 | Bản dịch tiếng Việt đặt trong `i18n/<tên-file>.vi.md` |
|
|
222
|
+
| 🔗 | File chính link đến bản dịch `i18n/`; bản dịch link ngược về file chính |
|
|
223
|
+
| 🎨 | Dùng emoji icon, bảng, và badge — không viết text trơn |
|
|
224
|
+
| 🔗 | Tất cả repo nguồn phải là **link clickable** đến GitHub |
|
|
225
|
+
| 💬 | Commit message bằng **tiếng Anh**, rõ ràng và mô tả |
|
|
226
|
+
| 📏 | Giữ `SKILL.md` dưới ~200 dòng — tách nếu dài hơn |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### 🔄 Quy Trình Pull Request
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
┌──────────────┐ ┌─────────────┐ ┌──────────────┐
|
|
234
|
+
│ Fork & Code │────▶│ Validate │────▶│ Mở PR │
|
|
235
|
+
│ │ │ & Sync │ │ │
|
|
236
|
+
└──────────────┘ └─────────────┘ └──────┬───────┘
|
|
237
|
+
│
|
|
238
|
+
┌──────▼───────┐
|
|
239
|
+
│ Review │
|
|
240
|
+
│ & Merge │
|
|
241
|
+
└──────────────┘
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### Yêu Cầu PR
|
|
245
|
+
|
|
246
|
+
| | Yêu cầu |
|
|
247
|
+
|---|---|
|
|
248
|
+
| 1️⃣ | Branch từ `main`, target `main` |
|
|
249
|
+
| 2️⃣ | `bash scripts/validate-skills` pass với 0 lỗi |
|
|
250
|
+
| 3️⃣ | `bash scripts/sync-platform-files` chạy sạch |
|
|
251
|
+
| 4️⃣ | Tiêu đề PR theo format: `add skill: <tên>`, `fix: <mô tả>`, hoặc `update: <mô tả>` |
|
|
252
|
+
| 5️⃣ | Mô tả PR giải thích **gì** thay đổi và **tại sao** |
|
|
253
|
+
| 6️⃣ | Không có secret, token, hay đường dẫn máy cụ thể |
|
|
254
|
+
| 7️⃣ | Không thay đổi `generated/` (đã gitignore) |
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### 📦 Phát Hành Phiên Bản Mới
|
|
259
|
+
|
|
260
|
+
Package được publish lên [npm](https://www.npmjs.com/package/@anionzo/skill) qua GitHub Actions workflow.
|
|
261
|
+
|
|
262
|
+
#### Cách publish phiên bản mới:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# 1. Tăng version trong package.json
|
|
266
|
+
npm version patch # 1.0.0 → 1.0.1
|
|
267
|
+
# hoặc
|
|
268
|
+
npm version minor # 1.0.0 → 1.1.0
|
|
269
|
+
# hoặc
|
|
270
|
+
npm version major # 1.0.0 → 2.0.0
|
|
271
|
+
|
|
272
|
+
# 2. Push version tag
|
|
273
|
+
git push origin main --tags
|
|
274
|
+
|
|
275
|
+
# 3. Tạo GitHub Release (kích hoạt workflow publish)
|
|
276
|
+
gh release create v1.0.1 --generate-notes
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
> 💡 Workflow (`.github/workflows/publish.yml`) chạy validation, sinh platform file, và publish lên npm tự động.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### 🚫 Những Điều Không Nên Làm
|
|
284
|
+
|
|
285
|
+
| | Anti-Pattern |
|
|
286
|
+
|---|---|
|
|
287
|
+
| ❌ | Commit file trong `generated/` — chúng được tự sinh |
|
|
288
|
+
| ❌ | Tạo skill cố xử lý mọi trường hợp |
|
|
289
|
+
| ❌ | Viết prompt mơ hồ kiểu "hãy là kỹ sư giỏi" |
|
|
290
|
+
| ❌ | Nhúng secret, token, hay đường dẫn file local |
|
|
291
|
+
| ❌ | Giả định cứng về một AI agent cụ thể |
|
|
292
|
+
| ❌ | Sửa platform file trực tiếp thay vì sửa adapter |
|
|
293
|
+
| ❌ | Bỏ qua validation trước khi mở PR |
|
|
294
|
+
| ❌ | Viết docs chỉ tiếng Anh (bắt buộc song ngữ) |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
<div align="center">
|
|
299
|
+
|
|
300
|
+
**Xây dựng với 🤝 cho phát triển skill AI cộng tác**
|
|
301
|
+
|
|
302
|
+
</div>
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 🧠 Thư Viện Skill AI Cá Nhân
|
|
4
|
+
|
|
5
|
+
**Thư viện skill đa agent, vendor-neutral cho kỹ thuật phần mềm hỗ trợ AI**
|
|
6
|
+
|
|
7
|
+
[](../skills/)
|
|
8
|
+
[](../knowledge/)
|
|
9
|
+
[](../adapters/)
|
|
10
|
+
[](../LICENSE)
|
|
11
|
+
[](../CONTRIBUTING.md)
|
|
12
|
+
[](https://www.npmjs.com/package/@anionzo/skill)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
🌐 **[English](../README.md)**
|
|
17
|
+
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
> 🎯 Giữ các workflow AI lặp lại ở một nơi. Tách skill khỏi kiến thức. Dùng được với mọi agent.
|
|
23
|
+
|
|
24
|
+
Repo này nhẹ hơn một sản phẩm workflow đầy đủ. Nó lấy tư duy **workflow-first** từ `hoangnb24/skills`, hành vi **plan-first** từ các coding agent hiện đại như OpenCode, và tư duy **multi-platform** từ `knowns-dev/knowns` — rồi biến chúng thành thư viện cá nhân thực dụng.
|
|
25
|
+
|
|
26
|
+
### 🏗️ Mục Tiêu Thiết Kế
|
|
27
|
+
|
|
28
|
+
| | Mục tiêu |
|
|
29
|
+
|---|---|
|
|
30
|
+
| 🔹 | Skill nhỏ, cụ thể, tái sử dụng |
|
|
31
|
+
| 🔹 | Kiến thức lưu tách biệt khỏi skill |
|
|
32
|
+
| 🔹 | Adapter sinh tự động từ một nguồn — không viết tay |
|
|
33
|
+
| 🔹 | Hoạt động mà không cần plugin runtime |
|
|
34
|
+
|
|
35
|
+
### 📁 Cấu Trúc Repo
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
.
|
|
39
|
+
├─ 📄 docs/ → Spec, quy tắc viết, quyết định thiết kế
|
|
40
|
+
├─ 🎯 skills/ → Định nghĩa skill tái sử dụng
|
|
41
|
+
├─ 📚 knowledge/ → Kiến thức global, project, working
|
|
42
|
+
├─ 📋 templates/ → Mẫu khởi tạo skill mới
|
|
43
|
+
├─ 🔌 adapters/ → Hướng dẫn cho từng nền tảng
|
|
44
|
+
├─ ⚙️ scripts/ → Script validate và sync
|
|
45
|
+
├─ 🌐 i18n/ → Bản dịch tiếng Việt
|
|
46
|
+
└─ 📦 generated/ → Output tự sinh (đã gitignore)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 🎯 Danh Mục Skill
|
|
50
|
+
|
|
51
|
+
| | Skill | Mục đích |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| 🧭 | `using-skills` | Phân loại request và chọn đúng skill |
|
|
54
|
+
| 💡 | `brainstorming` | Làm rõ ý tưởng mơ hồ trước khi lập plan |
|
|
55
|
+
| 🗺️ | `repo-onboarding` | Hiểu codebase lạ trước khi hành động |
|
|
56
|
+
| 📐 | `planning` | Biến request thành plan thực thi trước khi code |
|
|
57
|
+
| 🚀 | `feature-delivery` | Triển khai feature với thay đổi tối thiểu, phù hợp repo |
|
|
58
|
+
| 🐛 | `bug-triage` | Điều tra lỗi, regression, failure chưa rõ nguyên nhân |
|
|
59
|
+
| ♻️ | `refactor-safe` | Tái cấu trúc code mà không thay đổi hành vi |
|
|
60
|
+
| ✅ | `verification-before-completion` | Yêu cầu bằng chứng trước khi tuyên bố xong |
|
|
61
|
+
| 🔍 | `code-review` | Review diff ưu tiên bug, regression, test gap |
|
|
62
|
+
| 📝 | `docs-writer` | Cập nhật docs từ hành vi thực tế đã xác minh |
|
|
63
|
+
|
|
64
|
+
### 🔄 Workflow Mặc Định
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
┌─────────────┐ ┌───────────────┐ ┌─────────────────┐
|
|
68
|
+
│ using-skills │────▶│ brainstorming │────▶│ repo-onboarding │
|
|
69
|
+
│ (router) │ │ (nếu mơ hồ) │ │ (nếu repo lạ) │
|
|
70
|
+
└──────┬───────┘ └───────┬───────┘ └────────┬────────┘
|
|
71
|
+
│ │ │
|
|
72
|
+
│ ▼ │
|
|
73
|
+
│ ┌──────────┐ │
|
|
74
|
+
└─────────────▶│ planning │◀─────────────────┘
|
|
75
|
+
└────┬─────┘
|
|
76
|
+
│
|
|
77
|
+
┌────────────┼────────────┐
|
|
78
|
+
▼ ▼ ▼
|
|
79
|
+
┌────────────┐ ┌───────────┐ ┌──────────────┐
|
|
80
|
+
│ feature- │ │ bug-triage│ │ refactor-safe│
|
|
81
|
+
│ delivery │ │ │ │ │
|
|
82
|
+
└─────┬──────┘ └─────┬─────┘ └──────┬───────┘
|
|
83
|
+
│ │ │
|
|
84
|
+
▼ ▼ ▼
|
|
85
|
+
┌─────────────────────────────────────────┐
|
|
86
|
+
│ verification-before-completion │
|
|
87
|
+
└────────────────────┬────────────────────┘
|
|
88
|
+
▼
|
|
89
|
+
┌─────────────┐
|
|
90
|
+
│ code-review │
|
|
91
|
+
└─────────────┘
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 📖 Nghiên Cứu Tham Khảo
|
|
95
|
+
|
|
96
|
+
| Nguồn | Pattern chính |
|
|
97
|
+
|---|---|
|
|
98
|
+
| 🏛️ [`anthropics/skills`](https://github.com/anthropics/skills) | Đóng gói skill tối giản, portable |
|
|
99
|
+
| ⚡ [`obra/superpowers`](https://github.com/obra/superpowers) | Luồng brainstorm → plan → execute → verify |
|
|
100
|
+
| 🧩 [`affaan-m/everything-claude-code`](https://github.com/affaan-m/everything-claude-code) | Mô hình phân lớp: skills, rules, memory, adapter |
|
|
101
|
+
| 🗃️ [`knowns-dev/knowns`](https://github.com/knowns-dev/knowns) | Tách skill khỏi knowledge; sinh platform file tự động |
|
|
102
|
+
| 📦 [`hoangnb24/skills`](https://github.com/hoangnb24/skills) | Thiết kế skill workflow-first với router và output contract |
|
|
103
|
+
|
|
104
|
+
### 🚀 Bắt Đầu Nhanh
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# 1. Hiểu hình dạng repo
|
|
108
|
+
cat docs/design-brief.md
|
|
109
|
+
|
|
110
|
+
# 2. Tùy chỉnh knowledge theo phong cách của bạn
|
|
111
|
+
vim knowledge/global/engineering-principles.md
|
|
112
|
+
|
|
113
|
+
# 3. Bắt đầu — router sẽ chọn đúng skill
|
|
114
|
+
cat skills/using-skills/SKILL.md
|
|
115
|
+
|
|
116
|
+
# 4. Validate các skill
|
|
117
|
+
bash scripts/validate-skills
|
|
118
|
+
|
|
119
|
+
# 5. Sinh platform file
|
|
120
|
+
bash scripts/sync-platform-files
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 📦 Cài Đặt Qua npm
|
|
124
|
+
|
|
125
|
+
> Có sẵn trên [npm](https://www.npmjs.com/package/@anionzo/skill) — không cần xác thực
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# 1. Cài đặt package
|
|
129
|
+
npm install @anionzo/skill
|
|
130
|
+
|
|
131
|
+
# 2. Copy skills/knowledge vào project
|
|
132
|
+
cp -r node_modules/@anionzo/skill/skills/ ./
|
|
133
|
+
cp -r node_modules/@anionzo/skill/knowledge/ ./
|
|
134
|
+
|
|
135
|
+
# 3. Sinh platform file
|
|
136
|
+
bash node_modules/@anionzo/skill/scripts/sync-platform-files
|
|
137
|
+
|
|
138
|
+
# 4. Copy output sang agent
|
|
139
|
+
cp generated/CLAUDE.md ./ # hoặc OPENCODE.md, GEMINI.md, v.v.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
> 💡 Hoặc clone repo trực tiếp nếu muốn chỉnh sửa skill tại chỗ.
|
|
143
|
+
|
|
144
|
+
### 🔌 Tích Hợp Agent
|
|
145
|
+
|
|
146
|
+
> Repo này là **nguồn sự thật duy nhất**. Các file sinh ra chỉ là artifact phân phối.
|
|
147
|
+
|
|
148
|
+
| Agent | Copy từ | Copy tới |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| 🤖 Claude Code | `generated/CLAUDE.md` | `CLAUDE.md` |
|
|
151
|
+
| ⚡ OpenCode | `generated/OPENCODE.md` | `OPENCODE.md` |
|
|
152
|
+
| 💎 Gemini CLI | `generated/GEMINI.md` | `GEMINI.md` |
|
|
153
|
+
| 🔧 Agent chung | `generated/AGENTS.md` | `AGENTS.md` |
|
|
154
|
+
| 🐙 GitHub Copilot | `generated/copilot-instructions.md` | `.github/copilot-instructions.md` |
|
|
155
|
+
|
|
156
|
+
### ➕ Tạo Skill Mới
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# 1. Scaffold từ template
|
|
160
|
+
cp -r templates/ skills/<ten-skill>/
|
|
161
|
+
|
|
162
|
+
# 2. Sửa các file
|
|
163
|
+
vim skills/<ten-skill>/meta.yaml
|
|
164
|
+
vim skills/<ten-skill>/SKILL.md
|
|
165
|
+
vim skills/<ten-skill>/examples.md
|
|
166
|
+
|
|
167
|
+
# 3. Validate
|
|
168
|
+
bash scripts/validate-skills
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### ⚙️ Lệnh
|
|
172
|
+
|
|
173
|
+
| Lệnh | Mục đích |
|
|
174
|
+
|---|---|
|
|
175
|
+
| `bash scripts/validate-skills` | Kiểm tra mọi skill có đủ file và key bắt buộc |
|
|
176
|
+
| `bash scripts/sync-platform-files` | Sinh file hướng dẫn cho từng nền tảng |
|
|
177
|
+
|
|
178
|
+
### 📋 Thứ Tự Tùy Chỉnh Khuyến Nghị
|
|
179
|
+
|
|
180
|
+
1. 🥇 `knowledge/global/engineering-principles.md`
|
|
181
|
+
2. 🥈 `knowledge/global/review-heuristics.md`
|
|
182
|
+
3. 🥉 `knowledge/global/debugging-patterns.md`
|
|
183
|
+
4. 🎯 Các skill bạn dùng hàng tuần
|
|
184
|
+
5. 🔌 Adapter output cho hai agent bạn dùng nhiều nhất
|
|
185
|
+
|
|
186
|
+
### 🤝 Đóng Góp
|
|
187
|
+
|
|
188
|
+
Chào mừng đóng góp! Xem **[CONTRIBUTING.md](../CONTRIBUTING.md)** để biết:
|
|
189
|
+
|
|
190
|
+
🇻🇳 [Hướng dẫn đóng góp tiếng Việt](../i18n/CONTRIBUTING.vi.md)
|
|
191
|
+
|
|
192
|
+
- ➕ Cách thêm skill mới
|
|
193
|
+
- ✏️ Cách sửa skill có sẵn
|
|
194
|
+
- 📚 Cách đóng góp knowledge
|
|
195
|
+
- 🔄 Quy trình pull request và quy ước
|
|
196
|
+
|
|
197
|
+
### 📌 Ghi Chú
|
|
198
|
+
|
|
199
|
+
- `generated/` bị gitignore — tái sinh bất kỳ lúc nào
|
|
200
|
+
- Chưa ship plugin runtime hay MCP server
|
|
201
|
+
- Bước tiếp theo: manifest machine-readable hoặc MCP bridge
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
<div align="center">
|
|
206
|
+
|
|
207
|
+
**Xây dựng với ❤️ cho kỹ thuật phần mềm hỗ trợ AI**
|
|
208
|
+
|
|
209
|
+
</div>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 🔌 Hướng Dẫn Adapter
|
|
2
|
+
|
|
3
|
+
> 🌐 **[English](../docs/adapter-guide.md)**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### 🎯 Mục Tiêu
|
|
8
|
+
|
|
9
|
+
Adapter giúp cùng một thư viện skill dùng được trên nhiều nền tảng agent mà không cần viết lại nội dung core.
|
|
10
|
+
|
|
11
|
+
> 📁 File core ở trong `skills/` và `knowledge/`.
|
|
12
|
+
> 📦 File platform-specific được sinh vào `generated/`.
|
|
13
|
+
|
|
14
|
+
### 🤖 Các Nền Tảng Hiện Tại
|
|
15
|
+
|
|
16
|
+
| | Agent | File output |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| 🤖 | Claude Code | `CLAUDE.md` |
|
|
19
|
+
| ⚡ | OpenCode | `OPENCODE.md` |
|
|
20
|
+
| 💎 | Gemini CLI | `GEMINI.md` |
|
|
21
|
+
| 🔧 | Agent chung | `AGENTS.md` |
|
|
22
|
+
| 🐙 | GitHub Copilot | `.github/copilot-instructions.md` |
|
|
23
|
+
|
|
24
|
+
### 📋 Chiến Lược Hiện Tại
|
|
25
|
+
|
|
26
|
+
Phiên bản đầu không cố dịch toàn bộ mỗi skill sang cú pháp platform-specific.
|
|
27
|
+
|
|
28
|
+
Thay vào đó, nó sinh file platform ngắn gọn:
|
|
29
|
+
|
|
30
|
+
- 🧭 Trỏ đến skill router core
|
|
31
|
+
- 📚 Trỏ đến các file knowledge quan trọng nhất
|
|
32
|
+
- 📋 Bao gồm danh mục skill nhỏ
|
|
33
|
+
- 📏 Nêu quy tắc làm việc ổn định xuyên nền tảng
|
|
34
|
+
|
|
35
|
+
> 💡 Điều này giữ artifact phân phối ngắn và giảm drift.
|
|
36
|
+
|
|
37
|
+
### 🔄 Luồng Sync
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
bash scripts/sync-platform-files
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Lệnh này ghi file mới vào `generated/`.
|
|
44
|
+
|
|
45
|
+
### 📋 Luồng Copy
|
|
46
|
+
|
|
47
|
+
Sau khi sync, copy file output sang repo đích:
|
|
48
|
+
|
|
49
|
+
| Nguồn | Đích |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `generated/CLAUDE.md` | `CLAUDE.md` |
|
|
52
|
+
| `generated/OPENCODE.md` | `OPENCODE.md` |
|
|
53
|
+
| `generated/GEMINI.md` | `GEMINI.md` |
|
|
54
|
+
| `generated/AGENTS.md` | `AGENTS.md` |
|
|
55
|
+
| `generated/copilot-instructions.md` | `.github/copilot-instructions.md` |
|
|
56
|
+
|
|
57
|
+
### 🔮 Cải Tiến Tương Lai
|
|
58
|
+
|
|
59
|
+
- 📋 Skill manifest machine-readable
|
|
60
|
+
- 🏷️ Sync chọn lọc theo tag hoặc nền tảng
|
|
61
|
+
- 📁 Project overlay tự động thêm `knowledge/project/`
|
|
62
|
+
- 🔌 Phân phối qua MCP hoặc CLI cho skill discovery
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ✍️ Hướng Dẫn Viết Skill
|
|
2
|
+
|
|
3
|
+
> 🌐 **[English](../docs/authoring-guide.md)**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### ➕ Tạo Skill Mới
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Bước 1 📁 Tạo skills/<ten>/
|
|
11
|
+
Bước 2 📋 Copy các file từ templates/
|
|
12
|
+
Bước 3 📄 Điền meta.yaml trước
|
|
13
|
+
Bước 4 📖 Viết SKILL.md xoay quanh một công việc lặp lại
|
|
14
|
+
Bước 5 💡 Thêm một ví dụ thực tế
|
|
15
|
+
Bước 6 📂 Thêm file hỗ trợ trong references/ nếu cần
|
|
16
|
+
Bước 7 ✅ Chạy bash scripts/validate-skills
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 📄 Viết `meta.yaml`
|
|
20
|
+
|
|
21
|
+
Bắt đầu bằng cách trả lời bốn câu hỏi:
|
|
22
|
+
|
|
23
|
+
| # | Câu hỏi |
|
|
24
|
+
|---|---|
|
|
25
|
+
| 1️⃣ | Skill tên gì? |
|
|
26
|
+
| 2️⃣ | Thuộc category nào? |
|
|
27
|
+
| 3️⃣ | Giải quyết vấn đề gì? |
|
|
28
|
+
| 4️⃣ | Khi nào agent nên dùng nó? |
|
|
29
|
+
|
|
30
|
+
> ⚠️ Nếu agent khó quyết định khi nào load skill, metadata vẫn còn quá mơ hồ.
|
|
31
|
+
|
|
32
|
+
### 📖 Viết `SKILL.md`
|
|
33
|
+
|
|
34
|
+
Skill file tốt mang tính **vận hành**:
|
|
35
|
+
|
|
36
|
+
- ⏰ Mô tả khi nào skill nên được load
|
|
37
|
+
- 🔢 Cho một số ít bước cụ thể
|
|
38
|
+
- 📋 Định nghĩa cách báo cáo kết quả
|
|
39
|
+
- 🚩 Chỉ ra các lỗi phổ biến mà skill nhằm ngăn chặn
|
|
40
|
+
- ➡️ Định nghĩa skill có handoff sang skill khác hay kết thúc luồng
|
|
41
|
+
|
|
42
|
+
### 💡 Ví Dụ
|
|
43
|
+
|
|
44
|
+
Ví dụ nên giống **prompt hoặc task thực tế**, không phải mô tả trừu tượng.
|
|
45
|
+
|
|
46
|
+
Bao gồm:
|
|
47
|
+
|
|
48
|
+
- 🗣️ Một user request đại diện
|
|
49
|
+
- 📋 Hình dạng response hoặc workflow dự kiến
|
|
50
|
+
- 🔑 Giả định chính ảnh hưởng routing
|
|
51
|
+
|
|
52
|
+
### ☑️ Checklist Review
|
|
53
|
+
|
|
54
|
+
Trước khi giữ skill mới, kiểm tra:
|
|
55
|
+
|
|
56
|
+
| | Kiểm tra |
|
|
57
|
+
|---|---|
|
|
58
|
+
| 🏷️ | Tên cụ thể |
|
|
59
|
+
| 📝 | Summary một câu và vẫn hữu ích |
|
|
60
|
+
| 🔄 | Workflow có thể thực hiện mà không cần context riêng tư |
|
|
61
|
+
| 📋 | Output format nhất quán |
|
|
62
|
+
| 💡 | Ví dụ thực tế |
|
|
63
|
+
| ✅ | Done criteria yêu cầu bằng chứng, không phải ngôn ngữ mong muốn |
|
|
64
|
+
|
|
65
|
+
### ✏️ Sửa Skill Có Sẵn
|
|
66
|
+
|
|
67
|
+
Khi tinh chỉnh skill, ưu tiên **thu hẹp phạm vi** hơn là thêm nhánh.
|
|
68
|
+
|
|
69
|
+
> 💡 Nếu skill bắt đầu xử lý quá nhiều trường hợp không liên quan, **tách nó** thành hai skill thay vì làm một file khó suy luận hơn.
|