ai-developer-skill-os 9.1.1 → 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.
Files changed (63) hide show
  1. package/.agents/AGENTS.md +139 -42
  2. package/.agents/DEV_PROFILE.md +95 -0
  3. package/.agents/registry/capability-graph.yml +171 -334
  4. package/.agents/registry/graph.json +52 -18
  5. package/.agents/registry/index.yaml +66 -12
  6. package/.agents/registry/skills-index.yml +204 -447
  7. package/.agents/rules/coding.md +23 -0
  8. package/.agents/rules/global.md +44 -30
  9. package/.agents/skills/_template/SKILL.md +2 -300
  10. package/.agents/skills/qk-access-policy/SKILL.md +98 -393
  11. package/.agents/skills/qk-agent-observability/SKILL.md +3 -359
  12. package/.agents/skills/qk-ai-builder/SKILL.md +132 -485
  13. package/.agents/skills/qk-api-consumer/SKILL.md +256 -0
  14. package/.agents/skills/qk-api-consumer/capability.yaml +21 -0
  15. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +29 -0
  16. package/.agents/skills/qk-api-lifecycle/SKILL.md +133 -376
  17. package/.agents/skills/qk-bug-resolution/SKILL.md +128 -481
  18. package/.agents/skills/qk-code-review/SKILL.md +142 -340
  19. package/.agents/skills/qk-context-loader/SKILL.md +99 -391
  20. package/.agents/skills/qk-data-engineer/SKILL.md +253 -0
  21. package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -408
  22. package/.agents/skills/qk-db-optimizer/SKILL.md +102 -408
  23. package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -381
  24. package/.agents/skills/qk-devops-platform/SKILL.md +77 -383
  25. package/.agents/skills/qk-docs/SKILL.md +88 -414
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +4 -508
  27. package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -263
  28. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
  29. package/.agents/skills/qk-feature-delivery/SKILL.md +137 -365
  30. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  31. package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -399
  32. package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
  33. package/.agents/skills/qk-orchestrator/SKILL.md +63 -422
  34. package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
  35. package/.agents/skills/qk-product-specification/SKILL.md +70 -399
  36. package/.agents/skills/qk-production-release/SKILL.md +80 -457
  37. package/.agents/skills/qk-project-audit/SKILL.md +174 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +244 -392
  39. package/.agents/skills/qk-project-health/SKILL.md +97 -416
  40. package/.agents/skills/qk-project-memory/SKILL.md +76 -21
  41. package/.agents/skills/qk-refactor/SKILL.md +167 -304
  42. package/.agents/skills/qk-security-audit/SKILL.md +141 -383
  43. package/.agents/skills/qk-security-audit/capability.yaml +1 -2
  44. package/.agents/skills/qk-system-evolution/SKILL.md +343 -263
  45. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
  46. package/.agents/skills/qk-test-engineering/SKILL.md +119 -429
  47. package/.agents/skills/qk-ui-audit/SKILL.md +73 -457
  48. package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
  49. package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -434
  50. package/.agents/skills/qk-upgrade/SKILL.md +301 -0
  51. package/.agents/skills/qk-upgrade/capability.yaml +24 -0
  52. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +26 -0
  53. package/.agents/skills/qk-validation-gate/SKILL.md +4 -523
  54. package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -383
  55. package/.agents/workflows/bug-resolution.yml +6 -6
  56. package/.agents/workflows/context-discovery.yml +94 -0
  57. package/.agents/workflows/feature-delivery.yml +8 -4
  58. package/.agents/workflows/refactor.yml +6 -3
  59. package/.agents/workflows/shared/quality-gate.yml +94 -0
  60. package/.agents/workflows/skin-governance.yml +115 -0
  61. package/README.md +152 -67
  62. package/package.json +2 -2
  63. package/tooling/build-registry.js +30 -8
