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,9 +1,9 @@
1
- ---
1
+ ---
2
2
  # ── Identity ───────────────────────────────────────────────
3
3
  name: qk-code-review
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  status: stable
6
- description: "Elite AI/Code Review System: Kiểm toán, Review code cấu hình AI với duy Architect, áp dụng 4-Phase Review."
6
+ description: "Review code, AI config, hoặc skin rules theo 4 phases với Architect mindset — phát hiện bug, security issue, architecture smell, logic error. Dùng skill này khi user nhắc đến: review code, code review, kiểm tra code, đánh giá code, review skin, review rule, review ai config, audit PR kể cả khi chỉ nói \"xem thử code này ổn không\"."
7
7
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
8
 
9
9
  # ── V9: Classification ─────────────────────────────────────
@@ -23,14 +23,16 @@ complexity:
23
23
  has_external_dependency: false
24
24
  has_breaking_change: false
25
25
 
26
- triggers:
27
- - "review code"
28
- - "code review"
29
- - "kiểm tra code"
30
- - "đánh giá code"
31
- - "review skin"
32
- - "review rule"
33
- - "review ai"
26
+ triggers:
27
+ - "review code"
28
+ - "code review"
29
+ - "kiểm tra code"
30
+ - "đánh giá code"
31
+ - "review skin"
32
+ - "review rule"
33
+ - "review ai config"
34
+ - "audit PR"
35
+
34
36
 
35
37
  selection:
36
38
  priority: high
@@ -46,9 +48,8 @@ tools:
46
48
  - filesystem
47
49
 
48
50
  related_skills:
49
- - qk-validation-gate
50
- - qk-engineering-standard
51
51
  - qk-project-health
52
+ - qk-security-audit
52
53
 
53
54
  knowledge_scope:
54
55
  owns:
@@ -84,368 +85,169 @@ token_budget:
84
85
  max_shell_commands: 2
85
86
  stop_early: true
86
87
 
87
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
88
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
88
89
  ---
89
90
 
90
91
  # qk-code-review — Elite Review System
91
92
 
92
93
  > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
93
94
 
94
- Biến quá trình Code Review từ "bắt bẻ" (gatekeeping) thành "chia sẻ tri thức" (knowledge sharing) thông qua phản hồi mang tính xây dựng, phân tích có hệ thống và hợp tác cải tiến.
95
+ Biến quá trình Code Review từ "bắt bẻ" (gatekeeping) thành "chia sẻ tri thức" (knowledge sharing) thông qua phản hồi mang tính xây dựng, phân tích có hệ thống và hợp tác cải tiến theo tư duy Kiến trúc sư (Architect mindset).
95
96
 
96
97
  ---
97
98
 
