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-web-quality-gate
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  status: experimental
6
- description: "Kiểm toán tổng thể chất lượng Web: Accessibility (A11y), SEO, Web Performance, Security, UX Heuristics."
6
+ description: "Đo lường chất lượng kỹ thuật Web: Accessibility violations (WCAG), Core Web Vitals, Lighthouse score, SEO tags, security headers. Output là số đo và lỗi kỹ thuật cụ thể. Dùng skill này khi user nhắc đến: a11y, accessibility, wcag, lighthouse, core web vitals, seo audit, page speed, performance score, security headers — KHÔNG dùng cho review thiết kế UI hay spacing."
7
7
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
8
 
9
9
  # ── V9: Classification ─────────────────────────────────────
@@ -24,12 +24,17 @@ complexity:
24
24
  has_external_dependency: true
25
25
  has_breaking_change: false
26
26
 
27
- triggers:
28
- - "kiểm tra web"
29
- - "tối ưu web"
30
- - "lighthouse"
31
- - "audit ui"
32
- - "core web vitals"
27
+ triggers:
28
+ - "a11y"
29
+ - "accessibility"
30
+ - "wcag"
31
+ - "lighthouse"
32
+ - "core web vitals"
33
+ - "seo audit"
34
+ - "page speed"
35
+ - "performance score"
36
+ - "security headers"
37
+
33
38
 
34
39
  # ── V8: References ─────────────────────────────────────────
35
40
  workflow: feature-delivery
@@ -43,7 +48,8 @@ tools:
43
48
  - terminal
44
49
 
45
50
  related_skills:
46
- - qk-frontend-architecture
51
+ - qk-ui-audit
52
+ - qk-ui-builder
47
53
 
48
54
  knowledge_scope:
49
55
  domain:
@@ -85,7 +91,7 @@ latency: slow
85
91
  risk: low
86
92
  side_effects: read_only
87
93
  produces: [report]
88
- consumes: [user-description]
94
+ consumes: [user-description, source-code]
89
95
 
90
96
  token_budget:
91
97
  max_files_read: 5
@@ -93,483 +99,99 @@ token_budget:
93
99
  max_shell_commands: 2
94
100
  stop_early: true
95
101
 
96
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
102
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
97
103
  ---
98
104
 
99
- # qk-web-quality-gate — Web Quality Auditor
105
+ # qk-web-quality-gate — Web Quality, A11y & Performance Auditor
100
106
 
101
107
  > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
102
108
 