@@ -1,29 +1,29 @@
1
- name: qk-fe-api-integration-eval
2
- description: Đánh giá chất lượng tích hợp API vào giao diện Frontend
3
- version: 9.1.0
4
- threshold: 85 # Đảm bảo tính toàn vẹn của DTO, UI State và ranh giới bảo mật
5
-
6
- metrics:
7
- - id: type_and_validation
8
- name: Khởi tạo Types và Validation (Zod)
9
- description: Agent có gen ra Types và Zod schema từ JSON payload mẫu không?
10
- weight: 30
11
- criteria:
12
- - Khởi tạo chính xác Zod Schema và xuất TypeScript interfaces (15đ)
13
- - Phân biệt rõ ràng các trường bắt buộc và tùy chọn (.optional(), .nullable()) (15đ)
14
-
15
- - id: architecture_compliance
16
- name: Tuân thủ Kiến trúc dự án (Base Architecture)
17
- description: Agent có tái sử dụng API Client có sẵn không?
18
- weight: 30
19
- criteria:
20
- - Ưu tiên dùng wrapper có sẵn (Axios/TanStack Query) thay vì viết raw fetch tràn lan (15đ)
21
- - Tuyệt đối không hardcode Base URL vào trong component (15đ)
22
-
23
- - id: ui_state_handling
24
- name: Xử lý State giao diện toàn diện
25
- description: Có bao phủ đủ 3 trạng thái Loading, Success, Error không?
26
- weight: 40
27
- criteria:
28
- - Xử lý mượt mà trạng thái Loading và Success (20đ)
29
- - Có cơ chế bắt lỗi HTTP bài bản (401, 404, 500, Network Error) và map với Error state của giao diện (20đ)
1
+ name: qk-fe-api-integration-eval
2
+ description: Đánh giá chất lượng tích hợp API vào giao diện Frontend
3
+ version: 9.1.0
4
+ threshold: 85 # Đảm bảo tính toàn vẹn của DTO, UI State và ranh giới bảo mật
5
+
6
+ metrics:
7
+ - id: type_and_validation
8
+ name: Khởi tạo Types và Validation (Zod)
9
+ description: Agent có gen ra Types và Zod schema từ JSON payload mẫu không?
10
+ weight: 30
11
+ criteria:
12
+ - Khởi tạo chính xác Zod Schema và xuất TypeScript interfaces (15đ)
13
+ - Phân biệt rõ ràng các trường bắt buộc và tùy chọn (.optional(), .nullable()) (15đ)
14
+
15
+ - id: architecture_compliance
16
+ name: Tuân thủ Kiến trúc dự án (Base Architecture)
17
+ description: Agent có tái sử dụng API Client có sẵn không?
18
+ weight: 30
19
+ criteria:
20
+ - Ưu tiên dùng wrapper có sẵn (Axios/TanStack Query) thay vì viết raw fetch tràn lan (15đ)
21
+ - Tuyệt đối không hardcode Base URL vào trong component (15đ)
22
+
23
+ - id: ui_state_handling
24
+ name: Xử lý State giao diện toàn diện
25
+ description: Có bao phủ đủ 3 trạng thái Loading, Success, Error không?
26
+ weight: 40
27
+ criteria:
28
+ - Xử lý mượt mà trạng thái Loading và Success (20đ)
29
+ - Có cơ chế bắt lỗi HTTP bài bản (401, 404, 500, Network Error) và map với Error state của giao diện (20đ)
@@ -1,9 +1,9 @@
1
- ---
1
+ ---
2
2
  # ── Identity ───────────────────────────────────────────────
3
3
  name: qk-feature-delivery
4
- version: 9.1.0
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-validation-gate
52
+ - qk-test-engineering
51
53
 
52
54
  knowledge_scope:
53
55
  owns:
