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-project-memory
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  status: stable
6
- description: "Quản trị Tri thức và Bộ nhớ dự án V1 (Local Private Mode) — Quản lý tại .ai-local/ như source code: tự động khởi tạo, bảo mật gitignore, có thể review, cập nhật và luôn có con người phê duyệt."
6
+ description: "Quản trị Tri thức và Bộ nhớ dự án V1 (Local Private Mode) — Quản lý tại .ai-local/ như source code: tự động khởi tạo, bảo mật gitignore, có thể review, cập nhật và luôn có con người phê duyệt. Dùng skill này khi user nhắc đến: lưu context, project memory, ghi nhớ, /learn, lưu vào bộ nhớ, nhớ lại, tìm lại fact, lưu tri thức dự án — kể cả khi chỉ nói 'nhớ lại lỗi này để sau không mắc lại'."
7
7
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
8
 
9
9
  # ── V9: Classification ─────────────────────────────────────
@@ -24,11 +24,13 @@ complexity:
24
24
 
25
25
  triggers:
26
26
  - "lưu context"
27
- - "nhớ lại"
28
27
  - "project memory"
28
+ - "ghi nhớ"
29
+ - "/learn"
29
30
  - "lưu vào bộ nhớ"
31
+ - "nhớ lại"
30
32
  - "tìm lại fact"
31
- - "/learn"
33
+ - "lưu tri thức dự án"
32
34
 
33
35
  # ── V9: References ─────────────────────────────────────────
34
36
  workflow: documentation
@@ -42,19 +44,19 @@ tools:
42
44
 
43
45
  related_skills:
44
46
  - qk-context-loader
45
- - qk-engineering-standard
47
+ - qk-docs
46
48
 
47
49
  knowledge_scope:
48
50
  owns:
49
- - project-facts
50
- - verified-context
51
- - patterns
52
- - hard-bugs
51
+ - project-facts
52
+ - verified-context
53
+ - patterns
54
+ - hard-bugs
53
55
  references:
54
- - architecture
55
- - convention
56
- - pattern
57
- - hard-bug
56
+ - architecture
57
+ - convention
58
+ - pattern
59
+ - hard-bug
58
60
 
59
61
  # ── V9: Verification ───────────────────────────────────────
60
62
  verification:
@@ -78,7 +80,7 @@ produces: [knowledge-update]
78
80
  consumes: [source-code, task-outcome]
79
81
 
80
82
  token_budget:
81
- max_files_read: 2
83
+ max_files_read: 3
82
84
  max_lines_per_read: 150
83
85
  max_shell_commands: 0
84
86
  stop_early: true
@@ -88,13 +90,43 @@ exit_codes: [SUCCESS, BLOCKED, DISMISSED, FAILED]
88
90
 
89
91
  # qk-project-memory — Project Knowledge Management V1
90
92
 
93
+ > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
94
+
91
95
  > **Kim chỉ nam tối thượng:** *"Knowledge phải được quản lý giống như source code: đơn giản, có thể xem xét (review), có thể cập nhật, có thể loại bỏ và luôn có con người chịu trách nhiệm phê duyệt."*