98
- ## Memory Workflow
99
-
100
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
101
- - 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:
102
- - **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.
103
- - **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.
104
-
105
- ---
106
-
107
- ### Pre-flight Retrieve (Trước khi thực thi)
108
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
109
- bắt buộc tra cứu:
110
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
111
-
112
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
113
- - Architecture
114
- - Hard Bug
115
- - Convention
116
- - Pattern
117
- - Tech Debt Pattern
118
- - 👉 *Domain Focus:* Architecture / Convention / Pattern hiện hành của dự án (Ground Truth để thẩm định).
119
-
120
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
121
- Không được xem Memory là Source of Truth.
122
- 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.
123
-
124
- ---
125
-
126
- ### Learning Flow (AI tự học có kiểm soát)
127
- - 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:
128
- - Hard Bug có khả năng tái diễn.
129
- - Pattern làm việc lặp lại trong dự án.
130
- - Convention hoặc quy tắc kiến trúc mới.
131
- - Quyết định Architecture quan trọng.
132
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
133
- - 👉 *Domain Harvest:* Pattern hoặc Convention mới (vd: phát hiện anti-pattern lặp đi lặp lại trong codebase).
134
-
135
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
136
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
137
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
138
-
139
- ---
140
-
141
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
142
- Sau khi hoàn thành task:
143
- - AI đánh giá các Candidate Memory đã tạo.
144
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
145
- - Đề xuất người dùng xem xét.
146
- - Gửi yêu cầu phê duyệt thông qua:
147
- - `/learn`
148
- - `qk-project-memory`
149
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
150
-
151
- ```
152
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
153
- ```
154
-
155
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
156
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
157
-
158
- ---
159
-
160
- ### Ignore (Không đưa vào Memory)
161
- Không lưu:
162
- - Trace log của một session đơn lẻ.
163
- - Temporary debugging data.
164
- - Output của một lần chạy test/scan.
165
- - Report health tạm thời của một đợt kiểm tra.
166
- - Lỗi nhỏ chỉ xảy ra một lần.
167
- - Thông tin không có khả năng tái sử dụng.
168
- - 👉 *Domain Ignore:* Các góp ý phong cách (formatting/linting) đơn lẻ trong một PR.
169
-
170
- ---
171
-
172
- ### Golden Rule
173
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
174
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
175
-
176
- ---
177
-
178
-
179
-
180
- ### Pre-flight Retrieve (Trước khi thực thi)
181
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
182
- bắt buộc tra cứu:
183
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
184
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
185
-
186
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
187
- - Architecture
188
- - Hard Bug
189
- - Convention
190
- - Pattern
191
- - Tech Debt Pattern
192
- - 👉 *Domain Focus:* Architecture / Convention / Pattern hiện hành của dự án (Ground Truth để thẩm định).
193
-
194
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
195
- Không được xem Memory là Source of Truth.
196
- 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.
197
-
198
- ---
199
-
200
- ### Learning Flow (AI tự học có kiểm soát)
201
- - 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:
202
- - Hard Bug có khả năng tái diễn.
203
- - Pattern làm việc lặp lại trong dự án.
204
- - Convention hoặc quy tắc kiến trúc mới.
205
- - Quyết định Architecture quan trọng.
206
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
207
- - 👉 *Domain Harvest:* Pattern hoặc Convention mới (vd: phát hiện anti-pattern lặp đi lặp lại trong codebase).
208
-
209
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
210
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
211
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
212
-
213
- ---
214
-
215
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
216
- Sau khi hoàn thành task:
217
- - AI đánh giá các Candidate Memory đã tạo.
218
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
219
- - Đề xuất người dùng xem xét.
220
- - Gửi yêu cầu phê duyệt thông qua:
221
- - `/learn`
222
- - `qk-project-memory`
223
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
224
-
225
- ```
226
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
227
- ```
228
-
229
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
230
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
231
-
232
- ---
233
-
234
- ### Ignore (Không đưa vào Memory)
235
- Không lưu:
236
- - Trace log của một session đơn lẻ.
237
- - Temporary debugging data.
238
- - Output của một lần chạy test/scan.
239
- - Report health tạm thời của một đợt kiểm tra.
240
- - Lỗi nhỏ chỉ xảy ra một lần.
241
- - Thông tin không có khả năng tái sử dụng.
242
- - 👉 *Domain Ignore:* Các góp ý phong cách (formatting/linting) đơn lẻ trong một PR.
243
-
244
- ---
245
-
246
- ### Golden Rule
247
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
248
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
249
-
250
- ---
251
- ---
252
-
253
- ### Learning Flow (AI tự học có kiểm soát)
254
- - 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:
255
- - Hard Bug có khả năng tái diễn.
256
- - Pattern làm việc lặp lại trong dự án.
257
- - Convention hoặc quy tắc kiến trúc mới.
258
- - Quyết định Architecture quan trọng.
259
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
260
- - 👉 *Domain Harvest:* Pattern hoặc Convention mới (vd: phát hiện anti-pattern lặp đi lặp lại trong codebase).
261
-
262
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
263
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
264
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
265
-
266
- ---
267
-
268
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
269
- Sau khi hoàn thành task:
270
- - AI đánh giá các Candidate Memory đã tạo.
271
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
272
- - Đề xuất người dùng xem xét.
273
- - Gửi yêu cầu phê duyệt thông qua:
274
- - `/learn`
275
- - `qk-project-memory`
276
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
277
-
278
- ```
279
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
280
- ```
281
-
282
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
283
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
284
-
285
- ---
286
-
287
- ### Ignore (Không đưa vào Memory)
288
- Không lưu:
289
- - Trace log của một session đơn lẻ.
290
- - Temporary debugging data.
291
- - Output của một lần chạy test/scan.
292
- - Report health tạm thời của một đợt kiểm tra.
293
- - Lỗi nhỏ chỉ xảy ra một lần.
294
- - Thông tin không có khả năng tái sử dụng.
295
- - 👉 *Domain Ignore:* Các góp ý phong cách (formatting/linting) đơn lẻ trong một PR.
296
-
297
- ---
298
-
299
- ### Golden Rule
300
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
301
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
302
-
303
- ---
304
- ---
305
-
306
- ### Learning Flow (AI tự học có kiểm soát)
307
- - 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:
308
- - Hard Bug có khả năng tái diễn.
309
- - Pattern làm việc lặp lại trong dự án.
310
- - Convention hoặc quy tắc kiến trúc mới.
311
- - Quyết định Architecture quan trọng.
312
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
313
- - 👉 *Domain Harvest:* Pattern hoặc Convention mới (vd: phát hiện anti-pattern lặp đi lặp lại trong codebase).
314
-
315
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
316
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
317
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
318
-
319
- ---
320
-
321
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
322
- Sau khi hoàn thành task:
323
- - AI đánh giá các Candidate Memory đã tạo.
324
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
325
- - Đề xuất người dùng xem xét.
326
- - Gửi yêu cầu phê duyệt thông qua:
327
- - `/learn`
328
- - `qk-project-memory`
329
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
330
-
331
- ```
332
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
333
- ```
334
-
335
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
336
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
337
-
338
- ---
339
-
340
- ### Ignore (Không đưa vào Memory)
341
- Không lưu:
342
- - Trace log của một session đơn lẻ.
343
- - Temporary debugging data.
344
- - Output của một lần chạy test/scan.
345
- - Report health tạm thời của một đợt kiểm tra.
346
- - Lỗi nhỏ chỉ xảy ra một lần.
347
- - Thông tin không có khả năng tái sử dụng.
348
- - 👉 *Domain Ignore:* Các góp ý phong cách (formatting/linting) đơn lẻ trong một PR.
349
-
350
- ---
351
-
352
- ### Golden Rule
353
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
354
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
355
-
356
- ---
357
- ---
358
- ---
359
- ---
360
-
361
99
  ## Preconditions