@@ -82,398 +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
- ### Pre-flight Retrieve (Trước khi thực thi)
177
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
178
- bắt buộc tra cứu:
179
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
180
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
181
-
182
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
183
- - Architecture
184
- - Hard Bug
185
- - Convention
186
- - Pattern
187
- - Tech Debt Pattern
188
- - 👉 *Domain Focus:* Architecture / Pattern / Convention liên quan đến luồng tính năng hiện tại.
189
-
190
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
191
- Không được xem Memory là Source of Truth.
192
- 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.
193
-
194
- ---
195
-
196
- ### Learning Flow (AI tự học có kiểm soát)
197
- - 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:
198
- - Hard Bug có khả năng tái diễn.
199
- - Pattern làm việc lặp lại trong dự án.
200
- - Convention hoặc quy tắc kiến trúc mới.
201
- - Quyết định Architecture quan trọng.
202
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
203
- - 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
204
-
205
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
206
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
207
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
208
-
209
- ---
210
-
211
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
212
- Sau khi hoàn thành task:
213
- - AI đánh giá các Candidate Memory đã tạo.
214
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
215
- - Đề xuất người dùng xem xét.
216
- - Gửi yêu cầu phê duyệt thông qua:
217
- - `/learn`
218
- - `qk-project-memory`
219
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
220
-
221
- ```
222
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
223
- ```
224
-
225
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
226
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
227
-
228
- ---
229
-
230
- ### Ignore (Không đưa vào Memory)
231
- Không lưu:
232
- - Trace log của một session đơn lẻ.
233
- - Temporary debugging data.
234
- - Output của một lần chạy test/scan.
235
- - Report health tạm thời của một đợt kiểm tra.
236
- - Lỗi nhỏ chỉ xảy ra một lần.
237
- - Thông tin không có khả năng tái sử dụng.
238
- - 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
239
-
240
- ---
241
-
242
- ### Golden Rule
243
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
244
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
245
-
246
- ---
247
- ---
248
-
249
- ### Learning Flow (AI tự học có kiểm soát)
250
- - 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:
251
- - Hard Bug có khả năng tái diễn.
252
- - Pattern làm việc lặp lại trong dự án.
253
- - Convention hoặc quy tắc kiến trúc mới.
254
- - Quyết định Architecture quan trọng.
255
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
256
- - 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
257
-
258
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
259
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
260
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
261
-
262
- ---
263
-
264
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
265
- Sau khi hoàn thành task:
266
- - AI đánh giá các Candidate Memory đã tạo.
267
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
268
- - Đề xuất người dùng xem xét.
269
- - Gửi yêu cầu phê duyệt thông qua:
270
- - `/learn`
271
- - `qk-project-memory`
272
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
273
-
274
- ```
275
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
276
- ```
277
-
278
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
279
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
280
-
281
- ---
282
-
283
- ### Ignore (Không đưa vào Memory)
284
- Không lưu:
285
- - Trace log của một session đơn lẻ.
286
- - Temporary debugging data.
287
- - Output của một lần chạy test/scan.
288
- - Report health tạm thời của một đợt kiểm tra.
289
- - Lỗi nhỏ chỉ xảy ra một lần.
290
- - Thông tin không có khả năng tái sử dụng.
291
- - 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
292
-
293
- ---
294
-
295
- ### Golden Rule
296
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
297
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
298
-
299
- ---
300
- ---
301
-
302
- ### Learning Flow (AI tự học có kiểm soát)
303
- - 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:
304
- - Hard Bug có khả năng tái diễn.
305
- - Pattern làm việc lặp lại trong dự án.
306
- - Convention hoặc quy tắc kiến trúc mới.
307
- - Quyết định Architecture quan trọng.
308
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
309
- - 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
310
-
311
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
312
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
313
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
314
-
315
- ---
316
-
317
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
318
- Sau khi hoàn thành task:
319
- - AI đánh giá các Candidate Memory đã tạo.
320
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
321
- - Đề xuất người dùng xem xét.
322
- - Gửi yêu cầu phê duyệt thông qua:
323
- - `/learn`
324
- - `qk-project-memory`
325
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
326
-
327
- ```
328
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
329
- ```
330
-
331
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
332
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
333
-
334
- ---
335
-
336
- ### Ignore (Không đưa vào Memory)
337
- Không lưu:
338
- - Trace log của một session đơn lẻ.
339
- - Temporary debugging data.
340
- - Output của một lần chạy test/scan.
341
- - Report health tạm thời của một đợt kiểm tra.
342
- - Lỗi nhỏ chỉ xảy ra một lần.
343
- - Thông tin không có khả năng tái sử dụng.
344
- - 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
345
-
346
- ---
347
-
348
- ### Golden Rule
349
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
350
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
351
-
352
- ---
353
- ---
354
- ---
355
- ---
356
-
357
98
  ## Preconditions
358
- - [ ] Feature requirement is specific enough to implement (not just "add something")
359
- - [ ] `DESIGN.md` exists with required tokens if UI work is involved (colors, spacing, typography)
360
- - [ ] Context graph available OR `qk-context-loader` run first (for logic work)
361
99
 
362
- ```
363
- On missing precondition:
364
- EXIT: BLOCKED
365
- Message: "[Precondition] missing. See Escalation Rules."
366
- ```
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.
367
108
 
368
109
  ---
369
110
 
370
111
  ## Scope
371
- - ✅ Read requirements and design docs (Context Loading)
372
- - ✅ Implement feature adhering to R-C-09 (Anti-slop) and R-SEC-04 (Zero-Trust)
373
- - ✅ Write unit/integration tests as required
374
- - ✅ Run self-audit using qk-validation-gate before finishing
375
112
 
376
- ## Non-Goals
377
- - Skip validation gate
378
- - Bypass R-SEC-04 (Zero-Trust) input validation
379
- - Write 'spaghetti' code or giant God Files
380
-
381
- ---
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.
382
119
 
