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.
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 +37 -19
  5. package/.agents/registry/index.yaml +59 -13
  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 -377
  10. package/.agents/skills/qk-access-policy/SKILL.md +98 -473
  11. package/.agents/skills/qk-agent-observability/SKILL.md +3 -439
  12. package/.agents/skills/qk-ai-builder/SKILL.md +132 -565
  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 -456
  17. package/.agents/skills/qk-bug-resolution/SKILL.md +128 -561
  18. package/.agents/skills/qk-code-review/SKILL.md +142 -420
  19. package/.agents/skills/qk-context-loader/SKILL.md +99 -471
  20. package/.agents/skills/qk-data-engineer/SKILL.md +119 -340
  21. package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -488
  22. package/.agents/skills/qk-db-optimizer/SKILL.md +102 -488
  23. package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -461
  24. package/.agents/skills/qk-devops-platform/SKILL.md +77 -463
  25. package/.agents/skills/qk-docs/SKILL.md +88 -494
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +4 -588
  27. package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -343
  28. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
  29. package/.agents/skills/qk-feature-delivery/SKILL.md +137 -445
  30. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  31. package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -479
  32. package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
  33. package/.agents/skills/qk-orchestrator/SKILL.md +63 -502
  34. package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
  35. package/.agents/skills/qk-product-specification/SKILL.md +70 -479
  36. package/.agents/skills/qk-production-release/SKILL.md +80 -537
  37. package/.agents/skills/qk-project-audit/SKILL.md +174 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +243 -471
  39. package/.agents/skills/qk-project-health/SKILL.md +97 -496
  40. package/.agents/skills/qk-project-memory/SKILL.md +76 -21
  41. package/.agents/skills/qk-refactor/SKILL.md +167 -384
  42. package/.agents/skills/qk-security-audit/SKILL.md +141 -463
  43. package/.agents/skills/qk-security-audit/capability.yaml +1 -2
  44. package/.agents/skills/qk-system-evolution/SKILL.md +343 -343
  45. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
  46. package/.agents/skills/qk-test-engineering/SKILL.md +119 -509
  47. package/.agents/skills/qk-ui-audit/SKILL.md +73 -537
  48. package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
  49. package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -514
  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 -603
  54. package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -463
  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,9 +1,9 @@
1
- ---
1
+ ---
2
2
  # ── Identity ───────────────────────────────────────────────
3
3
  name: qk-ui-system-builder
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  status: stable
6
- description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract."
6
+ description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract. Dùng skill này khi user nhắc đến: design system, token, setup css, ui system, tạo design system, cấu hình token — kể cả khi chỉ nói 'tạo file tailwind tokens từ bảng màu này'."
7
7
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
8
 
9
9
  # ── V9: Classification ─────────────────────────────────────
@@ -21,11 +21,14 @@ complexity:
21
21
  has_external_dependency: false
22
22
  has_breaking_change: false
23
23
 
24
- triggers:
25
- - "tạo design system"
26
- - "build token"
27
- - "ui system"
28
- - "setup css"
24
+ triggers:
25
+ - "design system"
26
+ - "token"
27
+ - "setup css"
28
+ - "ui system"
29
+ - "tạo design system"
30
+ - "cấu hình token"
31
+
29
32
 
30
33
  # ── V8: References ─────────────────────────────────────────
31
34
  workflow: feature-delivery
@@ -83,547 +86,98 @@ produces: [code, tokens]
83
86
  consumes: [design-md]
84
87
 
85
88
  token_budget:
86
- max_files_read: 2
87
- max_lines_per_read: 100
89
+ max_files_read: 3
90
+ max_lines_per_read: 150
88
91
  max_shell_commands: 0
89
92
  stop_early: true
90
93
 
91
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
94
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
92
95
  ---
93
96
 
94
- # qk-ui-system-builder — Design System Constructor
97
+ # qk-ui-system-builder — Design System & Token Constructor
95
98
 
96
99
  > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