362
100
 
363
- - [ ] Xác định rõ đối tượng cần review: Mã nguồn phần mềm (React, Java, etc.) hay Cấu hình AI (Skin, Rules, Workflows).
364
- - [ ] Cung cấp ngữ cảnh hoặc mục tiêu của đoạn code/cấu hình cần review.
101
+ Trước khi thực hiện review, AI BẮT BUỘC kiểm tra:
365
102
 
366
- ```
367
- On missing precondition EXIT: BLOCKED
368
- Report: "Missing: Vui lòng cung cấp ngữ cảnh hoặc chỉ định file cần review."
369
- ```
103
+ - [ ] Xác định đối tượng review: files cụ thể, diff/PR, hay cấu hình AI/rules.
104
+ - [ ] Đọc `.agents/DEV_PROFILE.md` để nắm coding standards, architectural rules, và constraints.
105
+ - [ ] Đảm bảo files cần review tồn tại thể đọc được nội dung.
106
+ - [ ] Nếu scope review vượt quá khả năng context (ví dụ toàn bộ repo hàng nghìn files cùng lúc):
107
+ → **EXIT: BLOCKED**
108
+ → Báo cáo user chia nhỏ phạm vi review theo module hoặc PR diff.
370
109
 
371
110
  ---
372
111
 
373
- ## Dynamic Context Loading (Tải Ngữ Cảnh Động)
112
+ ## Scope
374
113
 
375
- > **CHỈ ĐỌC KHI CẦN (on-demand):** Chỉ mở file references/ nếu có vấn đề cụ thể cần xác minh. Đừng đọc trước khi chưa thấy vấn đề.
114
+ Skill này làm:
115
+ - Phân tích code theo 4 tầng: Bug/Logic, Security, Architecture/Maintainability, Coding Standards.
116
+ - Đánh giá chất lượng của cấu hình AI (SKILL.md, workflow YAML, system rules).
117
+ - Cung cấp feedback định lượng, phân loại độ nghiêm trọng: CRITICAL, HIGH, MEDIUM, LOW.
118
+ - Gợi ý giải pháp cụ thể (concrete diffs / refactor snippet) cho từng vấn đề.
119
+ - Hoạt động ở chế độ **read-only** (chỉ xuất báo cáo, không tự ý sửa code).
376
120
 