103
- ## Memory Workflow
104
-
105
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
106
- - 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:
107
- - **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.
108
- - **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.
109
-
110
- ---
111
-
112
- ### Pre-flight Retrieve (Trước khi thực thi)
113
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
114
- bắt buộc tra cứu:
115
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
116
-
117
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
118
- - Architecture
119
- - Hard Bug
120
- - Convention
121
- - Pattern
122
- - Tech Debt Pattern
123
- - 👉 *Domain Focus:* Convention / Hard Bug (vd: chỉ số Core Web Vitals LCP/CLS, rủi ro bot SEO/A11y).
124
-
125
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
126
- Không được xem Memory là Source of Truth.
127
- 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.
128
-
129
- ---
130
-
131
- ### Learning Flow (AI tự học có kiểm soát)
132
- - 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:
133
- - Hard Bug có khả năng tái diễn.
134
- - Pattern làm việc lặp lại trong dự án.
135
- - Convention hoặc quy tắc kiến trúc mới.
136
- - Quyết định Architecture quan trọng.
137
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
138
- - 👉 *Domain Harvest:* Mẫu tối ưu hiệu năng web (vd: chiến lược lazyload hình ảnh, bundle partition).
139
-
140
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
141
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
142
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
143
-
144
- ---
145
-
146
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
147
- Sau khi hoàn thành task:
148
- - AI đánh giá các Candidate Memory đã tạo.
149
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
150
- - Đề xuất người dùng xem xét.
151
- - Gửi yêu cầu phê duyệt thông qua:
152
- - `/learn`
153
- - `qk-project-memory`
154
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
155
-
156
- ```
157
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
158
- ```
159
-
160
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
161
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
162
-
163
- ---
164
-
165
- ### Ignore (Không đưa vào Memory)
166
- Không lưu:
167
- - Trace log của một session đơn lẻ.
168
- - Temporary debugging data.
169
- - Output của một lần chạy test/scan.
170
- - Report health tạm thời của một đợt kiểm tra.
171
- - Lỗi nhỏ chỉ xảy ra một lần.
172
- - Thông tin không có khả năng tái sử dụng.
173
- - 👉 *Domain Ignore:* Report Lighthouse của lần đo test tạm thời.
174
-
175
- ---
176
-
177
- ### Golden Rule
178
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
179
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
180
-
181
- ---
182
-
183
-
184
-
185
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
186
- - 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:
187
- - **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.
188
- - **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.
189
-
190
- ---
191
-
192
- ### Pre-flight Retrieve (Trước khi thực thi)
193
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
194
- bắt buộc tra cứu:
195
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
196
-
197
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
198
- - Architecture
199
- - Hard Bug
200
- - Convention
201
- - Pattern
202
- - Tech Debt Pattern
203
- - 👉 *Domain Focus:* Convention / Hard Bug (vd: chỉ số Core Web Vitals LCP/CLS, rủi ro bot SEO/A11y).
204
-
205
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
206
- Không được xem Memory là Source of Truth.
207
- 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.
208
-
209
- ---
210
-
211
- ### Learning Flow (AI tự học có kiểm soát)
212
- - 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:
213
- - Hard Bug có khả năng tái diễn.
214
- - Pattern làm việc lặp lại trong dự án.
215
- - Convention hoặc quy tắc kiến trúc mới.
216
- - Quyết định Architecture quan trọng.
217
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
218
- - 👉 *Domain Harvest:* Mẫu tối ưu hiệu năng web (vd: chiến lược lazyload hình ảnh, bundle partition).
219
-
220
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
221
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
222
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
223
-
224
- ---
225
-
226
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
227
- Sau khi hoàn thành task:
228
- - AI đánh giá các Candidate Memory đã tạo.
229
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
230
- - Đề xuất người dùng xem xét.
231
- - Gửi yêu cầu phê duyệt thông qua:
232
- - `/learn`
233
- - `qk-project-memory`
234
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
235
-
236
- ```
237
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
238
- ```
239
-
240
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
241
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
242
-
243
- ---
244
-
245
- ### Ignore (Không đưa vào Memory)
246
- Không lưu:
247
- - Trace log của một session đơn lẻ.
248
- - Temporary debugging data.
249
- - Output của một lần chạy test/scan.
250
- - Report health tạm thời của một đợt kiểm tra.
251
- - Lỗi nhỏ chỉ xảy ra một lần.
252
- - Thông tin không có khả năng tái sử dụng.
253
- - 👉 *Domain Ignore:* Report Lighthouse của lần đo test tạm thời.
254
-
255
- ---
256
-
257
- ### Golden Rule
258
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
259
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
260
-
261
- ---
262
-
263
-
264
-
265
- ### Pre-flight Retrieve (Trước khi thực thi)
266
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
267
- bắt buộc tra cứu:
268
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
269
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
270
-
271
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
272
- - Architecture
273
- - Hard Bug
274
- - Convention
275
- - Pattern
276
- - Tech Debt Pattern
277
- - 👉 *Domain Focus:* Convention / Hard Bug (vd: chỉ số Core Web Vitals LCP/CLS, rủi ro bot SEO/A11y).
278
-
279
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
280
- Không được xem Memory là Source of Truth.
281
- 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.
282
-
283
- ---
284
-
285
- ### Learning Flow (AI tự học có kiểm soát)
286
- - 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:
287
- - Hard Bug có khả năng tái diễn.
288
- - Pattern làm việc lặp lại trong dự án.
289
- - Convention hoặc quy tắc kiến trúc mới.
290
- - Quyết định Architecture quan trọng.
291
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
292
- - 👉 *Domain Harvest:* Mẫu tối ưu hiệu năng web (vd: chiến lược lazyload hình ảnh, bundle partition).
293
-
294
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
295
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
296
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
297
-
298
- ---
299
-
300
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
301
- Sau khi hoàn thành task:
302
- - AI đánh giá các Candidate Memory đã tạo.
303
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
304
- - Đề xuất người dùng xem xét.
305
- - Gửi yêu cầu phê duyệt thông qua:
306
- - `/learn`
307
- - `qk-project-memory`
308
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
309
-
310
- ```
311
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
312
- ```
313
-
314
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
315
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
316
-
317
- ---
318
-
319
- ### Ignore (Không đưa vào Memory)
320
- Không lưu:
321
- - Trace log của một session đơn lẻ.
322
- - Temporary debugging data.
323
- - Output của một lần chạy test/scan.
324
- - Report health tạm thời của một đợt kiểm tra.
325
- - Lỗi nhỏ chỉ xảy ra một lần.
326
- - Thông tin không có khả năng tái sử dụng.
327
- - 👉 *Domain Ignore:* Report Lighthouse của lần đo test tạm thời.
328
-
329
- ---
330
-
331
- ### Golden Rule
332
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
333
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
334
-
335
- ---
336
- ---
337
-
338
- ### Learning Flow (AI tự học có kiểm soát)
339
- - 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:
340
- - Hard Bug có khả năng tái diễn.
341
- - Pattern làm việc lặp lại trong dự án.
342
- - Convention hoặc quy tắc kiến trúc mới.
343
- - Quyết định Architecture quan trọng.
344
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
345
- - 👉 *Domain Harvest:* Mẫu tối ưu hiệu năng web (vd: chiến lược lazyload hình ảnh, bundle partition).
346
-
347
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
348
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
349
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
350
-
351
- ---
352
-
353
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
354
- Sau khi hoàn thành task:
355
- - AI đánh giá các Candidate Memory đã tạo.
356
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
357
- - Đề xuất người dùng xem xét.
358
- - Gửi yêu cầu phê duyệt thông qua:
359
- - `/learn`
360
- - `qk-project-memory`
361
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
362
-
363
- ```
364
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
365
- ```
366
-
367
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
368
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
369
-
370
- ---
371
-
372
- ### Ignore (Không đưa vào Memory)
373
- Không lưu:
374
- - Trace log của một session đơn lẻ.
375
- - Temporary debugging data.
376
- - Output của một lần chạy test/scan.
377
- - Report health tạm thời của một đợt kiểm tra.
378
- - Lỗi nhỏ chỉ xảy ra một lần.
379
- - Thông tin không có khả năng tái sử dụng.
380
- - 👉 *Domain Ignore:* Report Lighthouse của lần đo test tạm thời.
381
-
382
- ---
383
-
384
- ### Golden Rule
385
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
386
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
387
-
388
- ---
389
- ---
390
-
391
- ### Learning Flow (AI tự học có kiểm soát)
392
- - 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:
393
- - Hard Bug có khả năng tái diễn.
394
- - Pattern làm việc lặp lại trong dự án.
395
- - Convention hoặc quy tắc kiến trúc mới.
396
- - Quyết định Architecture quan trọng.
397
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
398
- - 👉 *Domain Harvest:* Mẫu tối ưu hiệu năng web (vd: chiến lược lazyload hình ảnh, bundle partition).
399
-
400
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
401
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
402
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
403
-
404
- ---
405
-
406
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
407
- Sau khi hoàn thành task:
408
- - AI đánh giá các Candidate Memory đã tạo.
409
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
410
- - Đề xuất người dùng xem xét.
411
- - Gửi yêu cầu phê duyệt thông qua:
412
- - `/learn`
413
- - `qk-project-memory`
414
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
415
-
416
- ```
417
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
418
- ```
419
-
420
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
421
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
422
-
423
- ---
424
-
425
- ### Ignore (Không đưa vào Memory)
426
- Không lưu:
427
- - Trace log của một session đơn lẻ.
428
- - Temporary debugging data.
429
- - Output của một lần chạy test/scan.
430
- - Report health tạm thời của một đợt kiểm tra.
431
- - Lỗi nhỏ chỉ xảy ra một lần.
432
- - Thông tin không có khả năng tái sử dụng.
433
- - 👉 *Domain Ignore:* Report Lighthouse của lần đo test tạm thời.
434
-
435
- ---
436
-
437
- ### Golden Rule
438
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
439
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
440
-
441
- ---
442
- ---
443
- ---
444
- ---
445
-
446
- ## Preconditions
447
- - [ ] Ứng dụng web đã có thể chạy hoặc code đã được viết một phần.
109
+ Chịu trách nhiệm đo lường và đánh giá các chỉ số chất lượng kỹ thuật của ứng dụng Web: **Accessibility (WCAG 2.1 AA) → Core Web Vitals (LCP, FID/INP, CLS) → SEO meta tags → Security Headers**. Xuất báo cáo định lượng và chỉ dẫn khắc phục cụ thể.
448
110
 