383
- ## Priority Order
384
- | P | Task | Skip Threshold |
385
- |---|------|----------------|
386
- | P1 | Load and read requirements & design | Never |
387
- | P2 | Context Graph verification (dependencies) | Never |
388
- | P3 | Implementation (Code) | Never |
389
- | P4 | Testing & Validation Gate | Never |
390
- | 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`).
391
124
 
392
125
  ---
393
126
 
394
- ## Workflow
127
+ ## Execution Steps
395
128
 
396
- ### Phase 1 — Context Loading
397
- 1. Read feature spec / requirements.
398
- 2. Read `DESIGN.md` if UI is involved.
399
- 3. Verify dependency graph via `qk-context-loader`.
400
-
401
- **Decision:**
402
- IF context is clear go to Phase 2
403
- ELSE → EXIT: BLOCKED ask user
404
-
405
- ### Phase 2 — Implementation (Code)
406
- 1. Write code in isolated steps.
407
- 2. **BẮT BUỘC tuân thủ R-C-09 (Zero Slop) và R-SEC-04 (Zero Trust).**
408
- 3. Keep functions < 30 lines, avoid God Files.
129
+ ### Step 1 — Context Loading & Gap Analysis
130
+ ```
131
+ Inputs: Yêu cầu tính năng từ user, DEV_PROFILE.md, 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ó) đối chiếu với constraints trong DEV_PROFILE.md.
136
+ Output: Feature Implementation Plan
137
+ ```
409
138
 
410
- ### Phase 3Testing
411
- 1. Write unit tests / integration tests.
412
- 2. Run test commands to verify.
139
+ ### Step 2Contract & 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
+ ```
413
148
 
414
- ### Phase 4Validation Gate (Self-Audit)
415
- 1. Hand off to `qk-validation-gate` or run linters.
416
- 2. Fix any reported violations immediately.
149
+ ### Step 3Incremental 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
+ ```
417
158
 
418
- **Decision:**
419
- IF validation passes → EXIT: SUCCESS
420
- IF validation fails → Fix and retry
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
+ ```
421
168
 
422
169
  ---
423
170
 
424
- ## Confidence Model
425
- | Level | Condition | Action |
426
- |-------|-----------|--------|
427
- | HIGH | Requirements clear, tests pass, validation clean | Report SUCCESS |
428
- | MEDIUM | Specs ambiguous, some assumptions made | Ask user to review |
429
- | LOW | Lacking specs or API contracts | EXIT: BLOCKED |
171
+ ## Prompt Template
430
172
 
431
- ---
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.
432
174
 
433
- ## Severity
434
- | Level | Definition |
435
- |-------|-----------|
436
- | CRITICAL | Broken functionality, security risk |
437
- | HIGH | Missing tests, validation gate failed |
438
- | MEDIUM | Minor UX issues |
439
- | LOW | Code style issues |
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 / 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
+ ```
440
182
 
441
183
  ---
442
184
 
443
- ## Evidence Format
185
+ ### Theo Role — AI sẽ phân tích kỹ thuật như sau:
186
+
187
+ **role: fe**
444
188
  ```
445
- [SEVERITY] path/to/file.ts
446
- Action: [What was implemented/fixed]
447
- Confidence: HIGH
448
- Validation: [PASS | FAIL]
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
449
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.
450
197
 
451
- ---
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.
452
208
 
453
- ## Handoff Contract
454
- ### Consumes
455
- ```json
456
- {
457
- "from": "user or qk-product-specification",
458
- "required_fields": ["feature_spec", "acceptance_criteria"]
459
- }
209
+ **role: fullstack**
460
210
  ```
461
- ### Produces
462
- ```json
463
- {
464
- "to": "qk-validation-gate",
465
- "output_fields": ["implemented_files", "test_status", "exit_code"]
466
- }
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
467
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.
468
219
 
469
- ---
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.
470
230
 
471
- ## Exit Codes
472
- | Code | Meaning | When |
473
- |------|---------|------|
474
- | SUCCESS | Feature completed, tests pass, validation clean | Normal |
475
- | PARTIAL | Feature mostly done, some minor issues | Budget hit |
476
- | BLOCKED | Missing requirements or design | Cannot start |
477
- | FAILED | Implementation fundamentally broken | Tests/Validation failed |
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 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 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).
478
241
 
479
- ---
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 gọi qk-validation-gate hoặc chạy linter/tests trước khi kết thúc (30đ)
28
+ - Bắt buộc chạy quality gate (shared verify step / linter / tests) trước khi kết thúc (30đ)