377
- - **Nếu review AI Config** và phát hiện vấn đề schema/anti-pattern → đọc `references/ai/v8-schema-validation.md` HOẶC `references/ai/ai-anti-patterns.md` (không cần đọc cả 2 nếu không liên quan).
378
- - **Nếu review Code** gặp vấn đề ngôn ngữ cụ thểđọc `references/languages/[tên-ngôn-ngữ].md`.
379
- - **Nếu review cross-cutting** cần xác minh architecture đọc `references/cross-cutting/architecture-review-guide.md`.
380
- - **Default (80% trường hợp):** Dùng kiến thức sẵn, không đọc references.
121
+ Skill này KHÔNG làm:
122
+ - Tự động áp dụng code fix vào source code của user (user quyết định hoặc dùng `qk-refactor`).
123
+ - Quét toàn bộ vulnerabilities của third-party dependencies qua CVE database (→ `qk-security-audit`).
124
+ - Đo lường chấm điểm tổng thể kỹ thuật dự án (→ `qk-project-health`).
381
125
 
382
126
  ---
383
127
 
384
- ## 4-Phase Review Process
128
+ ## Execution Steps
385
129
 
386
- một AI Architect, quá trình review phải tuân thủ nghiêm ngặt 4 giai đoạn sau:
387
-
388
- ### Phase 1: Context Gathering & Loading (Thu thập & Nạp Ngữ Cảnh)
389
- - Đọc file mô tả (PR, Issue) hoặc yêu cầu của người dùng.
390
- - **Thực thi Dynamic Context Loading** (đọc các file reference cần thiết như đã định nghĩa ở trên).
130
+ ### Step 1 Context & Target Ingestion
131
+ ```
132
+ Inputs: Danh sách files/diff từ user, DEV_PROFILE.md
133
+ Actions:
134
+ - Đọc nội dung source code mục tiêu.
135
+ - Phân tích vai trò của file trong kiến trúc chung (domain, service, UI, infra).
136
+ Output: Scope boundary & Review target map
137
+ ```
391
138
 
392
- ### Phase 2: High-Level Review (Kiến trúc & Chuẩn mực)
393
- - **Đối với AI Config:** Kiểm tra cấu trúc V8 (Identity, Intent, Complexity, Triggers).
394
- - **Đối với Code Phần mềm:** Kiểm tra SOLID, Coupling/Cohesion, Performance, Security. **BẮT BUỘC đối chiếu với luật chống rác mã (R-C-09) và ranh giới Zero-Trust (R-SEC-04). Vi phạm sẽ bị đánh tag `[blocking]`.**
139
+ ### Step 2 — Multi-Dimensional Analysis
140
+ ```
141
+ Inputs: Source code, Standards & Rules
142
+ Actions:
143
+ - Phase 1: Logic & Correctness (xử lý null/undefined, race conditions, edge cases).
144
+ - Phase 2: Security & Privacy (input validation, SQLi/XSS, secret leaks, access control).
145
+ - Phase 3: Architecture & Clean Code (SOLID, DRY, coupled dependencies, readability).
146
+ - Phase 4: Conventions & Performance (quy ước đặt tên, N+1 query, re-render).
147
+ Output: Raw findings list
148
+ ```
395
149
 
396
- ### Phase 3: Deep-dive & Logic Review (Phân tích chi tiết)
397
- - **Đối với AI Config:** Kiểm tra rủi ro "ảo giác" (hallucination), token abuse, side-effects, stop_early.
398
- - **Đối với Code Phần mềm:** Rà soát edge cases, lỗi logic chuyên sâu theo từng ngôn ngữ (Tham chiếu theo `languages` guides).
150
+ ### Step 3 Constructive Synthesis & Remediation
151
+ ```
152
+ Inputs: Raw findings list
153
+ Actions:
154
+ - Lọc bỏ false positives và gán nhãn mức độ nghiêm trọng (CRITICAL/HIGH/MEDIUM/LOW).
155
+ - Với mỗi finding, viết lý do (Why) và đề xuất code snippet cải tiến (How to fix).
156
+ Output: Structured Review Report
157
+ ```
399
158
 