92
- >
93
- > **Nguyên tắc định hướng:**
94
- > - **Đơn giản hơn > Thông minh hơn:** Mọi tính năng chỉ phục vụ 2 mục tiêu: giúp AI mở đúng file nhanh hơn, hoặc tránh lặp lại một lỗi đã trả giá đắt.
95
- > - **Navigator, NOT Source of Truth:** Memory chỉ dùng để giảm thời gian tìm kiếm, không thay thế việc đọc mã nguồn hiện tại.
96
- > - **Tài liệu Kỹ Thuật:** `AGENTS.md` và `index.yaml` là tài liệu kỹ thuật của dự án, tuyệt đối KHÔNG phải nhật ký hội thoại của AI ("Hôm nay AI đã...", "User bảo...").
97
- > - **AI Đề xuất -> Con người Phê duyệt:** AI không tự học ngầm, AI tóm tắt và đề xuất để lập trình viên chốt duyệt.
96
+
97
+ ---
98
+
99
+ ## Preconditions
100
+
101
+ Trước khi đọc hoặc ghi vào bộ nhớ dự án:
102
+
103
+ - [ ] Kiểm tra xem thư mục `.ai-local/` đã tồn tại chưa:
104
+ - Nếu **chưa có**: Tự động tạo `.ai-local/AGENTS.md` và `.ai-local/knowledge/index.yaml` (Self-Init Protocol), đồng thời đảm bảo `.ai-local/` đã nằm trong `.gitignore`.
105
+ - [ ] Xác định thao tác: **Tra cứu (Retrieve)** hay **Học/Ghi nhớ (/learn)**.
106
+ - [ ] Với thao tác Ghi nhớ: Tri thức BẮT BUỘC phải thuộc 1 trong 4 danh mục cốt lõi:
107
+ 1. `Architecture` (Cấu trúc nền tảng)
108
+ 2. `Convention` (Quy ước viết code bất di bất dịch)
109
+ 3. `Pattern` (Mẫu giải pháp lặp lại nhiều bước)
110
+ 4. `Hard Bug` (Lỗi tốn nhiều thời gian xử lý)
111
+ - [ ] Nếu là lỗi typo, format CSS vặt vãnh, hoặc CRUD tầm thường:
112
+ → **EXIT: DISMISSED** (Bỏ qua để giữ sạch bộ nhớ).
113
+
114
+ ---
115
+
116
+ ## Scope
117
+
118
+ ✅ Skill này làm:
119
+ - Khởi tạo và duy trì bộ nhớ cục bộ an toàn tại `.ai-local/` (tách biệt khỏi git commit chung).
120
+ - Tra cứu nhanh các quyết định kiến trúc, patterns và cách fix bug cũ trước khi giải quyết task mới.
121
+ - Đề xuất bản thảo tri thức mới (Draft Proposal) dưới chuẩn YAML súc tích.
122
+ - Xin phê duyệt rõ ràng từ lập trình viên (Human Approval Gate) trước khi lưu vĩnh viễn.
123
+ - Lưu vết lịch sử theo cơ chế Zero-Overwrite (Chuyển trạng thái cũ sang `Archived` thay vì xóa mất dữ liệu).
124
+
125
+ ❌ Skill này KHÔNG làm:
126
+ - Tự động ghi ngầm tri thức mà không có sự đồng ý của con người.
127
+ - Lưu trữ nhật ký hội thoại ("Hôm nay user bảo làm X...").
128
+ - Dùng đường dẫn tuyệt đối máy cá nhân (`C:/...`, `D:/...`).
129
+ - Thay thế mã nguồn thật (Memory chỉ là Navigator hỗ trợ định vị).
98
130
 
99
131
  ---
100
132
 
@@ -208,7 +240,7 @@ knowledge:
208
240
 
209
241
  ---
210
242
 
211
- ## 4. Quy Trình Trò Chuyện & Thao Tác (The `/learn` Lifecycle)
243
+ ## Execution Steps The `/learn` Lifecycle
212
244
 
213
245
  Bất kỳ lúc nào người dùng gõ `/learn`, `./qk-project-memory`, hoặc sau khi hoàn tất một task phức tạp có tham số yêu cầu ghi nhớ, Agent PHẢI tuân thủ theo 4 bước khép kín:
214
246
 
@@ -246,3 +278,26 @@ Trình bày rõ trước người dùng trên chat:
246
278
  | BLOCKED | Đề xuất tri thức bị Người dùng từ chối (Hoặc thiếu quyền truy xuất file) | Không thay đổi bộ nhớ |
247
279
  | DISMISSED | Thao tác không thỏa mãn 4 tiêu chí lọc V1 (Chỉ là typo, css vặt) | Bỏ qua ghi nhớ nhằm sạch hệ thống |
248
280
  | FAILED | File bộ nhớ sai định dạng cú pháp YAML hoặc vi phạm giới hạn 100 dòng | Yêu cầu sửa/reset cấu trúc file |