449
- ## Scope
450
- - Thực hiện kiểm toán A11y (Accessibility standards như WCAG).
451
- - Đánh giá Performance (Core Web Vitals, Bundle size, Lazy loading, Cache, Optimize images).
452
- - Kiểm tra SEO best practices (Meta tags, heading structure, semantic HTML).
453
- - Đánh giá UX Heuristics cơ bản.
454
- - Đưa ra khuyến nghị (Recommendation), không phải tự tay fix code nếu chưa được yêu cầu.
455
-
456
- ## Non-Goals
457
- - ❌ Provide implementation outside of Web Performance & Accessibility scope
458
- - ❌ Override explicit user directives without explanation
459
- - ❌ Guess ambiguous requirements without asking
460
-
461
- ## Priority Order
462
-
463
- | Priority | Task | Skip Threshold |
464
- |----------|------|----------------|
465
- | P1 | Core Web Performance & Accessibility analysis and decision making | Never |
466
- | P2 | Validation of existing patterns | Budget < 30% |
467
- | P3 | Detailed documentation generation | Budget < 50% |
468
- | P4 | Edge case exploration | Budget < 70% |
469
-
470
- ## Workflow
471
-
472
- ### Phase 1 — Context Loading
473
- **Steps:**
474
- 1. Read existing configuration and requirements related to Web Performance & Accessibility.
475
- 2. Check for missing preconditions.
476
-
477
- **Decision:**
478
- ```
479
- IF context is clear
480
- → Confidence: HIGH → go to Phase 2
481
- ELSE
482
- → EXIT: BLOCKED — ask user
483
- ```
111
+ ---
484
112
 