97
100
 
101
+ Chịu trách nhiệm hiện thực hóa hệ thống Design Tokens (màu sắc, typography, spacing, shadows, radius) thành mã nguồn (CSS Variables, Tailwind Config, hoặc TypeScript Tokens) dựa trên tài liệu thiết kế (`DESIGN.md`). **Tuyệt đối không tự ý bịa đặt token ngoài hợp đồng thiết kế.**
102
+
98
103
  ---
99
104
 
100
- ## Memory Workflow
101
-
102
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
103
- - 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:
104
- - **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.
105
- - **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.
106
-
107
- ---
108
-
109
- ### Pre-flight Retrieve (Trước khi thực thi)
110
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
111
- bắt buộc tra cứu:
112
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
113
-
114
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
115
- - Architecture
116
- - Hard Bug
117
- - Convention
118
- - Pattern
119
- - Tech Debt Pattern
120
- - 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
121
-
122
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
123
- Không được xem Memory là Source of Truth.
124
- 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.
125
-
126
- ---
127
-
128
- ### Learning Flow (AI tự học có kiểm soát)
129
- - 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:
130
- - Hard Bug có khả năng tái diễn.
131
- - Pattern làm việc lặp lại trong dự án.
132
- - Convention hoặc quy tắc kiến trúc mới.
133
- - Quyết định Architecture quan trọng.
134
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
135
- - 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
136
-
137
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
138
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
139
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
140
-
141
- ---
142
-
143
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
144
- Sau khi hoàn thành task:
145
- - AI đánh giá các Candidate Memory đã tạo.
146
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
147
- - Đề xuất người dùng xem xét.
148
- - Gửi yêu cầu phê duyệt thông qua:
149
- - `/learn`
150
- - `qk-project-memory`
151
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
152
-
153
- ```
154
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
155
- ```
156
-
157
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
158
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
159
-
160
- ---
161
-
162
- ### Ignore (Không đưa vào Memory)
163
- Không lưu:
164
- - Trace log của một session đơn lẻ.
165
- - Temporary debugging data.
166
- - Output của một lần chạy test/scan.
167
- - Report health tạm thời của một đợt kiểm tra.
168
- - Lỗi nhỏ chỉ xảy ra một lần.
169
- - Thông tin không có khả năng tái sử dụng.
170
- - 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
171
-
172
- ---
173
-
174
- ### Golden Rule
175
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
176
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
177
-
178
- ---
179
-
180
-
181
-
182
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
183
- - 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:
184
- - **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.
185
- - **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.
186
-
187
- ---
188
-
189
- ### Pre-flight Retrieve (Trước khi thực thi)
190
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
191
- bắt buộc tra cứu:
192
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
193
-
194
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
195
- - Architecture
196
- - Hard Bug
197
- - Convention
198
- - Pattern
199
- - Tech Debt Pattern
200
- - 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
201
-
202
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
203
- Không được xem Memory là Source of Truth.
204
- 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.
205
-
206
- ---
207
-
208
- ### Learning Flow (AI tự học có kiểm soát)
209
- - 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:
210
- - Hard Bug có khả năng tái diễn.
211
- - Pattern làm việc lặp lại trong dự án.
212
- - Convention hoặc quy tắc kiến trúc mới.
213
- - Quyết định Architecture quan trọng.
214
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
215
- - 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
216
-
217
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
218
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
219
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
220
-
221
- ---
222
-
223
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
224
- Sau khi hoàn thành task:
225
- - AI đánh giá các Candidate Memory đã tạo.
226
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
227
- - Đề xuất người dùng xem xét.
228
- - Gửi yêu cầu phê duyệt thông qua:
229
- - `/learn`
230
- - `qk-project-memory`
231
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
232
-
233
- ```
234
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
235
- ```
236
-
237
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
238
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
239
-
240
- ---
241
-
242
- ### Ignore (Không đưa vào Memory)
243
- Không lưu:
244
- - Trace log của một session đơn lẻ.
245
- - Temporary debugging data.
246
- - Output của một lần chạy test/scan.
247
- - Report health tạm thời của một đợt kiểm tra.
248
- - Lỗi nhỏ chỉ xảy ra một lần.
249
- - Thông tin không có khả năng tái sử dụng.
250
- - 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
251
-
252
- ---
253
-
254
- ### Golden Rule
255
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
256
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
257
-
258
- ---
259
-
260
-
261
-
262
- ### Pre-flight Retrieve (Trước khi thực thi)
263
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
264
- bắt buộc tra cứu:
265
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
266
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
267
-
268
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
269
- - Architecture
270
- - Hard Bug
271
- - Convention
272
- - Pattern
273
- - Tech Debt Pattern
274
- - 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
275
-
276
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
277
- Không được xem Memory là Source of Truth.
278
- 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.
279
-
280
- ---
281
-
282
- ### Learning Flow (AI tự học có kiểm soát)
283
- - 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:
284
- - Hard Bug có khả năng tái diễn.
285
- - Pattern làm việc lặp lại trong dự án.
286
- - Convention hoặc quy tắc kiến trúc mới.
287
- - Quyết định Architecture quan trọng.
288
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
289
- - 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
290
-
291
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
292
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
293
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
294
-
295
- ---
296
-
297
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
298
- Sau khi hoàn thành task:
299
- - AI đánh giá các Candidate Memory đã tạo.
300
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
301
- - Đề xuất người dùng xem xét.
302
- - Gửi yêu cầu phê duyệt thông qua:
303
- - `/learn`
304
- - `qk-project-memory`
305
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
306
-
307
- ```
308
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
309
- ```
310
-
311
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
312
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
313
-
314
- ---
315
-
316
- ### Ignore (Không đưa vào Memory)
317
- Không lưu:
318
- - Trace log của một session đơn lẻ.
319
- - Temporary debugging data.
320
- - Output của một lần chạy test/scan.
321
- - Report health tạm thời của một đợt kiểm tra.
322
- - Lỗi nhỏ chỉ xảy ra một lần.
323
- - Thông tin không có khả năng tái sử dụng.
324
- - 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
325
-
326
- ---
327
-
328
- ### Golden Rule
329
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
330
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
331
-
332
- ---
333
- ---
334
-
335
- ### Learning Flow (AI tự học có kiểm soát)
336
- - 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:
337
- - Hard Bug có khả năng tái diễn.
338
- - Pattern làm việc lặp lại trong dự án.
339
- - Convention hoặc quy tắc kiến trúc mới.
340
- - Quyết định Architecture quan trọng.
341
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
342
- - 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
343
-
344
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
345
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
346
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
347
-
348
- ---
349
-
350
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
351
- Sau khi hoàn thành task:
352
- - AI đánh giá các Candidate Memory đã tạo.
353
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
354
- - Đề xuất người dùng xem xét.
355
- - Gửi yêu cầu phê duyệt thông qua:
356
- - `/learn`
357
- - `qk-project-memory`
358
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
359
-
360
- ```
361
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
362
- ```
363
-
364
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
365
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
366
-
367
- ---
368
-
369
- ### Ignore (Không đưa vào Memory)
370
- Không lưu:
371
- - Trace log của một session đơn lẻ.
372
- - Temporary debugging data.
373
- - Output của một lần chạy test/scan.
374
- - Report health tạm thời của một đợt kiểm tra.
375
- - Lỗi nhỏ chỉ xảy ra một lần.
376
- - Thông tin không có khả năng tái sử dụng.
377
- - 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
378
-
379
- ---
380
-
381
- ### Golden Rule
382
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
383
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
384
-
385
- ---
386
- ---
387
-
388
- ### Learning Flow (AI tự học có kiểm soát)
389
- - 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:
390
- - Hard Bug có khả năng tái diễn.
391
- - Pattern làm việc lặp lại trong dự án.
392
- - Convention hoặc quy tắc kiến trúc mới.
393
- - Quyết định Architecture quan trọng.
394
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
395
- - 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
396
-
397
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
398
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
399
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
400
-
401
- ---
402
-
403
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
404
- Sau khi hoàn thành task:
405
- - AI đánh giá các Candidate Memory đã tạo.
406
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
407
- - Đề xuất người dùng xem xét.
408
- - Gửi yêu cầu phê duyệt thông qua:
409
- - `/learn`
410
- - `qk-project-memory`
411
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
412
-
413
- ```
414
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
415
- ```
416
-
417
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
418
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
419
-
420
- ---
421
-
422
- ### Ignore (Không đưa vào Memory)
423
- Không lưu:
424
- - Trace log của một session đơn lẻ.
425
- - Temporary debugging data.
426
- - Output của một lần chạy test/scan.
427
- - Report health tạm thời của một đợt kiểm tra.
428
- - Lỗi nhỏ chỉ xảy ra một lần.
429
- - Thông tin không có khả năng tái sử dụng.
430
- - 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
431
-
432
- ---
433
-
434
- ### Golden Rule
435
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
436
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
437
-
438
- ---
439
- ---
440
- ---
441
- ---
442
-
443
105
  ## Preconditions
