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-security-audit
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  status: experimental
6
- description: "Security audit (OWASP, dependency security, secret detection, permission model)."
6
+ description: "Audit bảo mật ứng dụng theo OWASP: phát hiện lỗ hổng, secret leak, dependency risk, permission model — output là report + remediation plan, KHÔNG tự sửa code. Dùng skill này khi user nhắc đến: security audit, kiểm tra bảo mật, scan lỗ hổng, owasp, tìm secret leak, dependency vulnerability, npm audit, pip audit, lộ api key — kể cả khi chỉ nói 'code này có an toàn không'."
7
7
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
8
 
9
9
  # ── V9: Classification ─────────────────────────────────────
@@ -19,15 +19,21 @@ complexity:
19
19
  level: high
20
20
  criteria:
21
21
  files_affected: "1-10"
22
- has_behavior_change: true
23
- has_external_dependency: true
22
+ has_behavior_change: false
23
+ has_external_dependency: false
24
24
  has_breaking_change: false
25
25
 
26
- triggers:
27
- - "kiểm tra bảo mật"
28
- - "scan lỗ hổng"
29
- - "audit code"
30
- - "tìm secret leak"
26
+ triggers:
27
+ - "security audit"
28
+ - "kiểm tra bảo mật"
29
+ - "scan lỗ hổng"
30
+ - "owasp"
31
+ - "tìm secret leak"
32
+ - "dependency vulnerability"
33
+ - "npm audit"
34
+ - "pip audit"
35
+ - "lộ api key"
36
+
31
37
 
32
38
  # ── V8: References ─────────────────────────────────────────
33
39
  workflow: security-audit
@@ -66,8 +72,9 @@ decision_boundary:
66
72
  - penetration testing
67
73
  - compliance certification
68
74
  conflicts_with: []
69
- delegates_to:
70
- - qk-validation-gate
75
+ delegates_to: []
76
+ # Note: validation/verify logic nằm trong step 'verify' của workflow security-audit.yml
77
+ # qk-validation-gate đã được downgrade thành workflow step (v9.2.1) — không còn là skill độc lập
71
78
 
72
79
  # ── V8: Verification ───────────────────────────────────────
73
80
  verification:
@@ -107,9 +114,9 @@ learnings: []
107
114
  execution_mode: deterministic
108
115
  cost: medium
109
116
  latency: slow
110
- risk: low
117
+ risk: medium # scan đọc sensitive files (env, config, secrets) — không phải low
111
118
  side_effects: read_only
112
- produces: [report, security_fixes]
119
+ produces: [report, remediation_plan] # read_only = không tự patch code, chỉ báo cáo + đề xuất fix
113
120
  consumes: [user-description]
114
121
 
115
122
  token_budget:
@@ -118,485 +125,156 @@ token_budget:
118
125
  max_shell_commands: 2
119
126
  stop_early: true
120
127
 
121
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
128
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
122
129
  ---
123
130
 
124
131
  # qk-security-audit — Security Auditor
125
132
 
126
133
  > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
127
134
 
