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-ui-system-builder
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.2.0
|
|
5
5
|
status: stable
|
|
6
|
-
description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract."
|
|
6
|
+
description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract. Dùng skill này khi user nhắc đến: design system, token, setup css, ui system, tạo design system, cấu hình token — kể cả khi chỉ nói 'tạo file tailwind tokens từ bảng màu này'."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
9
|
# ── V9: Classification ─────────────────────────────────────
|
|
@@ -21,11 +21,14 @@ complexity:
|
|
|
21
21
|
has_external_dependency: false
|
|
22
22
|
has_breaking_change: false
|
|
23
23
|
|
|
24
|
-
triggers:
|
|
25
|
-
- "
|
|
26
|
-
- "
|
|
27
|
-
- "
|
|
28
|
-
- "
|
|
24
|
+
triggers:
|
|
25
|
+
- "design system"
|
|
26
|
+
- "token"
|
|
27
|
+
- "setup css"
|
|
28
|
+
- "ui system"
|
|
29
|
+
- "tạo design system"
|
|
30
|
+
- "cấu hình token"
|
|
31
|
+
|
|
29
32
|
|
|
30
33
|
# ── V8: References ─────────────────────────────────────────
|
|
31
34
|
workflow: feature-delivery
|
|
@@ -83,547 +86,98 @@ produces: [code, tokens]
|
|
|
83
86
|
consumes: [design-md]
|
|
84
87
|
|
|
85
88
|
token_budget:
|
|
86
|
-
max_files_read:
|
|
87
|
-
max_lines_per_read:
|
|
89
|
+
max_files_read: 3
|
|
90
|
+
max_lines_per_read: 150
|
|
88
91
|
max_shell_commands: 0
|
|
89
92
|
stop_early: true
|
|
90
93
|
|
|
91
|
-
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
94
|
+
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
92
95
|
---
|
|
93
96
|
|
|
94
|
-
# qk-ui-system-builder — Design System Constructor
|
|
97
|
+
# qk-ui-system-builder — Design System & Token Constructor
|
|
95
98
|
|
|
96
99
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
97
100
|
|
|
101
|
+
Chịu trách nhiệm hiện thực hóa hệ thống Design Tokens (màu sắc, typography, spacing, shadows, radius) thành mã nguồn (CSS Variables, Tailwind Config, hoặc TypeScript Tokens) dựa trên tài liệu thiết kế (`DESIGN.md`). **Tuyệt đối không tự ý bịa đặt token ngoài hợp đồng thiết kế.**
|
|
102
|
+
|
|
98
103
|
---
|
|
99
104
|
|
|
100
|
-
## Memory Workflow
|
|
101
|
-
|
|
102
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
103
|
-
- 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:
|
|
104
|
-
- **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.
|
|
105
|
-
- **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.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
110
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
111
|
-
bắt buộc tra cứu:
|
|
112
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
113
|
-
|
|
114
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
115
|
-
- Architecture
|
|
116
|
-
- Hard Bug
|
|
117
|
-
- Convention
|
|
118
|
-
- Pattern
|
|
119
|
-
- Tech Debt Pattern
|
|
120
|
-
- 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
|
|
121
|
-
|
|
122
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
123
|
-
Không được xem Memory là Source of Truth.
|
|
124
|
-
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.
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
129
|
-
- 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:
|
|
130
|
-
- Hard Bug có khả năng tái diễn.
|
|
131
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
132
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
133
|
-
- Quyết định Architecture quan trọng.
|
|
134
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
135
|
-
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
136
|
-
|
|
137
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
138
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
139
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
144
|
-
Sau khi hoàn thành task:
|
|
145
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
146
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
147
|
-
- Đề xuất người dùng xem xét.
|
|
148
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
149
|
-
- `/learn`
|
|
150
|
-
- `qk-project-memory`
|
|
151
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
158
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
### Ignore (Không đưa vào Memory)
|
|
163
|
-
Không lưu:
|
|
164
|
-
- Trace log của một session đơn lẻ.
|
|
165
|
-
- Temporary debugging data.
|
|
166
|
-
- Output của một lần chạy test/scan.
|
|
167
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
168
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
169
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
170
|
-
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
### Golden Rule
|
|
175
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
176
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
183
|
-
- 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:
|
|
184
|
-
- **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.
|
|
185
|
-
- **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.
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
190
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
191
|
-
bắt buộc tra cứu:
|
|
192
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
193
|
-
|
|
194
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
195
|
-
- Architecture
|
|
196
|
-
- Hard Bug
|
|
197
|
-
- Convention
|
|
198
|
-
- Pattern
|
|
199
|
-
- Tech Debt Pattern
|
|
200
|
-
- 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
|
|
201
|
-
|
|
202
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
203
|
-
Không được xem Memory là Source of Truth.
|
|
204
|
-
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.
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
209
|
-
- 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:
|
|
210
|
-
- Hard Bug có khả năng tái diễn.
|
|
211
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
212
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
213
|
-
- Quyết định Architecture quan trọng.
|
|
214
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
215
|
-
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
216
|
-
|
|
217
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
218
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
219
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
224
|
-
Sau khi hoàn thành task:
|
|
225
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
226
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
227
|
-
- Đề xuất người dùng xem xét.
|
|
228
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
229
|
-
- `/learn`
|
|
230
|
-
- `qk-project-memory`
|
|
231
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
232
|
-
|
|
233
|
-
```
|
|
234
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
238
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
### Ignore (Không đưa vào Memory)
|
|
243
|
-
Không lưu:
|
|
244
|
-
- Trace log của một session đơn lẻ.
|
|
245
|
-
- Temporary debugging data.
|
|
246
|
-
- Output của một lần chạy test/scan.
|
|
247
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
248
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
249
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
250
|
-
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
### Golden Rule
|
|
255
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
256
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
263
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
264
|
-
bắt buộc tra cứu:
|
|
265
|
-
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
266
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
267
|
-
|
|
268
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
269
|
-
- Architecture
|
|
270
|
-
- Hard Bug
|
|
271
|
-
- Convention
|
|
272
|
-
- Pattern
|
|
273
|
-
- Tech Debt Pattern
|
|
274
|
-
- 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
|
|
275
|
-
|
|
276
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
277
|
-
Không được xem Memory là Source of Truth.
|
|
278
|
-
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.
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
283
|
-
- 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:
|
|
284
|
-
- Hard Bug có khả năng tái diễn.
|
|
285
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
286
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
287
|
-
- Quyết định Architecture quan trọng.
|
|
288
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
289
|
-
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
290
|
-
|
|
291
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
292
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
293
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
298
|
-
Sau khi hoàn thành task:
|
|
299
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
300
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
301
|
-
- Đề xuất người dùng xem xét.
|
|
302
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
303
|
-
- `/learn`
|
|
304
|
-
- `qk-project-memory`
|
|
305
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
306
|
-
|
|
307
|
-
```
|
|
308
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
312
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
313
|
-
|
|
314
|
-
---
|
|
315
|
-
|
|
316
|
-
### Ignore (Không đưa vào Memory)
|
|
317
|
-
Không lưu:
|
|
318
|
-
- Trace log của một session đơn lẻ.
|
|
319
|
-
- Temporary debugging data.
|
|
320
|
-
- Output của một lần chạy test/scan.
|
|
321
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
322
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
323
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
324
|
-
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
325
|
-
|
|
326
|
-
---
|
|
327
|
-
|
|
328
|
-
### Golden Rule
|
|
329
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
330
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
336
|
-
- 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:
|
|
337
|
-
- Hard Bug có khả năng tái diễn.
|
|
338
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
339
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
340
|
-
- Quyết định Architecture quan trọng.
|
|
341
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
342
|
-
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
343
|
-
|
|
344
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
345
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
346
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
351
|
-
Sau khi hoàn thành task:
|
|
352
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
353
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
354
|
-
- Đề xuất người dùng xem xét.
|
|
355
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
356
|
-
- `/learn`
|
|
357
|
-
- `qk-project-memory`
|
|
358
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
359
|
-
|
|
360
|
-
```
|
|
361
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
365
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
### Ignore (Không đưa vào Memory)
|
|
370
|
-
Không lưu:
|
|
371
|
-
- Trace log của một session đơn lẻ.
|
|
372
|
-
- Temporary debugging data.
|
|
373
|
-
- Output của một lần chạy test/scan.
|
|
374
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
375
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
376
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
377
|
-
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
### Golden Rule
|
|
382
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
383
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
384
|
-
|
|
385
|
-
---
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
389
|
-
- 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:
|
|
390
|
-
- Hard Bug có khả năng tái diễn.
|
|
391
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
392
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
393
|
-
- Quyết định Architecture quan trọng.
|
|
394
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
395
|
-
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
396
|
-
|
|
397
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
398
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
399
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
404
|
-
Sau khi hoàn thành task:
|
|
405
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
406
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
407
|
-
- Đề xuất người dùng xem xét.
|
|
408
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
409
|
-
- `/learn`
|
|
410
|
-
- `qk-project-memory`
|
|
411
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
412
|
-
|
|
413
|
-
```
|
|
414
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
418
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
419
|
-
|
|
420
|
-
---
|
|
421
|
-
|
|
422
|
-
### Ignore (Không đưa vào Memory)
|
|
423
|
-
Không lưu:
|
|
424
|
-
- Trace log của một session đơn lẻ.
|
|
425
|
-
- Temporary debugging data.
|
|
426
|
-
- Output của một lần chạy test/scan.
|
|
427
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
428
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
429
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
430
|
-
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
|
|
434
|
-
### Golden Rule
|
|
435
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
436
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
437
|
-
|
|
438
|
-
---
|
|
439
|
-
---
|
|
440
|
-
---
|
|
441
|
-
---
|
|
442
|
-
|
|
443
105
|
## Preconditions
|
|
444
|
-
- [ ] `DESIGN.md` exists with color, spacing, typography tokens
|
|
445
|
-
|
|
446
|
-
```
|
|
447
|
-
On missing precondition:
|
|
448
|
-
EXIT: BLOCKED
|
|
449
|
-
Message: "DESIGN.md missing. Run qk-project-bootstrap to create one."
|
|
450
|
-
```
|
|
451
106
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
## Scope
|
|
455
|
-
- ✅ Extract tokens from DESIGN.md ONLY — never invent
|
|
456
|
-
- ✅ Generate CSS custom properties (variables) or framework theme
|
|
457
|
-
- ✅ Ensure all components are accessible (A11y)
|
|
107
|
+
Trước khi tạo hoặc sửa đổi file token, AI BẮT BUỘC kiểm tra:
|
|
458
108
|
|
|
459
|
-
|
|
460
|
-
-
|
|
461
|
-
-
|
|
462
|
-
-
|
|
109
|
+
- [ ] Tìm và đọc file đặc tả thiết kế (`DESIGN.md` hoặc styleguide document).
|
|
110
|
+
- [ ] Xác định CSS framework đang sử dụng từ `.agents/DEV_PROFILE.md` (Tailwind CSS, CSS Modules, Styled Components, Vanilla CSS).
|
|
111
|
+
- [ ] Kiểm tra xem đã có hệ thống tokens cũ chưa (tránh ghi đè làm vỡ giao diện đang chạy).
|
|
112
|
+
- [ ] Nếu không có `DESIGN.md` và user không cung cấp giá trị màu sắc/kích thước cụ thể:
|
|
113
|
+
→ **EXIT: BLOCKED**
|
|
114
|
+
→ Báo cáo user yêu cầu cung cấp bảng màu (Palette) hoặc file quy chuẩn thiết kế trước.
|
|
463
115
|
|
|
464
116
|
---
|
|
465
117
|
|
|
466
|
-
##
|
|
467
|
-
|
|
468
|
-
```css
|
|
469
|
-
/* Colors — HSL always */
|
|
470
|
-
--color-[role]-[shade]: hsl(H, S%, L%);
|
|
471
|
-
/* Example: */
|
|
472
|
-
--color-primary-500: hsl(220, 80%, 55%);
|
|
473
|
-
--color-surface-100: hsl(220, 15%, 98%);
|
|
474
|
-
|
|
475
|
-
/* Spacing — scale-based */
|
|
476
|
-
--space-[n]: [n * base]px;
|
|
477
|
-
/* Example: */
|
|
478
|
-
--space-1: 4px; --space-2: 8px; --space-4: 16px;
|
|
479
|
-
|
|
480
|
-
/* Typography */
|
|
481
|
-
--font-[family]: '[Name]', fallback;
|
|
482
|
-
--font-size-[scale]: [value]rem;
|
|
483
|
-
--font-weight-[name]: [value];
|
|
484
|
-
|
|
485
|
-
/* Border Radius */
|
|
486
|
-
--radius-[size]: [value]px;
|
|
487
|
-
|
|
488
|
-
/* Shadows */
|
|
489
|
-
--shadow-[level]: [value];
|
|
490
|
-
|
|
491
|
-
/* Animation */
|
|
492
|
-
--duration-[speed]: [value]ms;
|
|
493
|
-
--ease-[type]: [cubic-bezier or keyword];
|
|
494
|
-
|
|
495
|
-
/* Z-index */
|
|
496
|
-
--z-[layer]: [value]; /* dropdown=100, modal=200, toast=300 */
|
|
497
|
-
```
|
|
118
|
+
## Scope
|
|
498
119
|
|
|
499
|
-
|
|
120
|
+
✅ Skill này làm:
|
|
121
|
+
- Chuyển đổi mã màu Hex/HSL thành semantic CSS custom properties (`--color-primary`, `--color-surface-base`).
|
|
122
|
+
- Cấu hình file `tailwind.config.js` / `tailwind.config.ts` khớp chính xác với Design Tokens.
|
|
123
|
+
- Khai báo token cho Spacing (bội số của 4px/8px), Font sizes, Border Radius, Shadows, Transitions.
|
|
124
|
+
- Tạo theme hỗ trợ Light/Dark mode qua CSS variables.
|
|
125
|
+
- Xuất type definition TypeScript cho autocomplete token trong code.
|
|
500
126
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
--color-text: hsl(220, 15%, 10%);
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
[data-theme="dark"] {
|
|
509
|
-
--color-background: hsl(220, 15%, 10%);
|
|
510
|
-
--color-text: hsl(220, 10%, 90%);
|
|
511
|
-
}
|
|
512
|
-
```
|
|
127
|
+
❌ Skill này KHÔNG làm:
|
|
128
|
+
- Dựng các màn hình hay component hoàn chỉnh (→ `qk-ui-builder`).
|
|
129
|
+
- Định nghĩa chiến lược quy chuẩn thiết kế cấp cao (→ `qk-design-system-engineering`).
|
|
130
|
+
- Sửa đổi business logic backend.
|
|
513
131
|
|
|
514
132
|
---
|
|
515
133
|
|
|
516
|
-
##
|
|
517
|
-
|
|
518
|
-
### Phase 1 — Extract from DESIGN.md
|
|
519
|
-
1. Read DESIGN.md → list all defined tokens
|
|
520
|
-
2. Categorize: Colors / Spacing / Typography / Radius / Shadow / Animation
|
|
521
|
-
|
|
522
|
-
### Phase 2 — Generate Token File
|
|
523
|
-
1. Create `src/styles/tokens.css` (or equivalent)
|
|
524
|
-
2. Apply naming convention above
|
|
525
|
-
3. Add dark mode variants if DESIGN.md specifies
|
|
134
|
+
## Execution Steps
|
|
526
135
|
|
|
527
|
-
###
|
|
528
|
-
1. Cross-check: every generated token has source in DESIGN.md
|
|
529
|
-
2. Flag any token that was "inferred" vs explicitly defined
|
|
530
|
-
|
|
531
|
-
**Decision:**
|
|
136
|
+
### Step 1 — Parse Design Specs & Contracts
|
|
532
137
|
```
|
|
533
|
-
|
|
534
|
-
|
|
138
|
+
Inputs: DESIGN.md, Bảng màu từ user
|
|
139
|
+
Actions:
|
|
140
|
+
- Trích xuất: Primitive tokens (Brand colors, Neutrals, Font families).
|
|
141
|
+
- Trích xuất: Semantic tokens (Background, Foreground, Border, Primary, Destructive).
|
|
142
|
+
- Phân loại thang đo Spacing, Radius và Elevation (box-shadow).
|
|
143
|
+
Output: Structured Token Contract
|
|
535
144
|
```
|
|
536
145
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
---
|
|
540
|
-
|
|
541
|
-
## Priority Order
|
|
542
|
-
|
|
543
|
-
---
|
|
544
|
-
|
|
545
|
-
## Output Format
|
|
546
|
-
|
|
547
|
-
---
|
|
548
|
-
## Exit Codes
|
|
549
|
-
| Code | Meaning | When |
|
|
550
|
-
|------|---------|------|
|
|
551
|
-
| SUCCESS | All tokens extracted from DESIGN.md, naming convention applied | All generated |
|
|
552
|
-
| PARTIAL | Some tokens inferred (not explicitly in DESIGN.md) | Inferred values used |
|
|
553
|
-
| BLOCKED | DESIGN.md missing or has no tokens | Cannot start |
|
|
554
|
-
| FAILED | Token conflicts detected (duplicate values, naming collision) | Conflict |
|
|
555
|
-
|
|
556
|
-
---
|
|
557
|
-
|
|
558
|
-
## Confidence Model
|
|
559
|
-
| Level | Condition | Action |
|
|
560
|
-
|-------|-----------|--------|
|
|
561
|
-
| HIGH | Token explicitly exists in DESIGN.md | Extract and map |
|
|
562
|
-
| MEDIUM | Token value inferred or estimated based on related tokens | Note assumption |
|
|
563
|
-
| LOW | Core scale missing entirely (e.g. no spacing definition) | EXIT: BLOCKED |
|
|
564
|
-
|
|
565
|
-
---
|
|
566
|
-
|
|
567
|
-
## Severity
|
|
568
|
-
| Level | Definition | Example |
|
|
569
|
-
|-------|-----------|---------|
|
|
570
|
-
| CRITICAL | Hardcoded values injected without being tokens | Missing the point of the system |
|
|
571
|
-
| HIGH | Token naming convention violated | `primary-color` instead of `--color-primary` |
|
|
572
|
-
| MEDIUM | Dark mode not supported | Hardcoded white background |
|
|
573
|
-
| LOW | Unused token generated | Extraneous variables |
|
|
574
|
-
|
|
575
|
-
---
|
|
576
|
-
|
|
577
|
-
## Evidence Format
|
|
146
|
+
### Step 2 — CSS Variable & Theme Definition
|
|
578
147
|
```
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
148
|
+
Inputs: Structured Token Contract
|
|
149
|
+
Actions:
|
|
150
|
+
- Khởi tạo `:root` chứa biến màu Light mode.
|
|
151
|
+
- Khởi tạo `.dark` hoặc `[data-theme="dark"]` chứa biến màu Dark mode tương ứng.
|
|
152
|
+
- Bảo đảm tỉ lệ tương phản đạt chuẩn WCAG AA giữa Foreground và Background.
|
|
153
|
+
Output: globals.css / theme.css
|
|
583
154
|
```
|
|
584
155
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
## Retry Policy
|
|
156
|
+
### Step 3 — Framework Config Integration
|
|
588
157
|
```
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
158
|
+
Inputs: globals.css, Tailwind config (hoặc tương đương)
|
|
159
|
+
Actions:
|
|
160
|
+
- Mở rộng (extend) theme của Tailwind: colors, spacing, borderRadius, fontSize.
|
|
161
|
+
- Ánh xạ trực tiếp sang `var(--...)` để tận dụng tính năng theme switching động.
|
|
162
|
+
Output: tailwind.config.ts / tokens.ts
|
|
594
163
|
```
|
|
595
164
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
## Escalation Rules
|
|
165
|
+
### Step 4 — Verification & Type Generation
|
|
599
166
|
```
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
Recommended Assumptions:
|
|
606
|
-
- Generate default Tailwind-like scale if requested
|
|
167
|
+
Inputs: Generated config files
|
|
168
|
+
Actions:
|
|
169
|
+
- Kiểm tra cú pháp config file.
|
|
170
|
+
- Đảm bảo token types được export rõ ràng cho IDE autocomplete.
|
|
171
|
+
Exit: SUCCESS
|
|
607
172
|
```
|
|
608
173
|
|
|
609
174
|
---
|
|
610
175
|
|
|
611
|
-
##
|
|
612
|
-
|
|
613
|
-
```json
|
|
614
|
-
{
|
|
615
|
-
"from": "user or project-bootstrap",
|
|
616
|
-
"required_fields": ["design_md_path"],
|
|
617
|
-
"optional_fields": ["css_framework", "output_format"]
|
|
618
|
-
}
|
|
176
|
+
## Prompt Template
|
|
177
|
+
|
|
619
178
|
```
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
"output_fields": ["token_file_path", "inferred_tokens", "exit_code"]
|
|
625
|
-
}
|
|
179
|
+
Tài liệu thiết kế: [Đường dẫn DESIGN.md hoặc paste bảng màu]
|
|
180
|
+
Framework CSS: [Tailwind CSS / CSS Modules / Vanilla CSS]
|
|
181
|
+
Dark Mode: [Có hỗ trợ không — class / data-theme / media query]
|
|
182
|
+
Yêu cầu riêng: [Cần bổ sung font chữ mới, radius đặc biệt, ...]
|
|
626
183
|
```
|
|
627
|
-
|
|
628
|
-
---
|
|
629
|
-
|