444
- - [ ] `DESIGN.md` exists with color, spacing, typography tokens
445
-
446
- ```
447
- On missing precondition:
448
- EXIT: BLOCKED
449
- Message: "DESIGN.md missing. Run qk-project-bootstrap to create one."
450
- ```
451
106
 
452
- ---
453
-
454
- ## Scope
455
- - ✅ Extract tokens from DESIGN.md ONLY — never invent
456
- - ✅ Generate CSS custom properties (variables) or framework theme
457
- - ✅ Ensure all components are accessible (A11y)
107
+ Trước khi tạo hoặc sửa đổi file token, AI BẮT BUỘC kiểm tra:
458
108
 
459
- ## Non-Goals
460
- - Invent tokens not in DESIGN.md (e.g., standard Tailwind defaults)
461
- - Create duplicate tokens for same visual value
462
- - Generate component library without token foundation
109
+ - [ ] Tìm và đọc file đặc tả thiết kế (`DESIGN.md` hoặc styleguide document).
110
+ - [ ] Xác định CSS framework đang sử dụng từ `.agents/DEV_PROFILE.md` (Tailwind CSS, CSS Modules, Styled Components, Vanilla CSS).
111
+ - [ ] Kiểm tra xem đã có hệ thống tokens chưa (tránh ghi đè làm vỡ giao diện đang chạy).
112
+ - [ ] Nếu không `DESIGN.md` và user không cung cấp giá trị màu sắc/kích thước cụ thể:
113
+ → **EXIT: BLOCKED**
114
+ → Báo cáo user yêu cầu cung cấp bảng màu (Palette) hoặc file quy chuẩn thiết kế trước.
463
115
 