485
- ### Phase 2 — Analysis & Strategy
486
- **Steps:**
487
- 1. Analyze the current state against Web Performance & Accessibility best practices.
488
- 2. Formulate strategy or audit report based on findings.
113
+ ## Preconditions
489
114
 
490
- **Decision:**
491
- ```
492
- IF strategy/audit is complete
493
- → Confidence: HIGH → go to Phase 3
494
- ELSE IF minor gaps exist
495
- → Confidence: MEDIUM → proceed with assumptions noted
496
- ```
115
+ Trước khi audit chất lượng web, AI BẮT BUỘC kiểm tra:
497
116
 
498
- ### Phase 3 Finalization
499
- **Steps:**
500
- 1. Generate final report or configuration.
501
- 2. Prepare handoff data for subsequent skills.
117
+ - [ ] Xác định trang hoặc component web cần kiểm tra.
118
+ - [ ] Xác định frontend framework và rendering method (SSR, SSG, CSR, Next.js, Nuxt) từ `.agents/DEV_PROFILE.md`.
119
+ - [ ] Đảm bảo có thể truy cập mã nguồn template HTML / JSX để đọc semantic tags.
120
+ - [ ] Nếu trang hoàn toàn là client-side SPA mà không có mã nguồn cấu trúc DOM:
121
+ → **EXIT: BLOCKED**
122
+ → Báo cáo user cung cấp URL môi trường staging hoặc file mã nguồn template tương ứng.
502
123
 
503
- ## Confidence Model
124
+ ---
504
125
 