128
- ## Memory Workflow
129
-
130
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
131
- - 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:
132
- - **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.
133
- - **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.
134
-
135
- ---
136
-
137
- ### Pre-flight Retrieve (Trước khi thực thi)
138
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
139
- bắt buộc tra cứu:
140
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
141
-
142
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
143
- - Architecture
144
- - Hard Bug
145
- - Convention
146
- - Pattern
147
- - Tech Debt Pattern
148
- - 👉 *Domain Focus:* Hard Bug / Architecture (vd: lỗ hổng OWASP, lộ rò rỉ secret, quy chuẩn Zero-Trust R-SEC-04).
149
-
150
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
151
- Không được xem Memory là Source of Truth.
152
- 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.
153
-
154
- ---
155
-
156
- ### Learning Flow (AI tự học có kiểm soát)
157
- - 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:
158
- - Hard Bug có khả năng tái diễn.
159
- - Pattern làm việc lặp lại trong dự án.
160
- - Convention hoặc quy tắc kiến trúc mới.
161
- - Quyết định Architecture quan trọng.
162
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
163
- - 👉 *Domain Harvest:* Lỗ hổng bảo mật mới phát hiện (Hard Bug) hoặc chính sách an toàn mới.
164
-
165
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
166
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
167
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
168
-
169
- ---
170
-
171
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
172
- Sau khi hoàn thành task:
173
- - AI đánh giá các Candidate Memory đã tạo.
174
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
175
- - Đề xuất người dùng xem xét.
176
- - Gửi yêu cầu phê duyệt thông qua:
177
- - `/learn`
178
- - `qk-project-memory`
179
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
180
-
181
- ```
182
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
183
- ```
184
-
185
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
186
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
187
-
188
- ---
189
-
190
- ### Ignore (Không đưa vào Memory)
191
- Không lưu:
192
- - Trace log của một session đơn lẻ.
193
- - Temporary debugging data.
194
- - Output của một lần chạy test/scan.
195
- - Report health tạm thời của một đợt kiểm tra.
196
- - Lỗi nhỏ chỉ xảy ra một lần.
197
- - Thông tin không có khả năng tái sử dụng.
198
- - 👉 *Domain Ignore:* Cảnh báo scanner giả (false positive) đã xác thực.
199
-
200
- ---
201
-
202
- ### Golden Rule
203
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
204
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
205
-
206
- ---
207
-
208
-
209
-
210
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
211
- - 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:
212
- - **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.
213
- - **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.
214
-
215
- ---
216
-
217
- ### Pre-flight Retrieve (Trước khi thực thi)
218
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
219
- bắt buộc tra cứu:
220
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
221
-
222
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
223
- - Architecture
224
- - Hard Bug
225
- - Convention
226
- - Pattern
227
- - Tech Debt Pattern
228
- - 👉 *Domain Focus:* Hard Bug / Architecture (vd: lỗ hổng OWASP, lộ rò rỉ secret, quy chuẩn Zero-Trust R-SEC-04).
229
-
230
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
231
- Không được xem Memory là Source of Truth.
232
- 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.
233
-
234
- ---
235
-
236
- ### Learning Flow (AI tự học có kiểm soát)
237
- - 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:
238
- - Hard Bug có khả năng tái diễn.
239
- - Pattern làm việc lặp lại trong dự án.
240
- - Convention hoặc quy tắc kiến trúc mới.
241
- - Quyết định Architecture quan trọng.
242
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
243
- - 👉 *Domain Harvest:* Lỗ hổng bảo mật mới phát hiện (Hard Bug) hoặc chính sách an toàn mới.
244
-
245
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
246
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
247
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
248
-
249
- ---
250
-
251
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
252
- Sau khi hoàn thành task:
253
- - AI đánh giá các Candidate Memory đã tạo.
254
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
255
- - Đề xuất người dùng xem xét.
256
- - Gửi yêu cầu phê duyệt thông qua:
257
- - `/learn`
258
- - `qk-project-memory`
259
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
260
-
261
- ```
262
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
263
- ```
264
-
265
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
266
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
267
-
268
- ---
269
-
270
- ### Ignore (Không đưa vào Memory)
271
- Không lưu:
272
- - Trace log của một session đơn lẻ.
273
- - Temporary debugging data.
274
- - Output của một lần chạy test/scan.
275
- - Report health tạm thời của một đợt kiểm tra.
276
- - Lỗi nhỏ chỉ xảy ra một lần.
277
- - Thông tin không có khả năng tái sử dụng.
278
- - 👉 *Domain Ignore:* Cảnh báo scanner giả (false positive) đã xác thực.
279
-
280
- ---
281
-
282
- ### Golden Rule
283
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
284
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
285
-
286
- ---
287
-
288
-
289
-
290
- ### Pre-flight Retrieve (Trước khi thực thi)
291
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
292
- bắt buộc tra cứu:
293
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
294
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
295
-
296
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
297
- - Architecture
298
- - Hard Bug
299
- - Convention
300
- - Pattern
301
- - Tech Debt Pattern
302
- - 👉 *Domain Focus:* Hard Bug / Architecture (vd: lỗ hổng OWASP, lộ rò rỉ secret, quy chuẩn Zero-Trust R-SEC-04).
303
-
304
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
305
- Không được xem Memory là Source of Truth.
306
- 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.
307
-
308
- ---
309
-
310
- ### Learning Flow (AI tự học có kiểm soát)
311
- - 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:
312
- - Hard Bug có khả năng tái diễn.
313
- - Pattern làm việc lặp lại trong dự án.
314
- - Convention hoặc quy tắc kiến trúc mới.
315
- - Quyết định Architecture quan trọng.
316
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
317
- - 👉 *Domain Harvest:* Lỗ hổng bảo mật mới phát hiện (Hard Bug) hoặc chính sách an toàn mới.
318
-
319
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
320
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
321
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
322
-
323
- ---
324
-
325
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
326
- Sau khi hoàn thành task:
327
- - AI đánh giá các Candidate Memory đã tạo.
328
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
329
- - Đề xuất người dùng xem xét.
330
- - Gửi yêu cầu phê duyệt thông qua:
331
- - `/learn`
332
- - `qk-project-memory`
333
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
334
-
335
- ```
336
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
337
- ```
338
-
339
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
340
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
341
-
342
- ---
343
-
344
- ### Ignore (Không đưa vào Memory)
345
- Không lưu:
346
- - Trace log của một session đơn lẻ.
347
- - Temporary debugging data.
348
- - Output của một lần chạy test/scan.
349
- - Report health tạm thời của một đợt kiểm tra.
350
- - Lỗi nhỏ chỉ xảy ra một lần.
351
- - Thông tin không có khả năng tái sử dụng.
352
- - 👉 *Domain Ignore:* Cảnh báo scanner giả (false positive) đã xác thực.
353
-
354
- ---
355
-
356
- ### Golden Rule
357
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
358
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
359
-
360
- ---
361
- ---
362
-
363
- ### Learning Flow (AI tự học có kiểm soát)
364
- - 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:
365
- - Hard Bug có khả năng tái diễn.
366
- - Pattern làm việc lặp lại trong dự án.
367
- - Convention hoặc quy tắc kiến trúc mới.
368
- - Quyết định Architecture quan trọng.
369
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
370
- - 👉 *Domain Harvest:* Lỗ hổng bảo mật mới phát hiện (Hard Bug) hoặc chính sách an toàn mới.
371
-
372
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
373
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
374
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
375
-
376
- ---
377
-
378
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
379
- Sau khi hoàn thành task:
380
- - AI đánh giá các Candidate Memory đã tạo.
381
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
382
- - Đề xuất người dùng xem xét.
383
- - Gửi yêu cầu phê duyệt thông qua:
384
- - `/learn`
385
- - `qk-project-memory`
386
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
387
-
388
- ```
389
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
390
- ```
391
-
392
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
393
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
394
-
395
- ---
396
-
397
- ### Ignore (Không đưa vào Memory)
398
- Không lưu:
399
- - Trace log của một session đơn lẻ.
400
- - Temporary debugging data.
401
- - Output của một lần chạy test/scan.
402
- - Report health tạm thời của một đợt kiểm tra.
403
- - Lỗi nhỏ chỉ xảy ra một lần.
404
- - Thông tin không có khả năng tái sử dụng.
405
- - 👉 *Domain Ignore:* Cảnh báo scanner giả (false positive) đã xác thực.
406
-
407
- ---
408
-
409
- ### Golden Rule
410
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
411
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
412
-
413
- ---
414
- ---
415
-
416
- ### Learning Flow (AI tự học có kiểm soát)
417
- - 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:
418
- - Hard Bug có khả năng tái diễn.
419
- - Pattern làm việc lặp lại trong dự án.
420
- - Convention hoặc quy tắc kiến trúc mới.
421
- - Quyết định Architecture quan trọng.
422
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
423
- - 👉 *Domain Harvest:* Lỗ hổng bảo mật mới phát hiện (Hard Bug) hoặc chính sách an toàn mới.
424
-
425
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
426
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
427
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
428
-
429
- ---
430
-
431
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
432
- Sau khi hoàn thành task:
433
- - AI đánh giá các Candidate Memory đã tạo.
434
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
435
- - Đề xuất người dùng xem xét.
436
- - Gửi yêu cầu phê duyệt thông qua:
437
- - `/learn`
438
- - `qk-project-memory`
439
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
440
-
441
- ```
442
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
443
- ```
444
-
445
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
446
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
447
-
448
- ---
449
-
450
- ### Ignore (Không đưa vào Memory)
451
- Không lưu:
452
- - Trace log của một session đơn lẻ.
453
- - Temporary debugging data.
454
- - Output của một lần chạy test/scan.
455
- - Report health tạm thời của một đợt kiểm tra.
456
- - Lỗi nhỏ chỉ xảy ra một lần.
457
- - Thông tin không có khả năng tái sử dụng.
458
- - 👉 *Domain Ignore:* Cảnh báo scanner giả (false positive) đã xác thực.
459
-
460
- ---
461
-
462
- ### Golden Rule
463
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
464
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
465
-
466
- ---
467
- ---
468
- ---
469
- ---
470
-
135
+ ---
136
+
471
137
  ## Preconditions