464
116
  ---
465
117
 
466
- ## Token Naming Convention
467
-
468
- ```css
469
- /* Colors — HSL always */
470
- --color-[role]-[shade]: hsl(H, S%, L%);
471
- /* Example: */
472
- --color-primary-500: hsl(220, 80%, 55%);
473
- --color-surface-100: hsl(220, 15%, 98%);
474
-
475
- /* Spacing — scale-based */
476
- --space-[n]: [n * base]px;
477
- /* Example: */
478
- --space-1: 4px; --space-2: 8px; --space-4: 16px;
479
-
480
- /* Typography */
481
- --font-[family]: '[Name]', fallback;
482
- --font-size-[scale]: [value]rem;
483
- --font-weight-[name]: [value];
484
-
485
- /* Border Radius */
486
- --radius-[size]: [value]px;
487
-
488
- /* Shadows */
489
- --shadow-[level]: [value];
490
-
491
- /* Animation */
492
- --duration-[speed]: [value]ms;
493
- --ease-[type]: [cubic-bezier or keyword];
494
-
495
- /* Z-index */
496
- --z-[layer]: [value]; /* dropdown=100, modal=200, toast=300 */
497
- ```
118
+ ## Scope
498
119
 
499
- ---
120
+ ✅ Skill này làm:
121
+ - Chuyển đổi mã màu Hex/HSL thành semantic CSS custom properties (`--color-primary`, `--color-surface-base`).
122
+ - Cấu hình file `tailwind.config.js` / `tailwind.config.ts` khớp chính xác với Design Tokens.
123
+ - Khai báo token cho Spacing (bội số của 4px/8px), Font sizes, Border Radius, Shadows, Transitions.
124
+ - Tạo theme hỗ trợ Light/Dark mode qua CSS variables.
125
+ - Xuất type definition TypeScript cho autocomplete token trong code.
500
126
 