400
- ### Phase 4: Summary & Decision (Tổng hợp & Quyết định)
401
- - Đưa ra báo cáo theo `Output Format`.
402
- - Gắn nhãn `Severity Tags` rõ ràng.
159
+ ### Step 4 Verification & Delivery
160
+ ```
161
+ Inputs: Structured Review Report
162
+ Actions:
163
+ - Rà soát tính khả thi của các đề xuất.
164
+ - Trình bày báo cáo rõ ràng, mạch lạc theo ngôn ngữ tiếng Việt (code snippets giữ English).
165
+ Exit: SUCCESS
166
+ ```
403
167
 
404
168
  ---
405
169
 
406
- ## Feedback Principles (Nguyên tắc Phản hồi)
170
+ ## Prompt Template
407
171
 
408
- - **Collaborative Language (Ngôn từ hợp tác)**: Thay ra lệnh ("Sửa cái này thành X", "Bỏ dòng này đi"), hãy dùng câu hỏi gợi mở ("Nếu chúng ta dùng X ở đây thì có tối ưu hiệu năng hơn không?", "Có vẻ logic này bị lặp, chúng ta extract nó ra hàm riêng được không?").
409
- - **Differentiate Severity (Phân biệt mức độ)**: Bắt buộc sử dụng các nhãn sau để phân loại mức độ phản hồi:
410
- - 🔴 `[blocking]` - Lỗi nghiêm trọng (VD: Security flaw, thiếu token_budget). Bắt buộc phải sửa.
411
- - 🟡 `[important]` - Lỗi quan trọng (VD: Performance leak, trigger quá rộng). Nên sửa hoặc cần thảo luận.
412
- - 🟢 `[nit]` - Cải thiện nhỏ (VD: Lỗi chính tả, format, naming). Không bắt buộc.
413
- - 💡 `[suggestion]` - Cách tiếp cận hoặc thư viện thay thế để tham khảo.
414
- - 📚 `[learning]` - Giải thích nguyên lý (Why) để chia sẻ kiến thức, không yêu cầu hành động.
415
- - 🎉 `[praise]` - Lời khen cho đoạn code / logic thiết kế tốt.
172
+ AI đọc `DEV_PROFILE.md` để biết conventions + constraints. Review sẽ đánh giá theo đúng tiêu chuẩn dự án.
416
173
 
417
- ---
418
-
419
- ## Output Format
174
+ ```
175
+ Review: [File / folder / PR diff cần review]
176
+ Focus: [security / performance / architecture / logic / correctness — hoặc "full"]
177
+ Context: [Đây là feature mới / bug fix / refactor / migration / ...]
178
+ Bỏ qua: [Những thứ không cần comment — vd: style, naming, test coverage]
179
+ ```
420
180
 