505
- | Level | Condition | Action |
506
- |-------|-----------|--------|
507
- | HIGH | All preconditions met, context fully understood | Proceed directly |
508
- | MEDIUM | Some context missing but safe defaults exist | Proceed and note assumptions |
509
- | LOW | Core requirements missing | EXIT: BLOCKED |
126
+ ## Scope
510
127
 
511
- ## Severity (for findings)
128
+ Skill này làm:
129
+ - Kiểm toán Accessibility (A11y theo chuẩn WCAG 2.1 AA):
130
+ - Semantic HTML (`<main>`, `<nav>`, `<header>`, `<h1>-<h6>` thứ tự đúng).
131
+ - ARIA attributes (`aria-label`, `aria-expanded`, `aria-hidden`, `role`).
132
+ - Keyboard navigation (tab order, focus trap trong modals, skip links).
133
+ - Alt text cho hình ảnh và caption cho media.
134
+ - Phân tích Core Web Vitals & Performance:
135
+ - LCP (Largest Contentful Paint): Tối ưu hóa ảnh (next/image, webp, priority loading).
136
+ - CLS (Cumulative Layout Shift): Khai báo width/height cho hình ảnh, placeholder cho ad slots.
137
+ - INP/FID: Tối ưu bundle size, dynamic imports / code-splitting.
138
+ - Kiểm tra SEO Technical: Title tag, Meta description, OpenGraph tags, Canonical link, Robots/Sitemap.
139
+ - Kiểm tra HTTP Security Headers khuyến nghị: CSP, X-Frame-Options, HSTS.
140
+
141
+ ❌ Skill này KHÔNG làm:
142
+ - Đánh giá tính thẩm mỹ hoặc spacing thị giác (→ `qk-ui-audit`).
143
+ - Tự viết component UI mới từ đầu (→ `qk-ui-builder`).
144
+ - Thiết lập hạ tầng CDN hoặc server proxy Nginx/Cloudflare (→ `qk-devops-platform`).
512
145
 
513
- | Level | Definition |
514
- |-------|-----------|
515
- | CRITICAL | Severe violation of Web Performance & Accessibility principles |
516
- | HIGH | Significant risk or technical debt |
517
- | MEDIUM | Suboptimal pattern but functional |
518
- | LOW | Minor style or documentation issue |
146
+ ---
519
147
 
520
- ## Evidence Format
148
+ ## Execution Steps
521
149
 
150
+ ### Step 1 — Semantic & A11y DOM Inspection
522
151
  ```
523
- [SEVERITY] Context/File
524
- Issue: [what was found]
525
- Confidence: HIGH
526
- Recommendation: [actionable advice]
152
+ Inputs: Page/Component source code
153
+ Actions:
154
+ - Kiểm tra tính hợp lệ của cây phân cấp headings (h1 -> h2 -> h3, không nhảy cóc).
155
+ - Soát tất cả thẻ `<img>` thiếu `alt` hoặc thẻ tương tác (`<button>`, `<a>`) thiếu text/aria-label.
156
+ - Kiểm tra form inputs có gắn kèm `<label>` tường minh hay không.
157
+ Output: A11y violation list
527
158
  ```
528
159
 
529
- ## Retry Policy
160
+ ### Step 2 — Performance & Core Web Vitals Analysis
530
161
  ```
531
- Task fails due to missing context
532
- └─ Ask user for clarification
533
- ├─ Provided Retry Phase 1
534
- └─ Not provided EXIT: BLOCKED
162
+ Inputs: Asset imports, Rendering architecture
163
+ Actions:
164
+ - Kiểm tra cách load font chữ (font-display: swap) và CSS render-blocking.
165
+ - Phát hiện các ảnh dung lượng lớn chưa được responsive srcset hoặc nén modern formats (AVIF/WebP).
166
+ - Đánh giá chiến lược lazy-loading cho các components nằm dưới màn hình đầu tiên (below the fold).
167
+ Output: Web Vitals bottleneck map
535
168
  ```
536
169
 