501
- ## Dark/Light Mode Pattern
502
- ```css
503
- :root {
504
- --color-background: hsl(0, 0%, 100%);
505
- --color-text: hsl(220, 15%, 10%);
506
- }
507
-
508
- [data-theme="dark"] {
509
- --color-background: hsl(220, 15%, 10%);
510
- --color-text: hsl(220, 10%, 90%);
511
- }
512
- ```
127
+ Skill này KHÔNG làm:
128
+ - Dựng các màn hình hay component hoàn chỉnh (→ `qk-ui-builder`).
129
+ - Định nghĩa chiến lược quy chuẩn thiết kế cấp cao (→ `qk-design-system-engineering`).
130
+ - Sửa đổi business logic backend.
513
131
 
514
132
  ---
515
133
 
516
- ## Workflow
517
-
518
- ### Phase 1 — Extract from DESIGN.md
519
- 1. Read DESIGN.md → list all defined tokens
520
- 2. Categorize: Colors / Spacing / Typography / Radius / Shadow / Animation
521
-
522
- ### Phase 2 — Generate Token File
523
- 1. Create `src/styles/tokens.css` (or equivalent)
524
- 2. Apply naming convention above
525
- 3. Add dark mode variants if DESIGN.md specifies
134
+ ## Execution Steps
526
135
 
527
- ### Phase 3Verify No Invented Tokens
528
- 1. Cross-check: every generated token has source in DESIGN.md
529
- 2. Flag any token that was "inferred" vs explicitly defined
530
-
531
- **Decision:**
136
+ ### Step 1Parse Design Specs & Contracts
532
137
  ```
533
- IF all tokens sourced from DESIGN.md EXIT: SUCCESS
534
- IF some tokens inferred (MEDIUM confidence) → EXIT: PARTIAL, list them
138
+ Inputs: DESIGN.md, Bảng màu từ user
139
+ Actions:
140
+ - Trích xuất: Primitive tokens (Brand colors, Neutrals, Font families).
141
+ - Trích xuất: Semantic tokens (Background, Foreground, Border, Primary, Destructive).
142
+ - Phân loại thang đo Spacing, Radius và Elevation (box-shadow).
143
+ Output: Structured Token Contract
535
144
  ```
536
145
 