472
- - [ ] Tuân thủ `security.md`.
473
- - [ ] Xác định phạm vi codebase cần audit.
138
+
139
+ - [ ] Biết scope cần audit: toàn bộ codebase / 1 module / 1 PR / 1 dependency
140
+ → Nếu chưa biết: hỏi user trước khi bắt đầu scan
141
+ - [ ] Không được ghi vào bất kỳ file nào trong quá trình audit (`side_effects: read_only`)
142
+ - [ ] Nếu phát hiện secret đang live (API key, password): **BLOCKED ngay** — báo user xử lý trước
143
+ - [ ] Output là report + remediation_plan — KHÔNG tự sửa code, KHÔNG tự revoke secret
144
+
145
+ ---
474
146
 
475
147
  ## Scope
476
- - Quét và phát hiện các rủi ro bảo mật từ dependencies bên thứ ba.
477
- - Nhận diện secret bị hardcode/leak (API keys, passwords, tokens).
478
- - soát hình phân quyền (RBAC, ABAC) kiểm tra lỗ hổng logic (BOLA, Broken Auth).
479
- - **Quét lỗ hổng Prompt Injection xác minh ranh giới Zero-Trust theo đúng R-SEC-04.**
480
- - Check dựa trên OWASP Top 10.
481
- - Khuyến nghị bản bảo mật tương ứng.
482
-
483
- ## Non-Goals
484
- - ❌ Provide implementation outside of Security Vulnerability Detection scope
485
- - Override explicit user directives without explanation
486
- - Guess ambiguous requirements without asking
487
-
488
- ## Priority Order
489
-
490
- | Priority | Task | Skip Threshold |
491
- |----------|------|----------------|
492
- | P1 | Core Security Vulnerability Detection analysis and decision making | Never |
493
- | P2 | Validation of existing patterns | Budget < 30% |
494
- | P3 | Detailed documentation generation | Budget < 50% |
495
- | P4 | Edge case exploration | Budget < 70% |
496
-
497
- ## Workflow
498
-
499
- ### Phase 1 — Context Loading
500
- **Steps:**
501
- 1. Read existing configuration and requirements related to Security Vulnerability Detection.
502
- 2. Check for missing preconditions.
503
-
504
- **Decision:**
148
+
149
+ Skill này làm:
150
+ - Scan OWASP Top 10: injection, broken auth, sensitive data exposure, XSS, IDOR...
151
+ - Detect secret/credential leak trong code, config, commit history pattern
152
+ - Audit dependency vulnerabilities (npm audit / pip audit / cargo audit equivalent)
153
+ - Review permission model: RBAC gaps, over-privileged roles, missing auth checks
154
+ - Phát hiện prompt injection risk (nếu project có AI/LLM component)
155
+ - Output: Severity-ranked finding list + remediation plan cho từng finding
156
+
157
+ Skill này KHÔNG làm:
158
+ - Tự sửa code để fix lỗ hổng (→ dùng `qk-bug-resolution` sau khi có report)
159
+ - Implement RBAC/ABAC (→ `qk-access-policy`)
160
+ - Penetration testing thực sự (cần human expert)
161
+ - Compliance certification (SOC2, ISO27001...)
162
+ - Revoke credentials hay rotate secrets (→ user tự làm)
163
+
164
+ ---
165
+
166
+ ## Execution Steps
167
+
168
+ ### Step 1 — Xác định scope và threat model
505
169
  ```
506
- IF context is clear
507
- → Confidence: HIGH → go to Phase 2
508
- ELSE
509
- EXIT: BLOCKED ask user
170
+ Inputs: user_description, DEV_PROFILE.md (stack info)
171
+ Actions:
172
+ - Xác định: audit toàn bộ / module cụ thể / diff của PR
173
+ - Xác định attack surface dựa trên stack:
174
+ Web app → injection, XSS, CSRF, auth bypass
175
+ API → broken auth, IDOR, rate limiting, input validation
176
+ Data → SQL injection, data exposure, access control
177
+ AI/LLM → prompt injection, data poisoning, model extraction
178
+ DevOps → secrets in CI, misconfigured IAM, container escape
179
+ - List top 5 risk areas cần ưu tiên
180
+ Outputs: audit_scope, threat_model
181
+ Exit: BLOCKED nếu scope quá rộng mà không có priority
510
182
  ```