421
- ```markdown
422
- ## qk-code-review Report
423
- ─────────────────────────────────────────────────
424
- **Target:** [Tên file / Chức năng]
425
- **Status:** SUCCESS | BLOCKED | FAILED | PARTIAL
181
+ ---
426
182
 
427
- ### 📊 Executive Summary
428
- [1-2 câu tóm tắt chất lượng tổng thể của mã nguồn/cấu hình. VD: "Kiến trúc rõ ràng, nhưng tiềm ẩn rủi ro lặp vô hạn ở dòng 45."]
183
+ ### Theo Role — AI review theo tiêu chí khác nhau:
429
184
 
430
- ### 🔍 Findings & Recommendations
185
+ **role: fe**
186
+ ```
187
+ Review: src/features/cart/ (toàn bộ folder — PR mới)
188
+ Focus: correctness + performance
189
+ Context: Vừa implement giỏ hàng — lần đầu có optimistic updates
190
+ Bỏ qua: CSS naming convention
191
+ ```
192
+ → AI xem xét: race condition trong optimistic update, stale closure trong
193
+ useCallback/useEffect, unnecessary re-render (missing memo/deps array),
194
+ missing error boundary, accessibility của interactive elements,
195
+ bundle size impact của dependencies mới.
431
196
 
432
- [Nhóm các findings theo mức độ nghiêm trọng giảm dần. LUÔN đính kèm snippet / file line nếu có thể]
197
+ **role: be**
198
+ ```
199
+ Review: src/routes/payments/ + src/services/PaymentService.ts
200
+ Focus: security + correctness
201
+ Context: Tích hợp payment gateway mới (Stripe) — business critical
202
+ Bỏ qua: Code style
203
+ ```
204
+ → AI xem xét: idempotency key usage, webhook signature verification,
205
+ sensitive data logging (card numbers, CVV không được log),
206
+ error handling không leak internal info ra response, DB transaction scope,
207
+ rate limiting, secrets không hardcode.
433
208
 
434
- - 🔴 `[blocking]`: [Vấn đề nghiêm trọng]
435
- - *Location*: `file.ts:L45`
436
- - *Feedback*: [Câu hỏi/Gợi ý sửa chữa]
437
-
438
- - 🟡 `[important]`: [Vấn đề quan trọng]
439
- - 💡 `[suggestion]`: [Gợi ý cải thiện]
440
- - 🟢 `[nit]`: [Góp ý nhỏ]
441
- - 🎉 `[praise]`: [Khen ngợi]
209
+ **role: fullstack**
210
+ ```
211
+ Review: src/features/reports/ (FE + BE cùng PR)
212
+ Focus: architecture + contract
213
+ Context: Feature mới export báo cáo, cả FE và BE trong cùng PR
214
+ Bỏ qua: Test coverage (sẽ thêm sau)
215
+ ```
216
+ → AI xem xét: type contract giữa FE-BE (có dùng shared types không),
217
+ FE không hard-code assumptions về response shape, BE thay đổi response
218
+ có break FE không, error shape nhất quán, loading state đầy đủ.
442
219
 
443
- ### 🛠️ Suggested Fixes (Optional)
444
- [Cung cấp Code diff hoặc YAML chuẩn xác để user dễ dàng copy & paste. TUYỆT ĐỐI KHÔNG tự sửa file nếu user chưa yêu cầu]
220
+ **role: data**
221
+ ```
222
+ Review: dags/customer_churn_pipeline.py + models/mart/fct_churn.sql
223
+ Focus: correctness + reliability
224
+ Context: Pipeline mới chạy weekly, dữ liệu dùng cho ML model
225
+ Bỏ qua: SQL formatting style
226
+ ```
227
+ → AI xem xét: idempotency (re-run an toàn không), partition filter đúng chưa
228
+ (tránh full scan), data quality assertions có đủ không, schema evolution
229
+ strategy, downstream dependencies được documented chưa, SLA realistic không.
445
230
 
446
- ### ✅ Verdict
447
- - [ ] Approve (Có thể merge/deploy ngay)
448
- - [ ] Changes Requested (Cần sửa các mục `[blocking]`)
449
- - [ ] Comment (Chỉ là gợi ý, quyền quyết định ở user)
231
+ **role: ai-engineer**
450
232
  ```
233
+ Review: prompts/ + retrieval/pipeline.py
234
+ Focus: correctness + hallucination risk
235
+ Context: RAG pipeline sắp ra production — cần review kỹ trước khi deploy
236
+ Bỏ qua: Code style
237
+ ```
238
+ → AI xem xét: system prompt có enforce grounding không ("chỉ dùng context được cung cấp"),
239
+ retrieval có thể trả empty context không (edge case), temperature setting phù hợp,
240
+ PII trong training data / retrieved context, prompt injection risk,
241
+ eval metrics có được log không, fallback khi LLM unavailable.
451
242
 
243
+ **role: devops**
244
+ ```
245
+ Review: .github/workflows/ + terraform/modules/ecs/
246
+ Focus: security + correctness
247
+ Context: Infrastructure change — scale up ECS service + thêm ALB rule
248
+ Bỏ qua: Resource naming convention (đã có convention riêng)
249
+ ```
250
+ → AI xem xét: secrets exposed trong logs hay env vars không, IAM least-privilege
251
+ (role có quá nhiều permission không), rollback plan rõ ràng chưa,
252
+ state file được lock và store an toàn không, có test trên staging trước prod không,
253
+ blast radius nếu Terraform apply fail giữa chừng.