537
- ---
538
-
539
- ---
540
-
541
- ## Priority Order
542
-
543
- ---
544
-
545
- ## Output Format
546
-
547
- ---
548
- ## Exit Codes
549
- | Code | Meaning | When |
550
- |------|---------|------|
551
- | SUCCESS | All tokens extracted from DESIGN.md, naming convention applied | All generated |
552
- | PARTIAL | Some tokens inferred (not explicitly in DESIGN.md) | Inferred values used |
553
- | BLOCKED | DESIGN.md missing or has no tokens | Cannot start |
554
- | FAILED | Token conflicts detected (duplicate values, naming collision) | Conflict |
555
-
556
- ---
557
-
558
- ## Confidence Model
559
- | Level | Condition | Action |
560
- |-------|-----------|--------|
561
- | HIGH | Token explicitly exists in DESIGN.md | Extract and map |
562
- | MEDIUM | Token value inferred or estimated based on related tokens | Note assumption |
563
- | LOW | Core scale missing entirely (e.g. no spacing definition) | EXIT: BLOCKED |
564
-
565
- ---
566
-
567
- ## Severity
568
- | Level | Definition | Example |
569
- |-------|-----------|---------|
570
- | CRITICAL | Hardcoded values injected without being tokens | Missing the point of the system |
571
- | HIGH | Token naming convention violated | `primary-color` instead of `--color-primary` |
572
- | MEDIUM | Dark mode not supported | Hardcoded white background |
573
- | LOW | Unused token generated | Extraneous variables |
574
-
575
- ---
576
-
577
- ## Evidence Format
146
+ ### Step 2 — CSS Variable & Theme Definition
578
147
  ```
579
- [SEVERITY] src/styles/tokens.css:LINE
580
- Issue: [specific violation or gap]
581
- Confidence: HIGH
582
- Fix: [specific change]
148
+ Inputs: Structured Token Contract
149
+ Actions:
150
+ - Khởi tạo `:root` chứa biến màu Light mode.
151
+ - Khởi tạo `.dark` hoặc `[data-theme="dark"]` chứa biến màu Dark mode tương ứng.
152
+ - Bảo đảm tỉ lệ tương phản đạt chuẩn WCAG AA giữa Foreground và Background.
153
+ Output: globals.css / theme.css
583
154
  ```
584
155
 
585
- ---
586
-
587
- ## Retry Policy
156
+ ### Step 3 — Framework Config Integration
588
157
  ```
589
- Token generation fails
590
- └─ Check if naming collision or syntax error
591
- ├─ Syntax error fix CSS/SCSS format retry
592
- └─ Collision deduplicate retry
593
- └─ Do NOT auto-retry more than 1 time
158
+ Inputs: globals.css, Tailwind config (hoặc tương đương)
159
+ Actions:
160
+ - Mở rộng (extend) theme của Tailwind: colors, spacing, borderRadius, fontSize.
161
+ - Ánh xạ trực tiếp sang `var(--...)` để tận dụng tính năng theme switching động.
162
+ Output: tailwind.config.ts / tokens.ts
594
163
  ```
595
164
 
596
- ---
597
-
598
- ## Escalation Rules
165
+ ### Step 4 — Verification & Type Generation
599
166
  ```
600
- BLOCKED: DESIGN.md missing or empty
601
- Missing:
602
- - Valid DESIGN.md with token specifications
603
- Questions:
604
- 1. Bạn có file design reference nào khác không?
605
- Recommended Assumptions:
606
- - Generate default Tailwind-like scale if requested
167
+ Inputs: Generated config files
168
+ Actions:
169
+ - Kiểm tra pháp config file.
170
+ - Đảm bảo token types được export rõ ràng cho IDE autocomplete.
171
+ Exit: SUCCESS
607
172
  ```
608
173
 
609
174
  ---
610
175
 
611
- ## Handoff Contract
612
- ### Consumes
613
- ```json
614
- {
615
- "from": "user or project-bootstrap",
616
- "required_fields": ["design_md_path"],
617
- "optional_fields": ["css_framework", "output_format"]
618
- }
176
+ ## Prompt Template
177
+
619
178
  ```
620
- ### Produces
621
- ```json
622
- {
623
- "to": "user or design-to-code",
624
- "output_fields": ["token_file_path", "inferred_tokens", "exit_code"]
625
- }
179
+ Tài liệu thiết kế: [Đường dẫn DESIGN.md hoặc paste bảng màu]
180
+ Framework CSS: [Tailwind CSS / CSS Modules / Vanilla CSS]
181
+ Dark Mode: [Có hỗ trợ không — class / data-theme / media query]
182
+ Yêu cầu riêng: [Cần bổ sung font chữ mới, radius đặc biệt, ...]
626
183
  ```
627
-
628
- ---
629
-