281
+
282
+ ---
283
+
284
+ ## Prompt Template
285
+
286
+ ```
287
+ Lệnh: [/learn hoặc tra cứu tri thức]
288
+ Tri thức: [Tóm tắt pattern, convention, kiến trúc, hoặc hard bug vừa xử lý]
289
+ File liên quan:[Đường dẫn tương đối: vd: src/services/apiClient.ts]
290
+ Mục đích: [Giúp AI trong tương lai không lặp lại lỗi hoặc mở đúng file]
291
+ ```
292
+
293
+ ### Ví dụ thao tác:
294
+
295
+ **Lưu một Hard Bug vừa xử lý xong**
296
+ ```
297
+ Lệnh: /learn
298
+ Tri thức: Hard Bug: Lỗi hydration mismatch trong Next.js do dùng new Date() trực tiếp trong component render.
299
+ Khắc phục: Dùng useEffect để set client date hoặc dùng thư viện suppressHydrationWarning.
300
+ File: src/components/HeaderClock.tsx
301
+ ```
302
+ → AI chuẩn bị bản draft YAML đề xuất theo chuẩn `index.yaml` và hỏi người dùng phê duyệt trước khi commit vào `.ai-local/knowledge/index.yaml`.
303
+
@@ -1,8 +1,8 @@
1
- ---
1
+ ---
2
2
  name: qk-refactor
3
- version: 9.1.0
3
+ version: 9.2.0
4
4
  status: stable
5
- description: "Tái cấu trúc dọn dẹp nguồn để dễ bảo trì hơn không làm thay đổi logic hoạt động bên ngoài."
5
+ description: "Tái cấu trúc code để dễ bảo trì, dễ test hơn không thay đổi external behavior. Dùng skill này khi user nhắc đến: refactor, tái cấu trúc, tách file, extract function/component/module, clean code, reduce complexity, file quá dài, God class, quá nhiều responsibilities — kể cả khi chỉ nói \"file này lộn xộn quá\"."
6
6
  platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
7
 
8
8
  type: capability
@@ -20,13 +20,17 @@ complexity:
20
20
  has_external_dependency: false
21
21
  has_breaking_change: false
22
22
 
23
- triggers:
24
- - refactor
25
- - tái cấu trúc
26
- - clean up this code
27
- - simplify
28
- - reduce complexity
29
- - dẫn cấu trúc code
23
+ triggers:
24
+ - "refactor"
25
+ - "tái cấu trúc"
26
+ - "tách file"
27
+ - "extract function/component/module"
28
+ - "clean code"
29
+ - "reduce complexity"
30
+ - "file quá dài"
31
+ - "God class"
32
+ - "quá nhiều responsibilities"
33
+
30
34
 
31
35
  selection:
32
36
  priority: medium
@@ -44,7 +48,7 @@ tools:
44
48
  - terminal
45
49
 
46
50
  related_skills:
47
- - qk-engineering-standard
51
+ - qk-code-review
48
52
  - qk-project-health
49
53
 
50
54
  knowledge_scope:
@@ -76,305 +80,164 @@ token_budget:
76
80
  max_shell_commands: 2
77
81
  stop_early: true
78
82
 
79
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
83
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
80
84
  ---
81
85
 
82
86
  # qk-refactor - Safe Refactor
83
87
 
84
- > Language rule: Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
88
+ > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
89
+
90
+ Chịu trách nhiệm tái cấu trúc mã nguồn để tăng khả năng bảo trì, giảm độ phức tạp và tăng tính kiểm thử mà **TUYỆT ĐỐI KHÔNG làm thay đổi hành vi bên ngoài (External Behavior)**.
91
+
92
+ ---
85
93
 