511
183
 
512
- ### Phase 2 — Analysis & Strategy
513
- **Steps:**
514
- 1. Analyze the current state against Security Vulnerability Detection best practices.
515
- 2. Formulate strategy or audit report based on findings.
184
+ ### Step 2 — Scan theo OWASP Top 10
185
+ ```
186
+ Actions (đọc mục tiêu, không dump toàn bộ codebase):
187
+ A01 Broken Access Control:
188
+ - Grep auth middleware: routes có bị skip không
189
+ - Check role check consistency (if admin check ở route nhưng thiếu ở service)
190
+ A02 Cryptographic Failures:
191
+ - Tìm hardcoded secrets: grep pattern (password=, api_key=, secret=, token=)
192
+ - Check password hashing: bcrypt/argon2 hay MD5/SHA1?
193
+ - Check TLS config nếu có
194
+ A03 Injection:
195
+ - SQL: tìm string concatenation trong queries
196
+ - Command injection: exec(), eval(), subprocess với user input
197
+ - Template injection (SSTI)
198
+ A05 Security Misconfiguration:
199
+ - .env.example so sánh với .env (nếu đọc được)
200
+ - CORS config: wildcard origin?
201
+ - Debug mode enabled trong production config?
202
+ A06 Vulnerable Components:
203
+ - Đọc package.json / requirements.txt / go.mod
204
+ - Flag packages có known CVE hoặc deprecated
205
+ A09 Logging Failures:
206
+ - Sensitive data trong logs (password, token, PII)?
207
+ - Missing security event logging (failed login, permission denied)?
208
+ Token budget: max 10 files, 150 lines/file — ưu tiên auth/middleware/config files
209
+ ```
516
210
 
