ai-developer-skill-os 9.1.2 → 9.3.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/.agents/AGENTS.md +139 -42
- package/.agents/DEV_PROFILE.md +95 -0
- package/.agents/registry/capability-graph.yml +171 -334
- package/.agents/registry/graph.json +37 -19
- package/.agents/registry/index.yaml +59 -13
- package/.agents/registry/skills-index.yml +204 -447
- package/.agents/rules/coding.md +23 -0
- package/.agents/rules/global.md +44 -30
- package/.agents/skills/_template/SKILL.md +2 -377
- package/.agents/skills/qk-access-policy/SKILL.md +98 -473
- package/.agents/skills/qk-agent-observability/SKILL.md +3 -439
- package/.agents/skills/qk-ai-builder/SKILL.md +132 -565
- package/.agents/skills/qk-api-consumer/SKILL.md +256 -0
- package/.agents/skills/qk-api-consumer/capability.yaml +21 -0
- package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-api-lifecycle/SKILL.md +133 -456
- package/.agents/skills/qk-bug-resolution/SKILL.md +128 -561
- package/.agents/skills/qk-code-review/SKILL.md +142 -420
- package/.agents/skills/qk-context-loader/SKILL.md +99 -471
- package/.agents/skills/qk-data-engineer/SKILL.md +119 -340
- package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -488
- package/.agents/skills/qk-db-optimizer/SKILL.md +102 -488
- package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -461
- package/.agents/skills/qk-devops-platform/SKILL.md +77 -463
- package/.agents/skills/qk-docs/SKILL.md +88 -494
- package/.agents/skills/qk-engineering-standard/SKILL.md +4 -588
- package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -343
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
- package/.agents/skills/qk-feature-delivery/SKILL.md +137 -445
- package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -479
- package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
- package/.agents/skills/qk-orchestrator/SKILL.md +63 -502
- package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
- package/.agents/skills/qk-product-specification/SKILL.md +70 -479
- package/.agents/skills/qk-production-release/SKILL.md +80 -537
- package/.agents/skills/qk-project-audit/SKILL.md +174 -0
- package/.agents/skills/qk-project-bootstrap/SKILL.md +243 -471
- package/.agents/skills/qk-project-health/SKILL.md +97 -496
- package/.agents/skills/qk-project-memory/SKILL.md +76 -21
- package/.agents/skills/qk-refactor/SKILL.md +167 -384
- package/.agents/skills/qk-security-audit/SKILL.md +141 -463
- package/.agents/skills/qk-security-audit/capability.yaml +1 -2
- package/.agents/skills/qk-system-evolution/SKILL.md +343 -343
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
- package/.agents/skills/qk-test-engineering/SKILL.md +119 -509
- package/.agents/skills/qk-ui-audit/SKILL.md +73 -537
- package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
- package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -514
- package/.agents/skills/qk-upgrade/SKILL.md +301 -0
- package/.agents/skills/qk-upgrade/capability.yaml +24 -0
- package/.agents/skills/qk-upgrade/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-validation-gate/SKILL.md +4 -603
- package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -463
- package/.agents/workflows/bug-resolution.yml +6 -6
- package/.agents/workflows/context-discovery.yml +94 -0
- package/.agents/workflows/feature-delivery.yml +8 -4
- package/.agents/workflows/refactor.yml +6 -3
- package/.agents/workflows/shared/quality-gate.yml +94 -0
- package/.agents/workflows/skin-governance.yml +115 -0
- package/README.md +152 -67
- package/package.json +2 -2
- package/tooling/build-registry.js +30 -8
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-feature-delivery
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.2.0
|
|
5
5
|
status: stable
|
|
6
|
-
description: "Phát triển tính năng mới end-to-end: Requirements → Context → Design → Implement → Self-audit."
|
|
6
|
+
description: "Phát triển tính năng mới end-to-end: Requirements → Context → Design → Implement → Self-audit. Dùng skill này khi user nhắc đến: add feature, build new, implement, phát triển tính năng, tạo mới, thêm chức năng — kể cả khi mô tả bằng ngôn ngữ tự nhiên như \"tôi muốn có tính năng X\" hoặc \"làm cho app có thể Y\"."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
9
|
# ── V9: Classification ─────────────────────────────────────
|
|
@@ -22,12 +22,14 @@ complexity:
|
|
|
22
22
|
has_external_dependency: true
|
|
23
23
|
has_breaking_change: false
|
|
24
24
|
|
|
25
|
-
triggers:
|
|
26
|
-
- "add feature"
|
|
27
|
-
- "build new"
|
|
28
|
-
- "implement"
|
|
29
|
-
- "phát triển tính năng"
|
|
30
|
-
- "tạo mới"
|
|
25
|
+
triggers:
|
|
26
|
+
- "add feature"
|
|
27
|
+
- "build new"
|
|
28
|
+
- "implement"
|
|
29
|
+
- "phát triển tính năng"
|
|
30
|
+
- "tạo mới"
|
|
31
|
+
- "thêm chức năng"
|
|
32
|
+
|
|
31
33
|
|
|
32
34
|
selection:
|
|
33
35
|
priority: medium
|
|
@@ -47,7 +49,7 @@ tools:
|
|
|
47
49
|
|
|
48
50
|
related_skills:
|
|
49
51
|
- qk-context-loader
|
|
50
|
-
- qk-
|
|
52
|
+
- qk-test-engineering
|
|
51
53
|
|
|
52
54
|
knowledge_scope:
|
|
53
55
|
owns:
|
|
@@ -82,478 +84,168 @@ token_budget:
|
|
|
82
84
|
max_shell_commands: 2
|
|
83
85
|
stop_early: true
|
|
84
86
|
|
|
85
|
-
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
87
|
+
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
86
88
|
---
|
|
87
89
|
|
|
88
90
|
# qk-feature-delivery — End-to-End Feature Builder
|
|
89
91
|
|
|
90
92
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
91
93
|
|
|
94
|
+
Chịu trách nhiệm triển khai tính năng mới end-to-end theo luồng tiêu chuẩn: **Requirements → Context → Design → Implement → Self-audit**. Bảo đảm code viết ra tích hợp mượt mà vào hệ thống hiện hữu, chuẩn theo role và conventions từ `DEV_PROFILE.md`.
|
|
95
|
+
|
|
92
96
|
---
|
|
93
97
|
|
|
94
|
-
## Memory Workflow
|
|
95
|
-
|
|
96
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
97
|
-
- Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
|
|
98
|
-
- **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
|
|
99
|
-
- **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
104
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
105
|
-
bắt buộc tra cứu:
|
|
106
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
107
|
-
|
|
108
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
109
|
-
- Architecture
|
|
110
|
-
- Hard Bug
|
|
111
|
-
- Convention
|
|
112
|
-
- Pattern
|
|
113
|
-
- Tech Debt Pattern
|
|
114
|
-
- 👉 *Domain Focus:* Architecture / Pattern / Convention liên quan đến luồng tính năng hiện tại.
|
|
115
|
-
|
|
116
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
117
|
-
Không được xem Memory là Source of Truth.
|
|
118
|
-
Luôn xác minh lại bằng source code, configuration và trạng thái hiện tại của dự án trước khi áp dụng.
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
123
|
-
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
124
|
-
- Hard Bug có khả năng tái diễn.
|
|
125
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
126
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
127
|
-
- Quyết định Architecture quan trọng.
|
|
128
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
129
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
130
|
-
|
|
131
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
132
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
133
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
138
|
-
Sau khi hoàn thành task:
|
|
139
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
140
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
141
|
-
- Đề xuất người dùng xem xét.
|
|
142
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
143
|
-
- `/learn`
|
|
144
|
-
- `qk-project-memory`
|
|
145
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
152
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
### Ignore (Không đưa vào Memory)
|
|
157
|
-
Không lưu:
|
|
158
|
-
- Trace log của một session đơn lẻ.
|
|
159
|
-
- Temporary debugging data.
|
|
160
|
-
- Output của một lần chạy test/scan.
|
|
161
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
162
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
163
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
164
|
-
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
### Golden Rule
|
|
169
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
170
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
177
|
-
- Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
|
|
178
|
-
- **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
|
|
179
|
-
- **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
184
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
185
|
-
bắt buộc tra cứu:
|
|
186
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
187
|
-
|
|
188
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
189
|
-
- Architecture
|
|
190
|
-
- Hard Bug
|
|
191
|
-
- Convention
|
|
192
|
-
- Pattern
|
|
193
|
-
- Tech Debt Pattern
|
|
194
|
-
- 👉 *Domain Focus:* Architecture / Pattern / Convention liên quan đến luồng tính năng hiện tại.
|
|
195
|
-
|
|
196
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
197
|
-
Không được xem Memory là Source of Truth.
|
|
198
|
-
Luôn xác minh lại bằng source code, configuration và trạng thái hiện tại của dự án trước khi áp dụng.
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
203
|
-
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
204
|
-
- Hard Bug có khả năng tái diễn.
|
|
205
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
206
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
207
|
-
- Quyết định Architecture quan trọng.
|
|
208
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
209
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
210
|
-
|
|
211
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
212
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
213
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
218
|
-
Sau khi hoàn thành task:
|
|
219
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
220
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
221
|
-
- Đề xuất người dùng xem xét.
|
|
222
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
223
|
-
- `/learn`
|
|
224
|
-
- `qk-project-memory`
|
|
225
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
226
|
-
|
|
227
|
-
```
|
|
228
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
232
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
### Ignore (Không đưa vào Memory)
|
|
237
|
-
Không lưu:
|
|
238
|
-
- Trace log của một session đơn lẻ.
|
|
239
|
-
- Temporary debugging data.
|
|
240
|
-
- Output của một lần chạy test/scan.
|
|
241
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
242
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
243
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
244
|
-
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
### Golden Rule
|
|
249
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
250
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
257
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
258
|
-
bắt buộc tra cứu:
|
|
259
|
-
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
260
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
261
|
-
|
|
262
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
263
|
-
- Architecture
|
|
264
|
-
- Hard Bug
|
|
265
|
-
- Convention
|
|
266
|
-
- Pattern
|
|
267
|
-
- Tech Debt Pattern
|
|
268
|
-
- 👉 *Domain Focus:* Architecture / Pattern / Convention liên quan đến luồng tính năng hiện tại.
|
|
269
|
-
|
|
270
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
271
|
-
Không được xem Memory là Source of Truth.
|
|
272
|
-
Luôn xác minh lại bằng source code, configuration và trạng thái hiện tại của dự án trước khi áp dụng.
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
277
|
-
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
278
|
-
- Hard Bug có khả năng tái diễn.
|
|
279
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
280
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
281
|
-
- Quyết định Architecture quan trọng.
|
|
282
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
283
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
284
|
-
|
|
285
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
286
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
287
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
288
|
-
|
|
289
|
-
---
|
|
290
|
-
|
|
291
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
292
|
-
Sau khi hoàn thành task:
|
|
293
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
294
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
295
|
-
- Đề xuất người dùng xem xét.
|
|
296
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
297
|
-
- `/learn`
|
|
298
|
-
- `qk-project-memory`
|
|
299
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
300
|
-
|
|
301
|
-
```
|
|
302
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
306
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
307
|
-
|
|
308
|
-
---
|
|
309
|
-
|
|
310
|
-
### Ignore (Không đưa vào Memory)
|
|
311
|
-
Không lưu:
|
|
312
|
-
- Trace log của một session đơn lẻ.
|
|
313
|
-
- Temporary debugging data.
|
|
314
|
-
- Output của một lần chạy test/scan.
|
|
315
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
316
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
317
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
318
|
-
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
### Golden Rule
|
|
323
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
324
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
325
|
-
|
|
326
|
-
---
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
330
|
-
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
331
|
-
- Hard Bug có khả năng tái diễn.
|
|
332
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
333
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
334
|
-
- Quyết định Architecture quan trọng.
|
|
335
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
336
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
337
|
-
|
|
338
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
339
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
340
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
341
|
-
|
|
342
|
-
---
|
|
343
|
-
|
|
344
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
345
|
-
Sau khi hoàn thành task:
|
|
346
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
347
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
348
|
-
- Đề xuất người dùng xem xét.
|
|
349
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
350
|
-
- `/learn`
|
|
351
|
-
- `qk-project-memory`
|
|
352
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
353
|
-
|
|
354
|
-
```
|
|
355
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
359
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
### Ignore (Không đưa vào Memory)
|
|
364
|
-
Không lưu:
|
|
365
|
-
- Trace log của một session đơn lẻ.
|
|
366
|
-
- Temporary debugging data.
|
|
367
|
-
- Output của một lần chạy test/scan.
|
|
368
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
369
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
370
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
371
|
-
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
### Golden Rule
|
|
376
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
377
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
383
|
-
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
384
|
-
- Hard Bug có khả năng tái diễn.
|
|
385
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
386
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
387
|
-
- Quyết định Architecture quan trọng.
|
|
388
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
389
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
390
|
-
|
|
391
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
392
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
393
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
398
|
-
Sau khi hoàn thành task:
|
|
399
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
400
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
401
|
-
- Đề xuất người dùng xem xét.
|
|
402
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
403
|
-
- `/learn`
|
|
404
|
-
- `qk-project-memory`
|
|
405
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
406
|
-
|
|
407
|
-
```
|
|
408
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
412
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
### Ignore (Không đưa vào Memory)
|
|
417
|
-
Không lưu:
|
|
418
|
-
- Trace log của một session đơn lẻ.
|
|
419
|
-
- Temporary debugging data.
|
|
420
|
-
- Output của một lần chạy test/scan.
|
|
421
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
422
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
423
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
424
|
-
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
425
|
-
|
|
426
|
-
---
|
|
427
|
-
|
|
428
|
-
### Golden Rule
|
|
429
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
430
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
---
|
|
434
|
-
---
|
|
435
|
-
---
|
|
436
|
-
|
|
437
98
|
## Preconditions
|
|
438
|
-
- [ ] Feature requirement is specific enough to implement (not just "add something")
|
|
439
|
-
- [ ] `DESIGN.md` exists with required tokens if UI work is involved (colors, spacing, typography)
|
|
440
|
-
- [ ] Context graph available OR `qk-context-loader` run first (for logic work)
|
|
441
99
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
100
|
+
Trước khi bắt đầu implement bất kỳ tính năng nào, AI BẮT BUỘC kiểm tra:
|
|
101
|
+
|
|
102
|
+
- [ ] Đọc `.agents/DEV_PROFILE.md` để lấy role, primary stack, coding conventions và constraints.
|
|
103
|
+
- [ ] Xác định scope thay đổi (màn hình, module, schema, API liên quan).
|
|
104
|
+
- [ ] Kiểm tra tính rõ ràng của yêu cầu: Có acceptance criteria rõ ràng chưa? Đã rõ input/output chưa?
|
|
105
|
+
- [ ] Nếu yêu cầu mơ hồ hoặc có quyết định kiến trúc lớn chưa thống nhất:
|
|
106
|
+
→ **EXIT: BLOCKED**
|
|
107
|
+
→ Báo cáo user câu hỏi làm rõ trước khi can thiệp vào mã nguồn.
|
|
447
108
|
|
|
448
109
|
---
|
|
449
110
|
|
|
450
111
|
## Scope
|
|
451
|
-
- ✅ Read requirements and design docs (Context Loading)
|
|
452
|
-
- ✅ Implement feature adhering to R-C-09 (Anti-slop) and R-SEC-04 (Zero-Trust)
|
|
453
|
-
- ✅ Write unit/integration tests as required
|
|
454
|
-
- ✅ Run self-audit using qk-validation-gate before finishing
|
|
455
|
-
|
|
456
|
-
## Non-Goals
|
|
457
|
-
- ❌ Skip validation gate
|
|
458
|
-
- ❌ Bypass R-SEC-04 (Zero-Trust) input validation
|
|
459
|
-
- ❌ Write 'spaghetti' code or giant God Files
|
|
460
112
|
|
|
461
|
-
|
|
113
|
+
✅ Skill này làm:
|
|
114
|
+
- Phân tích yêu cầu và định hình kiến trúc tính năng tương thích với codebase.
|
|
115
|
+
- Định nghĩa type-safe contracts, schemas và dữ liệu liên quan.
|
|
116
|
+
- Triển khai code tính năng hoàn chỉnh qua các tầng (FE UI, BE controller/service, routing).
|
|
117
|
+
- Xử lý đầy đủ các trạng thái biên: loading, error, empty data, pagination, boundary conditions.
|
|
118
|
+
- Tự kiểm toán (Self-audit) sau khi implement: linting, typecheck, và format code.
|
|
462
119
|
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
| P2 | Context Graph verification (dependencies) | Never |
|
|
468
|
-
| P3 | Implementation (Code) | Never |
|
|
469
|
-
| P4 | Testing & Validation Gate | Never |
|
|
470
|
-
| P5 | Documentation | Budget < 30% |
|
|
120
|
+
❌ Skill này KHÔNG làm:
|
|
121
|
+
- Sửa lỗi crash phát sinh đột xuất không nằm trong phạm vi feature mới (→ `qk-bug-resolution`).
|
|
122
|
+
- Tái cấu trúc quy mô lớn codebase không phục vụ feature (→ `qk-refactor`).
|
|
123
|
+
- Chạy đợt audit bảo mật tổng thể toàn dự án (→ `qk-security-audit`).
|
|
471
124
|
|
|
472
125
|
---
|
|
473
126
|
|
|
474
|
-
##
|
|
475
|
-
|
|
476
|
-
### Phase 1 — Context Loading
|
|
477
|
-
1. Read feature spec / requirements.
|
|
478
|
-
2. Read `DESIGN.md` if UI is involved.
|
|
479
|
-
3. Verify dependency graph via `qk-context-loader`.
|
|
127
|
+
## Execution Steps
|
|
480
128
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
129
|
+
### Step 1 — Context Loading & Gap Analysis
|
|
130
|
+
```
|
|
131
|
+
Inputs: Yêu cầu tính năng từ user, DEV_PROFILE.md, mã nguồn hiện tại
|
|
132
|
+
Actions:
|
|
133
|
+
- Khảo sát các modules, components, services hiện có liên quan đến tính năng.
|
|
134
|
+
- Lập danh sách các files cần tạo mới và files cần chỉnh sửa.
|
|
135
|
+
- Xác định dependency mới (nếu có) và đối chiếu với constraints trong DEV_PROFILE.md.
|
|
136
|
+
Output: Feature Implementation Plan
|
|
137
|
+
```
|
|
489
138
|
|
|
490
|
-
###
|
|
491
|
-
|
|
492
|
-
|
|
139
|
+
### Step 2 — Contract & Architecture Design
|
|
140
|
+
```
|
|
141
|
+
Inputs: Feature Implementation Plan
|
|
142
|
+
Actions:
|
|
143
|
+
- Thiết kế interface/types, DTO, data contracts giữa các tầng.
|
|
144
|
+
- Xác định state management và data flow (Client state, Server cache, DB model).
|
|
145
|
+
- Dự phòng các kịch bản ngoại lệ (empty data, network failure, unauthorized).
|
|
146
|
+
Output: Type definitions & Contract drafts
|
|
147
|
+
```
|
|
493
148
|
|
|
494
|
-
###
|
|
495
|
-
|
|
496
|
-
|
|
149
|
+
### Step 3 — Incremental Implementation
|
|
150
|
+
```
|
|
151
|
+
Inputs: Type definitions, Contract drafts
|
|
152
|
+
Actions:
|
|
153
|
+
- Viết code theo thứ tự từ lõi (Core/Domain/Model) → Service/Logic → Presentation/UI.
|
|
154
|
+
- Tuân thủ quy ước đặt tên (naming conventions) và design system tokens của dự án.
|
|
155
|
+
- Không hardcode các giá trị cấu hình, URL hay magic numbers.
|
|
156
|
+
Output: Functional implementation
|
|
157
|
+
```
|
|
497
158
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
159
|
+
### Step 4 — Self-Audit & Quality Gate
|
|
160
|
+
```
|
|
161
|
+
Inputs: Modified & Created files
|
|
162
|
+
Actions:
|
|
163
|
+
- Kiểm tra lint và type checking.
|
|
164
|
+
- Rà soát edge cases: null/undefined checks, error boundary handling.
|
|
165
|
+
- Đảm bảo không làm hỏng các tính năng cũ lân cận (regressions).
|
|
166
|
+
Exit: SUCCESS nếu code pass types/lint và đạt mọi acceptance criteria.
|
|
167
|
+
```
|
|
501
168
|
|
|
502
169
|
---
|
|
503
170
|
|
|
504
|
-
##
|
|
505
|
-
| Level | Condition | Action |
|
|
506
|
-
|-------|-----------|--------|
|
|
507
|
-
| HIGH | Requirements clear, tests pass, validation clean | Report SUCCESS |
|
|
508
|
-
| MEDIUM | Specs ambiguous, some assumptions made | Ask user to review |
|
|
509
|
-
| LOW | Lacking specs or API contracts | EXIT: BLOCKED |
|
|
171
|
+
## Prompt Template
|
|
510
172
|
|
|
511
|
-
|
|
173
|
+
AI đọc `DEV_PROFILE.md` để lấy role + stack. Bạn chỉ cần mô tả **WHAT**, không cần nhắc lại stack.
|
|
512
174
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
175
|
+
```
|
|
176
|
+
Tính năng: [Tên / mục đích tính năng]
|
|
177
|
+
Màn hình: [Trang / route / component liên quan — hoặc "mới hoàn toàn"]
|
|
178
|
+
Done khi: [User thấy gì / hệ thống làm gì — tiêu chí cụ thể]
|
|
179
|
+
Edge cases: [Điều kiện đặc biệt, dữ liệu rỗng, lỗi cần xử lý]
|
|
180
|
+
Không được: [Ràng buộc — không đổi API này, không xóa field kia]
|
|
181
|
+
```
|
|
520
182
|
|
|
521
183
|
---
|
|
522
184
|
|
|
523
|
-
|
|
185
|
+
### Theo Role — AI sẽ phân tích kỹ thuật như sau:
|
|
186
|
+
|
|
187
|
+
**role: fe**
|
|
524
188
|
```
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
189
|
+
Tính năng: Infinite scroll cho danh sách sản phẩm
|
|
190
|
+
Màn hình: /products — ProductList.tsx đã có
|
|
191
|
+
Done khi: Scroll đến cuối → tự load thêm 20 sản phẩm, có loading indicator
|
|
192
|
+
Edge cases: Hết data → hiện "Đã xem tất cả", lỗi API → hiện retry button
|
|
193
|
+
Không được: Không đổi ProductCard component
|
|
529
194
|
```
|
|
195
|
+
→ AI phân tích: intersection observer vs scroll event, React Query `useInfiniteQuery`,
|
|
196
|
+
cache invalidation, skeleton vs spinner, bundle impact của thư viện.
|
|
530
197
|
|
|
531
|
-
|
|
198
|
+
**role: be**
|
|
199
|
+
```
|
|
200
|
+
Tính năng: API pagination cho /products với cursor-based paging
|
|
201
|
+
Màn hình: GET /api/products — route đã có nhưng chỉ trả toàn bộ
|
|
202
|
+
Done khi: Trả { data, nextCursor, hasMore }, tối đa 20 items/page
|
|
203
|
+
Edge cases: cursor không hợp lệ → 400, không có data → { data: [], hasMore: false }
|
|
204
|
+
Không được: Không đổi response shape của existing fields
|
|
205
|
+
```
|
|
206
|
+
→ AI phân tích: cursor vs offset trade-off, index strategy trên DB,
|
|
207
|
+
validation middleware, backward compatibility của response schema.
|
|
532
208
|
|
|
533
|
-
|
|
534
|
-
### Consumes
|
|
535
|
-
```json
|
|
536
|
-
{
|
|
537
|
-
"from": "user or qk-product-specification",
|
|
538
|
-
"required_fields": ["feature_spec", "acceptance_criteria"]
|
|
539
|
-
}
|
|
209
|
+
**role: fullstack**
|
|
540
210
|
```
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
}
|
|
211
|
+
Tính năng: Thêm chức năng export danh sách đơn hàng ra CSV
|
|
212
|
+
Màn hình: /orders — có table hiện tại, cần thêm nút Export
|
|
213
|
+
Done khi: Click Export → tải file CSV với đúng cột, chỉ export filtered data
|
|
214
|
+
Edge cases: > 10k rows → stream response, không có data → disable button
|
|
215
|
+
Không được: Không thêm dependency mới nếu native API đủ dùng
|
|
547
216
|
```
|
|
217
|
+
→ AI phân tích: FE trigger + progress UX, BE streaming response vs buffer,
|
|
218
|
+
type-safe contract giữa FE-BE, memory safety khi dataset lớn.
|
|
548
219
|
|
|
549
|
-
|
|
220
|
+
**role: data**
|
|
221
|
+
```
|
|
222
|
+
Tính năng: Pipeline load daily sales data từ PostgreSQL → BigQuery
|
|
223
|
+
Màn hình: DAG mới trong Airflow — incremental load
|
|
224
|
+
Done khi: Chạy hàng ngày 2AM, chỉ load data của ngày hôm trước, idempotent
|
|
225
|
+
Edge cases: Re-run phải cho kết quả giống nhau, source schema thay đổi → alert
|
|
226
|
+
Không được: Không truncate table, chỉ upsert
|
|
227
|
+
```
|
|
228
|
+
→ AI phân tích: watermark strategy, partition pruning, schema evolution handling,
|
|
229
|
+
idempotency key design, data quality assertion trước khi load.
|
|
550
230
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
231
|
+
**role: ai-engineer**
|
|
232
|
+
```
|
|
233
|
+
Tính năng: RAG pipeline trả lời câu hỏi từ tài liệu nội bộ
|
|
234
|
+
Màn hình: Chat UI mới — /chat route
|
|
235
|
+
Done khi: User hỏi → AI trả lời có citation từ đúng document
|
|
236
|
+
Edge cases: Câu hỏi ngoài scope → "Tôi không tìm thấy thông tin liên quan"
|
|
237
|
+
Không được: Không hallucinate khi không có context
|
|
238
|
+
```
|
|
239
|
+
→ AI phân tích: chunking strategy, embedding model choice, retrieval (BM25 vs dense),
|
|
240
|
+
reranking, context stuffing vs summarization, eval metrics (faithfulness, relevance).
|
|
558
241
|
|
|
559
|
-
|
|
242
|
+
**role: devops**
|
|
243
|
+
```
|
|
244
|
+
Tính năng: CI pipeline tự động chạy test + deploy lên staging khi merge PR
|
|
245
|
+
Màn hình: .github/workflows/ — chưa có file nào
|
|
246
|
+
Done khi: PR merge → test pass → deploy staging → notify Slack
|
|
247
|
+
Edge cases: Test fail → stop pipeline, notify người tạo PR
|
|
248
|
+
Không được: Không auto-deploy production
|
|
249
|
+
```
|
|
250
|
+
→ AI phân tích: workflow triggers, secrets management, caching strategy,
|
|
251
|
+
environment isolation, rollback mechanism, notification integration.
|
|
@@ -25,4 +25,4 @@ metrics:
|
|
|
25
25
|
description: Agent có tự kiểm tra lại code thông qua Validation Gate không?
|
|
26
26
|
weight: 30
|
|
27
27
|
criteria:
|
|
28
|
-
- Bắt buộc
|
|
28
|
+
- Bắt buộc chạy quality gate (shared verify step / linter / tests) trước khi kết thúc (30đ)
|