86
- ## Memory Workflow
87
-
88
- ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
89
- - 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:
90
- - **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.
91
- - **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.
92
-
93
- ---
94
-
95
- ### Pre-flight Retrieve (Trước khi thực thi)
96
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
97
- bắt buộc tra cứu:
98
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
99
-
100
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
101
- - Architecture
102
- - Hard Bug
103
- - Convention
104
- - Pattern
105
- - Tech Debt Pattern
106
- - 👉 *Domain Focus:* Pattern / Convention (vd: chiến lược tách file anti-slop, bảo toàn public contract).
107
-
108
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
109
- Không được xem Memory là Source of Truth.
110
- 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.
111
-
112
- ---
113
-
114
- ### Learning Flow (AI tự học có kiểm soát)
115
- - 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:
116
- - Hard Bug có khả năng tái diễn.
117
- - Pattern làm việc lặp lại trong dự án.
118
- - Convention hoặc quy tắc kiến trúc mới.
119
- - Quyết định Architecture quan trọng.
120
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
121
- - 👉 *Domain Harvest:* Pattern tái cấu trúc mã nguồn hiệu quả (vd: bẻ gẫy god-file thành module O(1)).
122
-
123
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
124
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
125
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
126
-
127
- ---
128
-
129
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
130
- Sau khi hoàn thành task:
131
- - AI đánh giá các Candidate Memory đã tạo.
132
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
133
- - Đề xuất người dùng xem xét.
134
- - Gửi yêu cầu phê duyệt thông qua:
135
- - `/learn`
136
- - `qk-project-memory`
137
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
138
-
139
- ```
140
- .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
141
- ```
142
-
143
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
144
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
145
-
146
- ---
147
-
148
- ### Ignore (Không đưa vào Memory)
149
- Không lưu:
150
- - Trace log của một session đơn lẻ.
151
- - Temporary debugging data.
152
- - Output của một lần chạy test/scan.
153
- - Report health tạm thời của một đợt kiểm tra.
154
- - Lỗi nhỏ chỉ xảy ra một lần.
155
- - Thông tin không có khả năng tái sử dụng.
156
- - 👉 *Domain Ignore:* Các thao tác đổi tên biến (rename) hoặc format đơn giản.
157
-
158
- ---
159
-
160
- ### Golden Rule
161
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
162
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
163
-
164
- ---
165
-
166
-
167
-
168
- ### Pre-flight Retrieve (Trước khi thực thi)
169
- - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
170
- bắt buộc tra cứu:
171
- - `.agents/knowledge/index.yaml` (Shared Project Knowledge)
172
- - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
173
-
174
- - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
175
- - Architecture
176
- - Hard Bug
177
- - Convention
178
- - Pattern
179
- - Tech Debt Pattern
180
- - 👉 *Domain Focus:* Pattern / Convention (vd: chiến lược tách file anti-slop, bảo toàn public contract).
181
-
182
- - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
183
- Không được xem Memory là Source of Truth.
184
- 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.
185
-
186
- ---
187
-
188
- ### Learning Flow (AI tự học có kiểm soát)
189
- - 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:
190
- - Hard Bug có khả năng tái diễn.
191
- - Pattern làm việc lặp lại trong dự án.
192
- - Convention hoặc quy tắc kiến trúc mới.
193
- - Quyết định Architecture quan trọng.
194
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
195
- - 👉 *Domain Harvest:* Pattern tái cấu trúc mã nguồn hiệu quả (vd: bẻ gẫy god-file thành module O(1)).
196
-
197
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
198
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
199
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
200
-
201
- ---
202
-
203
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
204
- Sau khi hoàn thành task:
205
- - AI đánh giá các Candidate Memory đã tạo.
206
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
207
- - Đề xuất người dùng xem xét.
208
- - Gửi yêu cầu phê duyệt thông qua:
209
- - `/learn`
210
- - `qk-project-memory`
211
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
212
-
213
- ```
214
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
215
- ```
216
-
217
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
218
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
219
-
220
- ---
221
-
222
- ### Ignore (Không đưa vào Memory)
223
- Không lưu:
224
- - Trace log của một session đơn lẻ.
225
- - Temporary debugging data.
226
- - Output của một lần chạy test/scan.
227
- - Report health tạm thời của một đợt kiểm tra.
228
- - Lỗi nhỏ chỉ xảy ra một lần.
229
- - Thông tin không có khả năng tái sử dụng.
230
- - 👉 *Domain Ignore:* Các thao tác đổi tên biến (rename) hoặc format đơn giản.
231
-
232
- ---
233
-
234
- ### Golden Rule
235
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
236
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
237
-
238
- ---
239
- ---
240
-
241
- ### Learning Flow (AI tự học có kiểm soát)
242
- - 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:
243
- - Hard Bug có khả năng tái diễn.
244
- - Pattern làm việc lặp lại trong dự án.
245
- - Convention hoặc quy tắc kiến trúc mới.
246
- - Quyết định Architecture quan trọng.
247
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
248
- - 👉 *Domain Harvest:* Pattern tái cấu trúc mã nguồn hiệu quả (vd: bẻ gẫy god-file thành module O(1)).
249
-
250
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
251
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
252
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
253
-
254
- ---
255
-
256
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
257
- Sau khi hoàn thành task:
258
- - AI đánh giá các Candidate Memory đã tạo.
259
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
260
- - Đề xuất người dùng xem xét.
261
- - Gửi yêu cầu phê duyệt thông qua:
262
- - `/learn`
263
- - `qk-project-memory`
264
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
265
-
266
- ```
267
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
268
- ```
269
-
270
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
271
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
272
-
273
- ---
274
-
275
- ### Ignore (Không đưa vào Memory)
276
- Không lưu:
277
- - Trace log của một session đơn lẻ.
278
- - Temporary debugging data.
279
- - Output của một lần chạy test/scan.
280
- - Report health tạm thời của một đợt kiểm tra.
281
- - Lỗi nhỏ chỉ xảy ra một lần.
282
- - Thông tin không có khả năng tái sử dụng.
283
- - 👉 *Domain Ignore:* Các thao tác đổi tên biến (rename) hoặc format đơn giản.
284
-
285
- ---
286
-
287
- ### Golden Rule
288
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
289
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
290
-
291
- ---
292
- ---
293
-
294
- ### Learning Flow (AI tự học có kiểm soát)
295
- - 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:
296
- - Hard Bug có khả năng tái diễn.
297
- - Pattern làm việc lặp lại trong dự án.
298
- - Convention hoặc quy tắc kiến trúc mới.
299
- - Quyết định Architecture quan trọng.
300
- - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
301
- - 👉 *Domain Harvest:* Pattern tái cấu trúc mã nguồn hiệu quả (vd: bẻ gẫy god-file thành module O(1)).
302
-
303
- - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
304
- - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
305
- - AI không được tự động Promote Candidate Memory thành Project Knowledge.
306
-
307
- ---
308
-
309
- ### Post-flight Harvest (Đề xuất → Phê duyệt)
310
- Sau khi hoàn thành task:
311
- - AI đánh giá các Candidate Memory đã tạo.
312
- - Nếu phát hiện tri thức có giá trị tái sử dụng:
313
- - Đề xuất người dùng xem xét.
314
- - Gửi yêu cầu phê duyệt thông qua:
315
- - `/learn`
316
- - `qk-project-memory`
317
- - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
318
-
319
- ```
320
- .ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
321
- ```
322
-
323
- - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
324
- - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
325
-
326
- ---
327
-
328
- ### Ignore (Không đưa vào Memory)
329
- Không lưu:
330
- - Trace log của một session đơn lẻ.
331
- - Temporary debugging data.
332
- - Output của một lần chạy test/scan.
333
- - Report health tạm thời của một đợt kiểm tra.
334
- - Lỗi nhỏ chỉ xảy ra một lần.
335
- - Thông tin không có khả năng tái sử dụng.
336
- - 👉 *Domain Ignore:* Các thao tác đổi tên biến (rename) hoặc format đơn giản.
337
-
338
- ---
339
-
340
- ### Golden Rule
341
- > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
342
- > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
343
-
344
- ---
345
- ---
346
- ---
347
- ---
348
-
349
94
  ## Preconditions