517
- **Decision:**
211
+ ### Step 3 — Detect Secret Leak
518
212
  ```
519
- IF strategy/audit is complete
520
- Confidence: HIGH → go to Phase 3
521
- ELSE IF minor gaps exist
522
- Confidence: MEDIUM proceed with assumptions noted
213
+ Actions:
214
+ - Grep patterns: (api[_-]?key|secret|password|token|credential)\s*[:=]\s*['"][^'"]{8,}
215
+ - Check: .env files committed? (git ls-files | grep .env)
216
+ - Check config files: database URL credential?
217
+ - Check source code comments: TODO fix this hardcoded password
218
+ - Check test files: mock credentials có bị copy từ production?
219
+ Exit: BLOCKED ngay nếu tìm thấy live credential — báo user xử lý trước khi tiếp tục
523
220
  ```
524
221
 
525
- ### Phase 3Finalization
526
- **Steps:**
527
- 1. Generate final report or configuration.
528
- 2. Prepare handoff data for subsequent skills.
222
+ ### Step 4Output Report
223
+ ```
224
+ Format bắt buộc:
225
+ CRITICAL (fix ngay, không deploy):
226
+ [C1] [Tên lỗi] — [File:line] — [Mô tả] — [Remediation]
529
227
 
530
- ## Confidence Model
228
+ HIGH (fix trong sprint này):
229
+ [H1] [Tên lỗi] — [File:line] — [Mô tả] — [Remediation]
531
230
 
532
- | Level | Condition | Action |
533
- |-------|-----------|--------|
534
- | HIGH | All preconditions met, context fully understood | Proceed directly |
535
- | MEDIUM | Some context missing but safe defaults exist | Proceed and note assumptions |
536
- | LOW | Core requirements missing | EXIT: BLOCKED |
231
+ MEDIUM (schedule fix):
232
+ [M1] ...
537
233
 
538
- ## Severity (for findings)
234
+ LOW / INFORMATIONAL:
235
+ [L1] ...
539
236
 
540
- | Level | Definition |
541
- |-------|-----------|
542
- | CRITICAL | Severe violation of Security Vulnerability Detection principles |
543
- | HIGH | Significant risk or technical debt |
544
- | MEDIUM | Suboptimal pattern but functional |
545
- | LOW | Minor style or documentation issue |
237
+ SUMMARY:
238
+ Critical: N | High: N | Medium: N | Low: N
239
+ Most urgent: [top 3 cần fix ngay]
240
+ Recommended next skill: qk-bug-resolution (để fix từng finding)
241
+ qk-access-policy (nếu RBAC gap)
242
+ ```
546
243
 