537
- ## Escalation Rules
538
-
170
+ ### Step 3 — SEO & Security Header Audit
539
171
  ```
540
- BLOCKED: Missing critical context for Web Performance & Accessibility
541
- Missing:
542
- - [Specific requirement]
543
- Questions:
544
- 1. Bạn thể cung cấp thêm thông tin về yêu cầu này không?
545
- 2. Mục tiêu chính của bạn là gì?
546
- Recommended Assumptions: none
172
+ Inputs: HTML Head configuration, Next.js metadata / Nuxt useHead
173
+ Actions:
174
+ - Soát độ dài Title (50-60 ký tự) và Description (150-160 ký tự).
175
+ - Kiểm tra cấu hình thẻ mạng xã hội (og:image, og:title, twitter:card).
176
+ - Đánh giá Content Security Policy (CSP).
177
+ Output: SEO & Security posture report
547
178
  ```
548
179
 
549
- ## Handoff Contract
550
-
551
- ### Consumes
552
- ```json
553
- {
554
- "from": "user or qk-orchestrator",
555
- "required_fields": ["context"],
556
- "optional_fields": ["existing_config"]
557
- }
180
+ ### Step 4 — Remediation Guide Formulation
558
181
  ```
559
-
560
- ### Produces
561
- ```json
562
- {
563
- "to": "user or downstream skill",
564
- "output_fields": ["strategy_report", "exit_code"]
565
- }
182
+ Inputs: Findings across all categories
183
+ Actions:
184
+ - Tổng hợp thành bảng điểm định lượng và phân loại độ ưu tiên (P0: Blockers, P1: High, P2: Polish).
185
+ - Cung cấp đoạn code JSX/HTML sửa mẫu trực quan.
186
+ Exit: SUCCESS
566
187
  ```
567
188
 
568
- ## Exit Codes
189
+ ---
190
+
191
+ ## Prompt Template
569
192
 
570
- | Code | Meaning | When |
571
- |------|---------|------|
572
- | SUCCESS | Web Performance & Accessibility task completed successfully | Strategy/audit generated |
573
- | PARTIAL | Task completed with assumptions | Medium confidence |
574
- | BLOCKED | Missing context | Cannot proceed |
575
- | FAILED | Critical conflict or error | Unresolvable constraint |
193
+ ```
194
+ Trang / URL: [Đường dẫn file page hoặc route URL cần kiểm tra]
195
+ Trọng tâm audit: [A11y WCAG / Core Web Vitals / SEO Technical / Tất cả]
196
+ Vấn đề ghi nhận: [Chậm tải trang, lighthouse điểm đỏ, cảnh báo screen reader, ...]
197
+ ```
@@ -98,21 +98,21 @@ steps:
98
98
  condition: "file thuộc vùng auth/payment/permission/migration"
99
99
  message: "Patch này chạm vào code nhạy cảm. Xác nhận an toàn trước khi thay đổi."
100
100
  - id: verify
101
- name: "Xác minh fix"
102
- purpose: "Xác nhận bug đã được fix không có regression"
101
+ name: "Xác minh fix + quality gate"
102
+ purpose: "Xác nhận bug đã được fix, không có regression, code đạt quality threshold"
103
103
  required: true
104
104
  skip_if: null
105
105
  inputs:
106
106
  - patched_files
107
107
  outputs:
108
108
  - verification_result # PASS | FAIL | PARTIAL
109
- - evidence_of_fix # Re-read patched section
109
+ - evidence_of_fix
110
+ - quality_gate_result # PASS | FAIL
110
111
  actions:
111
112
  - "Re-read patched code section"
112
113
  - "Chạy test liên quan nếu có"
113
- - "Kiểm tra caller/dependent nếu interface thay đổi"
114
- - "Đảm bảo tuân thủ R-SEC-04 (Security Boundary)"
115
- - "Đảm bảo tuân thủ R-C-09 (Zero-Slop)"
114
+ - "Áp dụng shared quality gate xem: .agents/workflows/shared/quality-gate.yml"
115
+ - " Checklist: universal_checks + bug-resolution specific checks"
116
116
  - "Ghi log execution trace vào evals/traces/"
117
117
  exit_on_fail: FAILED
118
118