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.
- package/.agents/AGENTS.md +139 -42
- package/.agents/DEV_PROFILE.md +95 -0
- package/.agents/registry/capability-graph.yml +171 -334
- package/.agents/registry/graph.json +37 -19
- package/.agents/registry/index.yaml +59 -13
- package/.agents/registry/skills-index.yml +204 -447
- package/.agents/rules/coding.md +23 -0
- package/.agents/rules/global.md +44 -30
- package/.agents/skills/_template/SKILL.md +2 -377
- package/.agents/skills/qk-access-policy/SKILL.md +98 -473
- package/.agents/skills/qk-agent-observability/SKILL.md +3 -439
- package/.agents/skills/qk-ai-builder/SKILL.md +132 -565
- package/.agents/skills/qk-api-consumer/SKILL.md +256 -0
- package/.agents/skills/qk-api-consumer/capability.yaml +21 -0
- package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-api-lifecycle/SKILL.md +133 -456
- package/.agents/skills/qk-bug-resolution/SKILL.md +128 -561
- package/.agents/skills/qk-code-review/SKILL.md +142 -420
- package/.agents/skills/qk-context-loader/SKILL.md +99 -471
- package/.agents/skills/qk-data-engineer/SKILL.md +119 -340
- package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -488
- package/.agents/skills/qk-db-optimizer/SKILL.md +102 -488
- package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -461
- package/.agents/skills/qk-devops-platform/SKILL.md +77 -463
- package/.agents/skills/qk-docs/SKILL.md +88 -494
- package/.agents/skills/qk-engineering-standard/SKILL.md +4 -588
- package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -343
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
- package/.agents/skills/qk-feature-delivery/SKILL.md +137 -445
- package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -479
- package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
- package/.agents/skills/qk-orchestrator/SKILL.md +63 -502
- package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
- package/.agents/skills/qk-product-specification/SKILL.md +70 -479
- package/.agents/skills/qk-production-release/SKILL.md +80 -537
- package/.agents/skills/qk-project-audit/SKILL.md +174 -0
- package/.agents/skills/qk-project-bootstrap/SKILL.md +243 -471
- package/.agents/skills/qk-project-health/SKILL.md +97 -496
- package/.agents/skills/qk-project-memory/SKILL.md +76 -21
- package/.agents/skills/qk-refactor/SKILL.md +167 -384
- package/.agents/skills/qk-security-audit/SKILL.md +141 -463
- package/.agents/skills/qk-security-audit/capability.yaml +1 -2
- package/.agents/skills/qk-system-evolution/SKILL.md +343 -343
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
- package/.agents/skills/qk-test-engineering/SKILL.md +119 -509
- package/.agents/skills/qk-ui-audit/SKILL.md +73 -537
- package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
- package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -514
- package/.agents/skills/qk-upgrade/SKILL.md +301 -0
- package/.agents/skills/qk-upgrade/capability.yaml +24 -0
- package/.agents/skills/qk-upgrade/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-validation-gate/SKILL.md +4 -603
- package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -463
- package/.agents/workflows/bug-resolution.yml +6 -6
- package/.agents/workflows/context-discovery.yml +94 -0
- package/.agents/workflows/feature-delivery.yml +8 -4
- package/.agents/workflows/refactor.yml +6 -3
- package/.agents/workflows/shared/quality-gate.yml +94 -0
- package/.agents/workflows/skin-governance.yml +115 -0
- package/README.md +152 -67
- package/package.json +2 -2
- package/tooling/build-registry.js +30 -8
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-context-loader
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.2.0
|
|
5
5
|
status: stable
|
|
6
|
-
description: "
|
|
6
|
+
description: "Khảo sát kiến trúc codebase, phân tích import graph, lập bản đồ phụ thuộc và tải context chính xác trước khi code — ngăn hallucination kiến trúc. Dùng skill này khi user nhắc đến: load context, understand project, vẽ dependency graph, analyze architecture, giải thích kiến trúc dự án, tìm hiểu codebase — kể cả khi chỉ hỏi 'dự án này tổ chức thế nào'."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
9
|
# ── V9: Classification ─────────────────────────────────────
|
|
@@ -22,19 +22,21 @@ complexity:
|
|
|
22
22
|
has_external_dependency: false
|
|
23
23
|
has_breaking_change: false
|
|
24
24
|
|
|
25
|
-
triggers:
|
|
26
|
-
- "load context"
|
|
27
|
-
- "understand project"
|
|
28
|
-
- "
|
|
29
|
-
- "
|
|
30
|
-
- "
|
|
25
|
+
triggers:
|
|
26
|
+
- "load context"
|
|
27
|
+
- "understand project"
|
|
28
|
+
- "vẽ dependency graph"
|
|
29
|
+
- "analyze architecture"
|
|
30
|
+
- "giải thích kiến trúc dự án"
|
|
31
|
+
- "tìm hiểu codebase"
|
|
32
|
+
|
|
31
33
|
|
|
32
34
|
selection:
|
|
33
35
|
priority: high
|
|
34
36
|
confidence_threshold: 0.75
|
|
35
37
|
|
|
36
38
|
# ── V8: References ─────────────────────────────────────────
|
|
37
|
-
workflow:
|
|
39
|
+
workflow: context-discovery
|
|
38
40
|
|
|
39
41
|
rules:
|
|
40
42
|
- global
|
|
@@ -46,15 +48,16 @@ tools:
|
|
|
46
48
|
related_skills:
|
|
47
49
|
- qk-feature-delivery
|
|
48
50
|
- qk-orchestrator
|
|
51
|
+
- qk-project-memory
|
|
49
52
|
|
|
50
53
|
knowledge_scope:
|
|
51
54
|
owns:
|
|
52
55
|
- project-context
|
|
53
56
|
- architecture-discovery
|
|
57
|
+
- dependency-mapping
|
|
54
58
|
references:
|
|
55
59
|
- coding
|
|
56
60
|
- repository-structure
|
|
57
|
-
- anti-patterns
|
|
58
61
|
|
|
59
62
|
# ── V8: Verification ───────────────────────────────────────
|
|
60
63
|
verification:
|
|
@@ -74,497 +77,122 @@ produces: [context-graph]
|
|
|
74
77
|
consumes: [source-code]
|
|
75
78
|
|
|
76
79
|
token_budget:
|
|
77
|
-
max_files_read:
|
|
78
|
-
max_lines_per_read:
|
|
79
|
-
max_shell_commands:
|
|
80
|
+
max_files_read: 10
|
|
81
|
+
max_lines_per_read: 150
|
|
82
|
+
max_shell_commands: 2
|
|
80
83
|
stop_early: true
|
|
81
84
|
|
|
82
|
-
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
85
|
+
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
83
86
|
---
|
|
84
87
|
|
|
85
|
-
# qk-context-loader — Dependency Graph
|
|
88
|
+
# qk-context-loader — Dependency Graph & Architecture Discovery
|
|
86
89
|
|
|
87
90
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
92
|
-
- 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:
|
|
93
|
-
- **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.
|
|
94
|
-
- **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.
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
99
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
100
|
-
bắt buộc tra cứu:
|
|
101
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
102
|
-
|
|
103
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
104
|
-
- Architecture
|
|
105
|
-
- Hard Bug
|
|
106
|
-
- Convention
|
|
107
|
-
- Pattern
|
|
108
|
-
- Tech Debt Pattern
|
|
109
|
-
- 👉 *Domain Focus:* Pattern / Architecture (vd: sơ đồ phụ thuộc mô-đun, biểu đồ ngữ cảnh O(1)).
|
|
110
|
-
|
|
111
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
112
|
-
Không được xem Memory là Source of Truth.
|
|
113
|
-
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.
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
118
|
-
- 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:
|
|
119
|
-
- Hard Bug có khả năng tái diễn.
|
|
120
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
121
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
122
|
-
- Quyết định Architecture quan trọng.
|
|
123
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
124
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern quan trọng khi ánh xạ dependency.
|
|
125
|
-
|
|
126
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
127
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
128
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
133
|
-
Sau khi hoàn thành task:
|
|
134
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
135
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
136
|
-
- Đề xuất người dùng xem xét.
|
|
137
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
138
|
-
- `/learn`
|
|
139
|
-
- `qk-project-memory`
|
|
140
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
147
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
### Ignore (Không đưa vào Memory)
|
|
152
|
-
Không lưu:
|
|
153
|
-
- Trace log của một session đơn lẻ.
|
|
154
|
-
- Temporary debugging data.
|
|
155
|
-
- Output của một lần chạy test/scan.
|
|
156
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
157
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
158
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
159
|
-
- 👉 *Domain Ignore:* Cache đồ thị ngữ cảnh tạm thời của một lệnh tìm kiếm.
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
### Golden Rule
|
|
164
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
165
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
172
|
-
- 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:
|
|
173
|
-
- **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.
|
|
174
|
-
- **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.
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
179
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
180
|
-
bắt buộc tra cứu:
|
|
181
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
182
|
-
|
|
183
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
184
|
-
- Architecture
|
|
185
|
-
- Hard Bug
|
|
186
|
-
- Convention
|
|
187
|
-
- Pattern
|
|
188
|
-
- Tech Debt Pattern
|
|
189
|
-
- 👉 *Domain Focus:* Pattern / Architecture (vd: sơ đồ phụ thuộc mô-đun, biểu đồ ngữ cảnh O(1)).
|
|
190
|
-
|
|
191
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
192
|
-
Không được xem Memory là Source of Truth.
|
|
193
|
-
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.
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
198
|
-
- 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:
|
|
199
|
-
- Hard Bug có khả năng tái diễn.
|
|
200
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
201
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
202
|
-
- Quyết định Architecture quan trọng.
|
|
203
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
204
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern quan trọng khi ánh xạ dependency.
|
|
205
|
-
|
|
206
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
207
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
208
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
213
|
-
Sau khi hoàn thành task:
|
|
214
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
215
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
216
|
-
- Đề xuất người dùng xem xét.
|
|
217
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
218
|
-
- `/learn`
|
|
219
|
-
- `qk-project-memory`
|
|
220
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
221
|
-
|
|
222
|
-
```
|
|
223
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
227
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
### Ignore (Không đưa vào Memory)
|
|
232
|
-
Không lưu:
|
|
233
|
-
- Trace log của một session đơn lẻ.
|
|
234
|
-
- Temporary debugging data.
|
|
235
|
-
- Output của một lần chạy test/scan.
|
|
236
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
237
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
238
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
239
|
-
- 👉 *Domain Ignore:* Cache đồ thị ngữ cảnh tạm thời của một lệnh tìm kiếm.
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
### Golden Rule
|
|
244
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
245
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
252
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
253
|
-
bắt buộc tra cứu:
|
|
254
|
-
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
255
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
256
|
-
|
|
257
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
258
|
-
- Architecture
|
|
259
|
-
- Hard Bug
|
|
260
|
-
- Convention
|
|
261
|
-
- Pattern
|
|
262
|
-
- Tech Debt Pattern
|
|
263
|
-
- 👉 *Domain Focus:* Pattern / Architecture (vd: sơ đồ phụ thuộc mô-đun, biểu đồ ngữ cảnh O(1)).
|
|
264
|
-
|
|
265
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
266
|
-
Không được xem Memory là Source of Truth.
|
|
267
|
-
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.
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
272
|
-
- 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:
|
|
273
|
-
- Hard Bug có khả năng tái diễn.
|
|
274
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
275
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
276
|
-
- Quyết định Architecture quan trọng.
|
|
277
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
278
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern quan trọng khi ánh xạ dependency.
|
|
279
|
-
|
|
280
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
281
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
282
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
287
|
-
Sau khi hoàn thành task:
|
|
288
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
289
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
290
|
-
- Đề xuất người dùng xem xét.
|
|
291
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
292
|
-
- `/learn`
|
|
293
|
-
- `qk-project-memory`
|
|
294
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
295
|
-
|
|
296
|
-
```
|
|
297
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
301
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
|
|
305
|
-
### Ignore (Không đưa vào Memory)
|
|
306
|
-
Không lưu:
|
|
307
|
-
- Trace log của một session đơn lẻ.
|
|
308
|
-
- Temporary debugging data.
|
|
309
|
-
- Output của một lần chạy test/scan.
|
|
310
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
311
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
312
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
313
|
-
- 👉 *Domain Ignore:* Cache đồ thị ngữ cảnh tạm thời của một lệnh tìm kiếm.
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
### Golden Rule
|
|
318
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
319
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
325
|
-
- 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:
|
|
326
|
-
- Hard Bug có khả năng tái diễn.
|
|
327
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
328
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
329
|
-
- Quyết định Architecture quan trọng.
|
|
330
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
331
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern quan trọng khi ánh xạ dependency.
|
|
332
|
-
|
|
333
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
334
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
335
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
336
|
-
|
|
337
|
-
---
|
|
338
|
-
|
|
339
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
340
|
-
Sau khi hoàn thành task:
|
|
341
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
342
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
343
|
-
- Đề xuất người dùng xem xét.
|
|
344
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
345
|
-
- `/learn`
|
|
346
|
-
- `qk-project-memory`
|
|
347
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
354
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
355
|
-
|
|
356
|
-
---
|
|
357
|
-
|
|
358
|
-
### Ignore (Không đưa vào Memory)
|
|
359
|
-
Không lưu:
|
|
360
|
-
- Trace log của một session đơn lẻ.
|
|
361
|
-
- Temporary debugging data.
|
|
362
|
-
- Output của một lần chạy test/scan.
|
|
363
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
364
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
365
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
366
|
-
- 👉 *Domain Ignore:* Cache đồ thị ngữ cảnh tạm thời của một lệnh tìm kiếm.
|
|
367
|
-
|
|
368
|
-
---
|
|
369
|
-
|
|
370
|
-
### Golden Rule
|
|
371
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
372
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
378
|
-
- 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:
|
|
379
|
-
- Hard Bug có khả năng tái diễn.
|
|
380
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
381
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
382
|
-
- Quyết định Architecture quan trọng.
|
|
383
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
384
|
-
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern quan trọng khi ánh xạ dependency.
|
|
385
|
-
|
|
386
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
387
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
388
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
393
|
-
Sau khi hoàn thành task:
|
|
394
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
395
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
396
|
-
- Đề xuất người dùng xem xét.
|
|
397
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
398
|
-
- `/learn`
|
|
399
|
-
- `qk-project-memory`
|
|
400
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
401
|
-
|
|
402
|
-
```
|
|
403
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
404
|
-
```
|
|
405
|
-
|
|
406
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
407
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
408
|
-
|
|
409
|
-
---
|
|
410
|
-
|
|
411
|
-
### Ignore (Không đưa vào Memory)
|
|
412
|
-
Không lưu:
|
|
413
|
-
- Trace log của một session đơn lẻ.
|
|
414
|
-
- Temporary debugging data.
|
|
415
|
-
- Output của một lần chạy test/scan.
|
|
416
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
417
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
418
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
419
|
-
- 👉 *Domain Ignore:* Cache đồ thị ngữ cảnh tạm thời của một lệnh tìm kiếm.
|
|
420
|
-
|
|
421
|
-
---
|
|
422
|
-
|
|
423
|
-
### Golden Rule
|
|
424
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
425
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
---
|
|
429
|
-
---
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## Preconditions
|
|
433
|
-
- [ ] Entry point file or module name is specified
|
|
434
|
-
- [ ] Repository is accessible
|
|
435
|
-
|
|
436
|
-
```
|
|
437
|
-
On missing precondition:
|
|
438
|
-
EXIT: BLOCKED
|
|
439
|
-
Message: "Vui lòng chỉ định entry point (file hoặc module cần map)."
|
|
440
|
-
```
|
|
92
|
+
Chịu trách nhiệm thấu hiểu cấu trúc dự án và thiết lập bản đồ phụ thuộc (Dependency Graph) chuẩn xác trước khi viết bất kỳ dòng code nào. **Mục tiêu tối thượng: Ngăn chặn triệt để AI hallucination về kiến trúc, conventions và vị trí đặt file**.
|
|
441
93
|
|
|
442
|
-
|
|
443
|
-
- ✅ Trace imports/exports from entry point
|
|
444
|
-
- ✅ Build topological dependency graph (max depth 3)
|
|
445
|
-
- ✅ Identify risk level per module
|
|
94
|
+
---
|
|
446
95
|
|
|
447
|
-
##
|
|
448
|
-
- ❌ Modify any code
|
|
449
|
-
- ❌ Load `node_modules` or vendor directories
|
|
450
|
-
- ❌ Guess file names — only follow explicit imports
|
|
451
|
-
- ❌ Load entire repo (max 5 files)
|
|
96
|
+
## Preconditions
|
|
452
97
|
|
|
453
|
-
|
|
98
|
+
Trước khi chạy khảo sát, AI BẮT BUỘC kiểm tra:
|
|
454
99
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
| P2 | Trace 2nd-level dependencies | Budget < 40% |
|
|
459
|
-
| P3 | Identify shared/risky modules | Budget < 60% |
|
|
460
|
-
| P4 | Annotate with risk levels | Budget < 70% |
|
|
100
|
+
- [ ] Workspace chứa mã nguồn thực tế (tồn tại ít nhất 1 file manifest: `package.json`, `go.mod`, `pyproject.toml`, `Cargo.toml`, `pom.xml`, v.v.).
|
|
101
|
+
- [ ] Xác định rõ phạm vi cần load: Toàn bộ repo (Full system) hay Module / Feature cụ thể.
|
|
102
|
+
- [ ] Đọc `.ai-local/knowledge/index.yaml` (nếu có) để tái sử dụng kiến thức đã lưu thay vì quét lại từ đầu.
|
|
461
103
|
|
|
462
|
-
|
|
104
|
+
*Nếu thư mục dự án hoàn toàn trống:*
|
|
105
|
+
→ **EXIT: BLOCKED**
|
|
106
|
+
→ Gợi ý: "Dự án chưa có mã nguồn. Vui lòng chạy `./qk-project-bootstrap` để khởi tạo framework và scaffolding ban đầu."
|
|
463
107
|
|
|
464
|
-
|
|
108
|
+
---
|
|
465
109
|
|
|
466
|
-
|
|
467
|
-
0. **Pre-flight V1 Memory Check:** Check for `.ai-local/knowledge/index.yaml` or `.agents/knowledge/index.yaml`. If an established architecture fact or module mapping exists in memory (`status: Active`), read it immediately to discover target symbols and entry points in seconds without performing redundant searches.
|
|
468
|
-
1. `grep_search` — search for import/export statements in entry file (only if not already resolved via V1 memory)
|
|
469
|
-
2. `view_file[StartLine:EndLine]` — read import block only (first ~30 lines)
|
|
470
|
-
3. List direct dependencies
|
|
110
|
+
## Scope
|
|
471
111
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
112
|
+
✅ Skill này làm:
|
|
113
|
+
- Đọc các tệp manifest và xác định chính xác Tech Stack, Runtime, State library, CSS framework, ORM.
|
|
114
|
+
- Khảo sát cây thư mục theo độ sâu hợp lý (Max depth = 3) để nhận diện mô hình tổ chức (Modular, Layered, Feature-sliced, Domain-driven, Monorepo).
|
|
115
|
+
- Phân tích Entry Point (`main`, `index`, `server`, `App`, router configuration).
|
|
116
|
+
- Lập sơ đồ phụ thuộc (Dependency Flow / Architecture Diagram bằng Mermaid) từ Controller/Route → Service/UseCase → Repository/Model.
|
|
117
|
+
- Trích xuất Conventions: đặt tên file, patterns xử lý lỗi, cơ chế Dependency Injection.
|
|
118
|
+
- Cập nhật thông tin vào bộ nhớ phiên làm việc của AI.
|
|
476
119
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
120
|
+
❌ Skill này KHÔNG làm:
|
|
121
|
+
- Sửa đổi bất kỳ file nào trong dự án (`side_effects: read_only`).
|
|
122
|
+
- Dump toàn bộ code files vào context làm cạn kiệt token budget.
|
|
123
|
+
- Đánh giá chất lượng chi tiết code smells (thuộc `qk-project-health`).
|
|
480
124
|
|
|
481
|
-
|
|
125
|
+
---
|
|
482
126
|
|
|
483
|
-
|
|
484
|
-
1. For each direct dependency → `grep_search` for its imports
|
|
485
|
-
2. Build adjacency list: `{ file → [imports] }`
|
|
486
|
-
3. Stop at depth 3 OR max_files_read reached
|
|
127
|
+
## Execution Steps
|
|
487
128
|
|
|
488
|
-
|
|
129
|
+
### Step 1 — Nhận diện Tech Stack & Manifest
|
|
489
130
|
```
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
131
|
+
Inputs: Thư mục gốc của project
|
|
132
|
+
Actions:
|
|
133
|
+
- Đọc file manifest chính (package.json, pyproject.toml, go.mod...).
|
|
134
|
+
- Trích xuất: ngôn ngữ chính, runtime version, framework, ORM, state library, test runner.
|
|
135
|
+
- Đối chiếu với DEV_PROFILE.md nếu có.
|
|
136
|
+
Outputs: Stack Profile tóm tắt
|
|
496
137
|
```
|
|
497
138
|
|
|
498
|
-
###
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
{
|
|
510
|
-
"entry": "src/modules/auth/auth.service.ts",
|
|
511
|
-
"depth_reached": 3,
|
|
512
|
-
"truncated": false,
|
|
513
|
-
"nodes": [
|
|
514
|
-
{
|
|
515
|
-
"file": "src/modules/auth/auth.service.ts",
|
|
516
|
-
"imports": ["src/common/jwt.util.ts", "src/users/users.repository.ts"],
|
|
517
|
-
"exports": ["AuthService"],
|
|
518
|
-
"risk_level": "high",
|
|
519
|
-
"imported_by_count": 4
|
|
520
|
-
}
|
|
521
|
-
],
|
|
522
|
-
"risks": [
|
|
523
|
-
{
|
|
524
|
-
"file": "src/common/jwt.util.ts",
|
|
525
|
-
"reason": "Imported by 6 modules — changes here have wide blast radius",
|
|
526
|
-
"risk_level": "critical"
|
|
527
|
-
}
|
|
528
|
-
]
|
|
529
|
-
}
|
|
139
|
+
### Step 2 — Khảo sát Cấu trúc Thư mục & Entry Points
|
|
140
|
+
```
|
|
141
|
+
Actions:
|
|
142
|
+
- Chạy `list_dir` hoặc `find_by_name` với MaxDepth=2 trên src/ hoặc app/.
|
|
143
|
+
- Xác định vị trí các tầng:
|
|
144
|
+
- Routes / Controllers / API Handlers
|
|
145
|
+
- Business Logic / Services / Use Cases
|
|
146
|
+
- Data Access / Repositories / Entities / Models
|
|
147
|
+
- Shared / Utils / Components / Middleware
|
|
148
|
+
- Đọc entry point file chính (max 80 dòng đầu).
|
|
149
|
+
Outputs: Sơ đồ phân tầng kiến trúc (Architectural Layers)
|
|
530
150
|
```
|
|
531
151
|
|
|
532
|
-
|
|
152
|
+
### Step 3 — Phân tích Luồng phụ thuộc (Dependency Tracing)
|
|
153
|
+
```
|
|
154
|
+
Actions:
|
|
155
|
+
- Chọn 1 feature tiêu biểu, trace import statements từ UI/Controller xuống DB.
|
|
156
|
+
- Xác định:
|
|
157
|
+
- Có dùng Dependency Injection không?
|
|
158
|
+
- Shared types/DTOs nằm ở đâu?
|
|
159
|
+
- Data fetching pattern: Client-side hook, Server Component, hay REST client?
|
|
160
|
+
Outputs: Dependency Graph (Mermaid flowchart)
|
|
161
|
+
```
|
|
533
162
|
|
|
163
|
+
### Step 4 — Tổng hợp Context Report
|
|
534
164
|
```
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
165
|
+
Actions:
|
|
166
|
+
- Xuất báo cáo ngắn gọn, súc tích (dưới 40 dòng) gồm:
|
|
167
|
+
1. Kiến trúc tổng quan (Pattern & Style).
|
|
168
|
+
2. Quy ước đặt file & Naming conventions.
|
|
169
|
+
3. Đường đi của luồng dữ liệu (Data Flow).
|
|
170
|
+
4. Sơ đồ Mermaid trực quan.
|
|
539
171
|
```
|
|
540
172
|
|
|
541
|
-
|
|
173
|
+
---
|
|
542
174
|
|
|
543
|
-
|
|
544
|
-
```json
|
|
545
|
-
{
|
|
546
|
-
"from": "user or qk-orchestrator",
|
|
547
|
-
"required_fields": ["entry_point"],
|
|
548
|
-
"optional_fields": ["max_depth", "exclude_patterns"]
|
|
549
|
-
}
|
|
550
|
-
```
|
|
175
|
+
## Prompt Template
|
|
551
176
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
"output_fields": ["dependency_graph_json", "risk_summary", "exit_code"]
|
|
557
|
-
}
|
|
177
|
+
```
|
|
178
|
+
Phạm vi: [Toàn bộ dự án / Module X / Tính năng Y]
|
|
179
|
+
Mục tiêu: [Tìm hiểu kiến trúc trước khi thêm feature / refactor / debug]
|
|
180
|
+
Câu hỏi cần: [Data flow đi như thế nào? / Types đặt ở đâu? / Service kết nối DB ra sao?]
|
|
558
181
|
```
|
|
559
182
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
| Code | Meaning | When |
|
|
563
|
-
|------|---------|------|
|
|
564
|
-
| SUCCESS | Full graph built within depth limit | All imports traced |
|
|
565
|
-
| PARTIAL | Graph truncated at token/depth limit | Note where it was cut |
|
|
566
|
-
| BLOCKED | Entry point not found or inaccessible | Ask for correct path |
|
|
567
|
-
| FAILED | Cannot determine architecture (circular imports, obfuscated code) | Report and escalate |
|
|
183
|
+
### Ví dụ theo Role:
|
|
568
184
|
|
|
569
|
-
|
|
185
|
+
**role: fullstack (Khảo sát Next.js 14 Monorepo)**
|
|
186
|
+
```
|
|
187
|
+
Phạm vi: apps/web và packages/api
|
|
188
|
+
Mục tiêu: Nắm rõ cách web gọi API và chia sẻ types giữa FE và BE.
|
|
189
|
+
```
|
|
190
|
+
→ AI trace: `packages/api/src/routers` → xuất `tRPC router` → `apps/web/src/utils/trpc.ts` → import types trong `apps/web/src/app/page.tsx`.
|
|
191
|
+
→ AI vẽ sơ đồ Mermaid luồng type-safe RPC từ client tới DB query.
|
|
570
192
|
|
|
193
|
+
**role: be (Khảo sát Clean Architecture NestJS)**
|
|
194
|
+
```
|
|
195
|
+
Phạm vi: src/modules/orders
|
|
196
|
+
Mục tiêu: Hiểu luồng xử lý Order: DTO -> Controller -> UseCase -> Prisma Repository.
|
|
197
|
+
```
|
|
198
|
+
→ AI liệt kê cấu trúc layers, quy ước DTO validation, và cách inject repository vào service.
|