547
- ## Evidence Format
244
+ ---
548
245
 
549
- ```
550
- [SEVERITY] Context/File
551
- Issue: [what was found]
552
- Confidence: HIGH
553
- Recommendation: [actionable advice]
554
- ```
246
+ ## Prompt Template
555
247
 
556
- ## Retry Policy
557
248
  ```
558
- Task fails due to missing context
559
- └─ Ask user for clarification
560
- ├─ Provided Retry Phase 1
561
- └─ Not provided EXIT: BLOCKED
249
+ Audit scope: [toàn bộ codebase / module X / PR #N / file Y]
250
+ Stack: [đọc từ DEV_PROFILE.md hoặc ghi rõ nếu chưa có]
251
+ Ưu tiên: [injection / secrets / auth / dependencies / tất cả]
252
+ Context: [sắp deploy production / sau khi thêm auth feature / định kỳ / ...]
562
253
  ```
563
254
 
564
- ## Escalation Rules
255
+ ### Theo Role:
565
256
 
257
+ **role: be / fullstack**
566
258
  ```
567
- BLOCKED: Missing critical context for Security Vulnerability Detection
568
- Missing:
569
- - [Specific requirement]
570
- Questions:
571
- 1. Bạn có thể cung cấp thêm thông tin về yêu cầu này không?
572
- 2. Mục tiêu chính của bạn là gì?
573
- Recommended Assumptions: none
259
+ Audit scope: src/api/ + src/middleware/
260
+ Ưu tiên: auth bypass, SQL injection, secret leak
261
+ Context: Sắp deploy lên production lần đầu
574
262
  ```
263
+ → AI focus: auth middleware completeness, parameterized queries, JWT validation, CORS.
575
264
 
576
- ## Handoff Contract
577
-
578
- ### Consumes
579
- ```json
580
- {
581
- "from": "user or qk-orchestrator",
582
- "required_fields": ["context"],
583
- "optional_fields": ["existing_config"]
584
- }
265
+ **role: devops**
585
266
  ```
586
-
587
- ### Produces
588
- ```json
589
- {
590
- "to": "user or downstream skill",
591
- "output_fields": ["strategy_report", "exit_code"]
592
- }
267
+ Audit scope: .github/workflows/ + Dockerfile + terraform/
268
+ Ưu tiên: secrets in CI, IAM over-privilege, container security
269
+ Context: Sau khi onboard engineer mới vào team
593
270
  ```
271
+ → AI focus: secrets in env vars vs secrets manager, IAM least privilege, base image CVEs.
594
272
 
595
- ## Exit Codes
596
-
597
- | Code | Meaning | When |
598
- |------|---------|------|
599
- | SUCCESS | Security Vulnerability Detection task completed successfully | Strategy/audit generated |
600
- | PARTIAL | Task completed with assumptions | Medium confidence |
601
- | BLOCKED | Missing context | Cannot proceed |
602
- | FAILED | Critical conflict or error | Unresolvable constraint |
273
+ **role: ai-engineer**
274
+ ```
275
+ Audit scope: prompts/ + agents/ + retrieval/
276
+ Ưu tiên: prompt injection, data poisoning, PII in context
277
+ Context: RAG system sắp ra production
278
+ ```
279
+ AI focus: input sanitization trước khi đưa vào prompt, output filtering,
280
+ PII không được persist trong vector DB, guardrails đủ không.