350
- - [ ] Target file(s) or module(s) are specified
351
- - [ ] Tests exist for the target code (or can be created)
352
95
 
353
- On missing precondition:
354
- EXIT: BLOCKED
355
- Message: "Missing: target files or test coverage"
96
+ Trước khi tái cấu trúc bất kỳ file nào, AI BẮT BUỘC kiểm tra:
97
+
98
+ - [ ] Xác định mục tiêu refactor (tách file, giảm cognitive complexity, khử duplication, áp dụng Design Pattern).
99
+ - [ ] Xác định public contracts (functions, classes, API routes, props) cần giữ nguyên vẹn.
100
+ - [ ] Kiểm tra hệ thống test hiện có: có tests để verify behavior không?
101
+ - [ ] Nếu yêu cầu refactor kèm theo thay đổi nghiệp vụ hoặc đổi behavior:
102
+ → **EXIT: BLOCKED**
103
+ → Báo cáo user: Tách riêng việc refactor (qk-refactor) và việc đổi tính năng (qk-feature-delivery).
104
+
105
+ ---
356
106
 
357
107
  ## Scope
358
- - Improve internal code quality without changing external behavior
359
- - Reduce complexity, improve naming, extract functions
360
- - Remove dead code and duplication
361
-
362
- ## Non-Goals
363
- - Add new functionality
364
- - Change public API signatures
365
- - Modify behavior or business logic
366
-
367
- ## Workflow
368
- 1. Establish baseline (current behavior + tests)
369
- 2. Plan refactor steps
370
- 3. Execute step by step
371
- 4. Verify behavior unchanged
372
- 5. Run validation gate
373
-
374
- ## Exit Codes
375
- | Code | Meaning |
376
- |------|---------|
377
- | SUCCESS | Refactor complete, behavior preserved, tests pass |
378
- | PARTIAL | Refactor done, some tests need attention |
379
- | BLOCKED | Missing preconditions |
380
- | FAILED | Behavior changed or tests broken |
108
+
109
+ Skill này làm:
110
+ - Trích xuất hàm, component, custom hooks hoặc helper modules (Extract method/module).
111
+ - Giảm độ phức tạp cyclomatic (lồng if/else sâu, switch case khổng lồ).
112
+ - Khử trùng lặp mã nguồn (DRY) mà không tạo ra over-abstraction gượng ép.
113
+ - Tối ưu đặt tên biến, hàm theo đúng quy ước sạch (Clean Code).
114
+ - Bảo đảm 100% backward compatibility với các consumer của module.
115
+
116
+ ❌ Skill này KHÔNG làm:
117
+ - Sửa đổi business logic hoặc thay đổi đầu ra mong đợi của hệ thống.
118
+ - Viết tính năng mới ngoài lề trong quá trình refactor.
119
+ - Tự ý thay đổi schema cơ sở dữ liệu (→ `qk-data-lifecycle`).
120
+
121
+ ---
122
+
123
+ ## Execution Steps
124
+
125
+ ### Step 1 Current State & Contract Lock
126
+ ```
127
+ Inputs: Mã nguồn mục tiêu, Public interface
128
+ Actions:
129
+ - Phân tích luồng thực thi và các điểm vào/ra (inputs/outputs, exceptions).
130
+ - Khóa (lock) contract công khai: không thay đổi signature của exported functions/components.
131
+ - Kiểm tra test coverage hiện có (nếu có).
132
+ Output: Refactor Safety Boundary
133
+ ```
134
+
135
+ ### Step 2 — Incremental Transformation
136
+ ```
137
+ Inputs: Target code, Safety boundary
138
+ Actions:
139
+ - Tách nhỏ từng phần (baby steps): trích xuất hàm con, module độc lập.
140
+ - Thay thế cấu trúc lồng ghép bằng Guard Clauses (early return).
141
+ - Di chuyển các helper/utility sang vị trí phù hợp theo kiến trúc dự án.
142
+ Output: Refactored code
143
+ ```
144
+
145
+ ### Step 3 — Verification & Equivalence Check
146
+ ```
147
+ Inputs: Refactored code, Original tests
148
+ Actions:
149
+ - Chạy linter và typecheck: 0 type errors, 0 lint warnings.
150
+ - Chạy tests để xác nhận tính tương đương hành vi (behavior equivalence).
151
+ - So sánh diff để đảm bảo không xóa nhầm logic hay import.
152
+ Exit: SUCCESS nếu code sạch hơn, pass linter/types và giữ nguyên behavior.
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Prompt Template
158
+
159
+ AI đọc `DEV_PROFILE.md` để biết conventions. Mô tả vấn đề — AI đọc code thật trước khi refactor.
160
+
161
+ ```
162
+ Target: [File / module / function cần refactor — đường dẫn cụ thể]
163
+ Vấn đề: [Code đang gây ra vấn đề gì — quá dài / khó test / lặp lại / ...]
164
+ Mục tiêu: [Muốn đạt được gì sau refactor]
165
+ Giữ nguyên: [Public interface / behavior / test cases không được đổi]
166
+ ```
167
+
168
+ ---
169
+
170
+ ### Theo Role — AI refactor theo chiều sâu khác nhau:
171
+
172
+ **role: fe**
173
+ ```
174
+ Target: src/pages/CheckoutPage.tsx (380 dòng)
175
+ Vấn đề: Một file trộn lẫn: form state, API calls, validation, UI rendering,
176
+ cart calculation — không test được, không reuse được
177
+ Mục tiêu: Tách thành: CheckoutPage (UI) + useCheckout (logic hook) +
178
+ checkoutSchema (validation) + cartUtils (calculation)
179
+ Giữ nguyên: Props interface của CheckoutPage không đổi, behavior submit không đổi
180
+ ```
181
+ → AI refactor: custom hook extraction pattern, co-location vs separation of concerns,
182
+ memoization opportunities (useMemo/useCallback), type narrowing sau khi tách.
183
+
184
+ **role: be**
185
+ ```
186
+ Target: src/services/OrderService.ts (420 dòng)
187
+ Vấn đề: God class — xử lý: tạo order, tính giá, gửi email, update inventory,
188
+ generate invoice — vi phạm SRP, unit test không isolate được
189
+ Mục tiêu: Tách ra theo domain: PricingService, InventoryService, NotificationService,
190
+ OrderService chỉ orchestrate
191
+ Giữ nguyên: Public method signatures của OrderService, không đổi DB transactions
192
+ ```
193
+ → AI refactor: dependency injection pattern, service boundary design,
194
+ transaction scope sau khi tách (vẫn cần atomic), interface extraction cho testability.
195
+
196
+ **role: fullstack**
197
+ ```
198
+ Target: src/features/products/ (toàn bộ folder)
199
+ Vấn đề: Feature folder có: API route, DB query, FE component, type definitions
200
+ — tất cả trong cùng 1 file products.ts (550 dòng)
201
+ Mục tiêu: Feature-based architecture: products/api.ts, products/db.ts,
202
+ products/components/, products/types.ts, products/hooks.ts
203
+ Giữ nguyên: Import paths của các file khác đang dùng products types
204
+ ```
205
+ → AI refactor: barrel exports để preserve import paths, layer separation
206
+ (presentation/business/data), shared types location, circular dependency check.
207
+
208
+ **role: data**
209
+ ```
210
+ Target: transforms/order_metrics.sql (250 dòng)
211
+ Vấn đề: SQL monolith — một query tính tất cả metrics, không reusable,
212
+ debug khó, CTE lồng nhau 6 cấp
213
+ Mục tiêu: Tách thành dbt models: stg_orders, int_order_items, fct_order_metrics
214
+ Mỗi model làm đúng một việc
215
+ Giữ nguyên: Output schema của fct_order_metrics không đổi (downstream depends on it)
216
+ ```
217
+ → AI refactor: dbt model layering (staging/intermediate/mart), ref() dependencies,
218
+ incremental model strategy, documentation + schema.yml generation.
219
+
220
+ **role: ai-engineer**
221
+ ```
222
+ Target: agents/rag_agent.py (300 dòng)
223
+ Vấn đề: Monolithic RAG function — embed + retrieve + rerank + generate
224
+ tất cả trong 1 hàm, không thể A/B test từng component
225
+ Mục tiêu: Tách thành pipeline: Retriever, Reranker, Generator — mỗi class
226
+ có interface rõ ràng, swap được implementation
227
+ Giữ nguyên: Input/output interface của rag_agent() không đổi
228
+ ```
229
+ → AI refactor: Strategy pattern cho từng pipeline stage, dependency injection
230
+ cho model/embedding, eval hooks tại từng stage, config-driven pipeline.
231
+
232
+ **role: devops**
233
+ ```
234
+ Target: .github/workflows/deploy.yml (200 dòng)
235
+ Vấn đề: Một workflow file làm tất cả: test + build + push image + deploy staging
236
+ + deploy prod + notify — không reusable, khó debug khi fail
237
+ Mục tiêu: Tách thành reusable workflows: test.yml, build-push.yml,
238
+ deploy.yml (reusable), notify.yml — orchestrated từ main.yml
239
+ Giữ nguyên: Trigger conditions và environment variables không đổi
240
+ ```
241
+ → AI refactor: GitHub reusable workflows pattern (workflow_call),
242
+ matrix strategy cho multi-env deploy, secret scoping per environment,
243
+ concurrency groups để tránh parallel deploys.