ai-developer-skill-os 8.3.0 → 9.0.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 +21 -0
- package/.agents/registry/capability-graph.yml +74 -21
- package/.agents/registry/graph.json +138 -255
- package/.agents/registry/index.yaml +70 -96
- package/.agents/registry/skills-index.yml +70 -47
- package/.agents/rules/anti-patterns.md +45 -0
- package/.agents/rules/global.md +13 -0
- package/.agents/skills/_template/SKILL.md +127 -2
- package/.agents/skills/_template/capability.yaml +34 -20
- package/.agents/skills/qk-access-policy/SKILL.md +132 -2
- package/.agents/skills/qk-access-policy/capability.yaml +23 -0
- package/.agents/skills/qk-access-policy/evals/scorecard.yaml +36 -0
- package/.agents/skills/qk-agent-observability/SKILL.md +139 -3
- package/.agents/skills/qk-agent-observability/capability.yaml +29 -0
- package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-ai-builder/SKILL.md +132 -2
- package/.agents/skills/qk-ai-builder/capability.yaml +23 -0
- package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +30 -0
- package/.agents/skills/qk-api-lifecycle/SKILL.md +132 -2
- package/.agents/skills/qk-api-lifecycle/capability.yaml +23 -0
- package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-bug-resolution/SKILL.md +132 -2
- package/.agents/skills/qk-bug-resolution/capability.yaml +25 -0
- package/.agents/skills/qk-bug-resolution/evals/scorecard.yaml +30 -0
- package/.agents/skills/qk-code-review/SKILL.md +132 -2
- package/.agents/skills/qk-code-review/capability.yaml +23 -0
- package/.agents/skills/qk-code-review/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-context-loader/SKILL.md +135 -4
- package/.agents/skills/qk-context-loader/capability.yaml +23 -0
- package/.agents/skills/qk-context-loader/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-data-lifecycle/SKILL.md +132 -2
- package/.agents/skills/qk-data-lifecycle/capability.yaml +23 -0
- package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-db-optimizer/SKILL.md +132 -2
- package/.agents/skills/qk-db-optimizer/capability.yaml +22 -0
- package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-design-system-engineering/SKILL.md +132 -2
- package/.agents/skills/qk-design-system-engineering/capability.yaml +25 -0
- package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-devops-platform/SKILL.md +132 -2
- package/.agents/skills/qk-devops-platform/capability.yaml +29 -0
- package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-docs/SKILL.md +132 -2
- package/.agents/skills/qk-docs/capability.yaml +23 -0
- package/.agents/skills/qk-docs/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-engineering-standard/SKILL.md +132 -2
- package/.agents/skills/qk-engineering-standard/capability.yaml +23 -0
- package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-fe-api-integration/SKILL.md +132 -2
- package/.agents/skills/qk-fe-api-integration/capability.yaml +21 -0
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -0
- package/.agents/skills/qk-feature-delivery/SKILL.md +132 -2
- package/.agents/skills/qk-feature-delivery/capability.yaml +24 -0
- package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-frontend-architecture/SKILL.md +132 -2
- package/.agents/skills/qk-frontend-architecture/capability.yaml +28 -0
- package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-help/SKILL.md +3 -3
- package/.agents/skills/qk-help/capability.yaml +20 -0
- package/.agents/skills/qk-help/evals/scorecard.yaml +13 -0
- package/.agents/skills/qk-orchestrator/SKILL.md +132 -2
- package/.agents/skills/qk-orchestrator/capability.yaml +22 -0
- package/.agents/skills/qk-orchestrator/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-product-specification/SKILL.md +132 -2
- package/.agents/skills/qk-product-specification/capability.yaml +27 -0
- package/.agents/skills/qk-product-specification/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-production-release/SKILL.md +133 -3
- package/.agents/skills/qk-production-release/capability.yaml +27 -0
- package/.agents/skills/qk-production-release/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-project-bootstrap/SKILL.md +147 -4
- package/.agents/skills/qk-project-bootstrap/capability.yaml +23 -0
- package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +28 -0
- package/.agents/skills/qk-project-health/SKILL.md +132 -2
- package/.agents/skills/qk-project-health/capability.yaml +23 -0
- package/.agents/skills/qk-project-health/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-project-memory/SKILL.md +252 -277
- package/.agents/skills/qk-project-memory/capability.yaml +23 -0
- package/.agents/skills/qk-project-memory/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-refactor/SKILL.md +247 -0
- package/.agents/skills/qk-refactor/capability.yaml +26 -0
- package/.agents/skills/qk-refactor/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-security-audit/SKILL.md +132 -2
- package/.agents/skills/qk-security-audit/capability.yaml +30 -0
- package/.agents/skills/qk-security-audit/evals/scorecard.yaml +27 -0
- package/.agents/skills/qk-system-evolution/SKILL.md +132 -2
- package/.agents/skills/qk-system-evolution/capability.yaml +24 -0
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-test-engineering/SKILL.md +132 -2
- package/.agents/skills/qk-test-engineering/capability.yaml +28 -0
- package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-ui-audit/SKILL.md +132 -2
- package/.agents/skills/qk-ui-audit/capability.yaml +23 -0
- package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-ui-builder/capability.yaml +29 -0
- package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-ui-system-builder/SKILL.md +132 -2
- package/.agents/skills/qk-ui-system-builder/capability.yaml +25 -0
- package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-validation-gate/SKILL.md +132 -2
- package/.agents/skills/qk-validation-gate/capability.yaml +23 -0
- package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +26 -0
- package/.agents/skills/qk-web-quality-gate/SKILL.md +132 -2
- package/.agents/skills/qk-web-quality-gate/capability.yaml +24 -0
- package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +26 -0
- package/.agents/workflows/production-release.yml +173 -0
- package/CHANGELOG.md +35 -0
- package/README.md +13 -4
- package/bin/install.js +1 -1
- package/package.json +6 -3
- package/tooling/build-registry.js +186 -186
- package/tooling/fix-refactor.js +8 -0
- package/tooling/sync-versions.js +299 -0
- package/tooling/validate-graph.js +87 -87
- package/tooling/validate-skills.js +1 -1
- package/tooling/generate-registry.js +0 -157
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: qk-system-evolution-eval
|
|
2
|
+
description: Đánh giá độ an toàn của quy trình nâng cấp System & Framework
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 90 # Việc nâng cấp framework mang rủi ro sập hệ thống rất cao
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: rollback_safety
|
|
8
|
+
name: Cơ chế Rollback bắt buộc
|
|
9
|
+
description: Agent có thiết lập và ghi chép lại lệnh rollback trước khi nâng cấp không?
|
|
10
|
+
weight: 40
|
|
11
|
+
criteria:
|
|
12
|
+
- Phải yêu cầu/lưu lại Rollback command (git tag / version trước đó) trước khi sửa code (40đ)
|
|
13
|
+
|
|
14
|
+
- id: changelog_awareness
|
|
15
|
+
name: Phân tích Breaking Changes
|
|
16
|
+
description: Agent có đọc Changelog thay vì nhắm mắt upgrade không?
|
|
17
|
+
weight: 35
|
|
18
|
+
criteria:
|
|
19
|
+
- Quét và liệt kê các Breaking Changes từ Changelog/Migration Guide trước khi chạy (35đ)
|
|
20
|
+
|
|
21
|
+
- id: incremental_upgrade
|
|
22
|
+
name: Nâng cấp gia tăng (Incremental)
|
|
23
|
+
description: Có nâng cấp từng phần và chạy test xác minh thay vì Big-bang không?
|
|
24
|
+
weight: 25
|
|
25
|
+
criteria:
|
|
26
|
+
- Chạy test ngay sau khi nâng cấp 1 package thay vì update hàng loạt (25đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-test-engineering
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: experimental
|
|
6
6
|
description: "Công cụ quyết định chiến lược kiểm thử (Unit, Integration, E2E, Coverage, Regression, Mock)."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
|
-
# ──
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
10
|
type: capability
|
|
11
11
|
|
|
12
12
|
intent:
|
|
@@ -129,6 +129,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
129
129
|
|
|
130
130
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
131
131
|
|
|
132
|
+
## Memory Workflow
|
|
133
|
+
|
|
134
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
135
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
136
|
+
bắt buộc tra cứu:
|
|
137
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
138
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
139
|
+
|
|
140
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
141
|
+
- Architecture
|
|
142
|
+
- Hard Bug
|
|
143
|
+
- Convention
|
|
144
|
+
- Pattern
|
|
145
|
+
- Tech Debt Pattern
|
|
146
|
+
- 👉 *Domain Focus:* Convention / Pattern (vd: chiến lược Test Pyramid, mock provider Vitest/Jest, boundary test).
|
|
147
|
+
|
|
148
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
149
|
+
Không được xem Memory là Source of Truth.
|
|
150
|
+
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.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
155
|
+
- 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:
|
|
156
|
+
- Hard Bug có khả năng tái diễn.
|
|
157
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
158
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
159
|
+
- Quyết định Architecture quan trọng.
|
|
160
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
161
|
+
- 👉 *Domain Harvest:* Pattern viết mock/stub mới hoặc chiến lược fixture dự án.
|
|
162
|
+
|
|
163
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
164
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
165
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
170
|
+
Sau khi hoàn thành task:
|
|
171
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
172
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
173
|
+
- Đề xuất người dùng xem xét.
|
|
174
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
175
|
+
- `/learn`
|
|
176
|
+
- `qk-project-memory`
|
|
177
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
184
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### Ignore (Không đưa vào Memory)
|
|
189
|
+
Không lưu:
|
|
190
|
+
- Trace log của một session đơn lẻ.
|
|
191
|
+
- Temporary debugging data.
|
|
192
|
+
- Output của một lần chạy test/scan.
|
|
193
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
194
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
195
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
196
|
+
- 👉 *Domain Ignore:* File coverage nháp sinh ra trong quá trình chạy test.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### Golden Rule
|
|
201
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
202
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
208
|
+
- 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:
|
|
209
|
+
- Hard Bug có khả năng tái diễn.
|
|
210
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
211
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
212
|
+
- Quyết định Architecture quan trọng.
|
|
213
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
214
|
+
- 👉 *Domain Harvest:* Pattern viết mock/stub mới hoặc chiến lược fixture dự án.
|
|
215
|
+
|
|
216
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
217
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
218
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
223
|
+
Sau khi hoàn thành task:
|
|
224
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
225
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
226
|
+
- Đề xuất người dùng xem xét.
|
|
227
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
228
|
+
- `/learn`
|
|
229
|
+
- `qk-project-memory`
|
|
230
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
237
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
### Ignore (Không đưa vào Memory)
|
|
242
|
+
Không lưu:
|
|
243
|
+
- Trace log của một session đơn lẻ.
|
|
244
|
+
- Temporary debugging data.
|
|
245
|
+
- Output của một lần chạy test/scan.
|
|
246
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
247
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
248
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
249
|
+
- 👉 *Domain Ignore:* File coverage nháp sinh ra trong quá trình chạy test.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### Golden Rule
|
|
254
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
255
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
---
|
|
259
|
+
---
|
|
260
|
+
---
|
|
261
|
+
|
|
132
262
|
## Preconditions
|
|
133
263
|
- [ ] Có code hoặc requirement rõ ràng cần kiểm thử.
|
|
134
264
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-test-engineering"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Công cụ quyết định chiến lược kiểm thử (Unit, Integration, E2E, Coverage, Regression, Mock)."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "qk-test-engineering"
|
|
12
|
+
references:
|
|
13
|
+
- "architecture"
|
|
14
|
+
- "anti-patterns"
|
|
15
|
+
- "playwright"
|
|
16
|
+
- "vitest"
|
|
17
|
+
- "storybook-testing"
|
|
18
|
+
eval:
|
|
19
|
+
scorecard: "evals/scorecard.yaml"
|
|
20
|
+
decision_boundary:
|
|
21
|
+
owns:
|
|
22
|
+
- "test pyramid"
|
|
23
|
+
- "coverage strategy"
|
|
24
|
+
- "regression planning"
|
|
25
|
+
does_not_own:
|
|
26
|
+
- "business logic implementation"
|
|
27
|
+
- "writing tests"
|
|
28
|
+
conflicts_with: []
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: qk-test-engineering-eval
|
|
2
|
+
description: Đánh giá tư duy Chiến lược Kiểm thử (Test Strategy)
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Đảm bảo tư vấn chiến lược rõ ràng và bao quát rủi ro
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: pyramid_strategy
|
|
8
|
+
name: Chiến lược Test Pyramid
|
|
9
|
+
description: Chiến lược có phân bổ hợp lý giữa Unit, Integration và E2E không?
|
|
10
|
+
weight: 35
|
|
11
|
+
criteria:
|
|
12
|
+
- Phân tách rõ ràng loại test nào dùng cho logic nào thay vì bắt viết E2E cho mọi thứ (35đ)
|
|
13
|
+
|
|
14
|
+
- id: boundary_testing_r_sec_04
|
|
15
|
+
name: Negative & Boundary Testing (R-SEC-04)
|
|
16
|
+
description: Có bao phủ các test cases ranh giới để ngăn chặn tấn công/lỗi dữ liệu không?
|
|
17
|
+
weight: 35
|
|
18
|
+
criteria:
|
|
19
|
+
- Bắt buộc đưa ra các test case biên (Boundary) và trường hợp lỗi (Negative tests) (35đ)
|
|
20
|
+
|
|
21
|
+
- id: mocking_strategy
|
|
22
|
+
name: Chiến lược Mock/Stub
|
|
23
|
+
description: Có tư vấn rõ ràng khi nào nên Mock và khi nào dùng Database thật không?
|
|
24
|
+
weight: 30
|
|
25
|
+
criteria:
|
|
26
|
+
- Phân biệt rõ việc Mock API bên thứ ba vs Integration DB nội bộ (30đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-ui-audit
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Kiểm toán giao diện (UI) với 57-check Anti-Slop checklist — fail nếu score < 76/85 base."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
|
-
# ──
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
10
|
type: utility
|
|
11
11
|
|
|
12
12
|
intent:
|
|
@@ -85,6 +85,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
85
85
|
|
|
86
86
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
87
87
|
|
|
88
|
+
## Memory Workflow
|
|
89
|
+
|
|
90
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
91
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
92
|
+
bắt buộc tra cứu:
|
|
93
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
94
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
95
|
+
|
|
96
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
97
|
+
- Architecture
|
|
98
|
+
- Hard Bug
|
|
99
|
+
- Convention
|
|
100
|
+
- Pattern
|
|
101
|
+
- Tech Debt Pattern
|
|
102
|
+
- 👉 *Domain Focus:* Convention / Pattern (vd: 57 check Anti-Slop, độ tương phản A11y, Design Contract).
|
|
103
|
+
|
|
104
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
105
|
+
Không được xem Memory là Source of Truth.
|
|
106
|
+
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.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
111
|
+
- 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:
|
|
112
|
+
- Hard Bug có khả năng tái diễn.
|
|
113
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
114
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
115
|
+
- Quyết định Architecture quan trọng.
|
|
116
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
117
|
+
- 👉 *Domain Harvest:* Các mẫu lỗi AI-Slop phổ biến mới phát hiện trong UI dự án.
|
|
118
|
+
|
|
119
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
120
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
121
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
126
|
+
Sau khi hoàn thành task:
|
|
127
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
128
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
129
|
+
- Đề xuất người dùng xem xét.
|
|
130
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
131
|
+
- `/learn`
|
|
132
|
+
- `qk-project-memory`
|
|
133
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
140
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### Ignore (Không đưa vào Memory)
|
|
145
|
+
Không lưu:
|
|
146
|
+
- Trace log của một session đơn lẻ.
|
|
147
|
+
- Temporary debugging data.
|
|
148
|
+
- Output của một lần chạy test/scan.
|
|
149
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
150
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
151
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
152
|
+
- 👉 *Domain Ignore:* Lỗi lệch vài pixel hoặc sai color shade lẻ tẻ.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### Golden Rule
|
|
157
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
158
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
164
|
+
- 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:
|
|
165
|
+
- Hard Bug có khả năng tái diễn.
|
|
166
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
167
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
168
|
+
- Quyết định Architecture quan trọng.
|
|
169
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
170
|
+
- 👉 *Domain Harvest:* Các mẫu lỗi AI-Slop phổ biến mới phát hiện trong UI dự án.
|
|
171
|
+
|
|
172
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
173
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
174
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
179
|
+
Sau khi hoàn thành task:
|
|
180
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
181
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
182
|
+
- Đề xuất người dùng xem xét.
|
|
183
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
184
|
+
- `/learn`
|
|
185
|
+
- `qk-project-memory`
|
|
186
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
193
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### Ignore (Không đưa vào Memory)
|
|
198
|
+
Không lưu:
|
|
199
|
+
- Trace log của một session đơn lẻ.
|
|
200
|
+
- Temporary debugging data.
|
|
201
|
+
- Output của một lần chạy test/scan.
|
|
202
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
203
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
204
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
205
|
+
- 👉 *Domain Ignore:* Lỗi lệch vài pixel hoặc sai color shade lẻ tẻ.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### Golden Rule
|
|
210
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
211
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
---
|
|
215
|
+
---
|
|
216
|
+
---
|
|
217
|
+
|
|
88
218
|
## Preconditions
|
|
89
219
|
- [ ] `DESIGN.md` exists in project root
|
|
90
220
|
- [ ] Target UI file(s) or component(s) are specified
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-ui-audit"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Kiểm toán giao diện (UI) với 57-check Anti-Slop checklist — fail nếu score < 76/85 base."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "ui-standards"
|
|
12
|
+
- "anti-slop"
|
|
13
|
+
references:
|
|
14
|
+
- "design-system"
|
|
15
|
+
- "security"
|
|
16
|
+
- "anti-patterns"
|
|
17
|
+
eval:
|
|
18
|
+
scorecard: "evals/scorecard.yaml"
|
|
19
|
+
decision_boundary:
|
|
20
|
+
owns:
|
|
21
|
+
- "qk-ui-audit"
|
|
22
|
+
does_not_own: []
|
|
23
|
+
conflicts_with: []
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: qk-ui-audit-eval
|
|
2
|
+
description: Đánh giá khả năng rà soát UI Anti-Slop
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 90 # Đóng vai trò chốt chặn UI chất lượng cao, không khoan nhượng với Slop
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: design_contract_compliance
|
|
8
|
+
name: Tuân thủ Hợp đồng Thiết kế (DESIGN.md)
|
|
9
|
+
description: Có bắt lỗi chính xác các giá trị hardcode không nằm trong Design Tokens không?
|
|
10
|
+
weight: 40
|
|
11
|
+
criteria:
|
|
12
|
+
- Tìm và đánh dấu các mã màu hex, px hardcode vi phạm token của DESIGN.md (40đ)
|
|
13
|
+
|
|
14
|
+
- id: anti_slop_detection
|
|
15
|
+
name: Nhận diện AI-Slop (Generic aesthetics)
|
|
16
|
+
description: Có phát hiện được các thiết kế chung chung, xám xịt, viền nhạt nhòa không?
|
|
17
|
+
weight: 30
|
|
18
|
+
criteria:
|
|
19
|
+
- Trừ điểm nặng các thẻ card thiếu chiều sâu, text quá nhỏ, hoặc thiếu hover state (30đ)
|
|
20
|
+
|
|
21
|
+
- id: accessibility_check
|
|
22
|
+
name: Kiểm tra Trải nghiệm Tiếp cận (A11y)
|
|
23
|
+
description: Có rà soát các thẻ ARIA, độ tương phản và Semantic HTML không?
|
|
24
|
+
weight: 30
|
|
25
|
+
criteria:
|
|
26
|
+
- Cảnh báo các element tương tác (button, link) thiếu roles, alt text hoặc độ tương phản < 4.5:1 (30đ)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
id: "qk-ui-builder"
|
|
3
|
+
version: "9.0.0"
|
|
4
|
+
description: "Xây dựng, sửa, audit, và học UI — từ Figma/ảnh, map API, fix bug UI, đến redesign cấu trúc."
|
|
5
|
+
dependencies:
|
|
6
|
+
- "feature-delivery"
|
|
7
|
+
tools:
|
|
8
|
+
- "filesystem"
|
|
9
|
+
- "terminal"
|
|
10
|
+
knowledge:
|
|
11
|
+
owns:
|
|
12
|
+
- "ui-implementation"
|
|
13
|
+
- "component-patterns"
|
|
14
|
+
- "design-system-integration"
|
|
15
|
+
references:
|
|
16
|
+
- "design-system"
|
|
17
|
+
- "architecture"
|
|
18
|
+
- "accessibility"
|
|
19
|
+
eval:
|
|
20
|
+
scorecard: "evals/scorecard.yaml"
|
|
21
|
+
decision_boundary:
|
|
22
|
+
owns:
|
|
23
|
+
- "ui-component-implementation"
|
|
24
|
+
- "design-token-application"
|
|
25
|
+
does_not_own:
|
|
26
|
+
- "visual-direction"
|
|
27
|
+
- "brand-identity"
|
|
28
|
+
conflicts_with: []
|
|
29
|
+
delegates_to: []
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: qk-ui-builder-eval
|
|
2
|
+
description: Đánh giá việc thiết kế và xây dựng giao diện người dùng (UI)
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Đảm bảo giao diện hiện đại, chuẩn token và thẩm mỹ cao
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: design_token_compliance
|
|
8
|
+
name: Tuân thủ Design Token (DESIGN.md)
|
|
9
|
+
description: Code sinh ra có sử dụng chuẩn token màu sắc và kích thước của hệ thống không?
|
|
10
|
+
weight: 45
|
|
11
|
+
criteria:
|
|
12
|
+
- Tuyệt đối sử dụng các biến CSS từ hợp đồng thiết kế, không dùng màu vô danh giá trị cứng (45đ)
|
|
13
|
+
|
|
14
|
+
- id: modern_rich_aesthetics
|
|
15
|
+
name: Thẩm mỹ hiện đại (Anti-Slop)
|
|
16
|
+
description: Giao diện có sinh động, tinh tế và loại bỏ cảm giác AI sơ sài không?
|
|
17
|
+
weight: 30
|
|
18
|
+
criteria:
|
|
19
|
+
- Sử dụng tráng gương, hover effect và bố cục rõ rệt, không làm giao diện đơn điệu (30đ)
|
|
20
|
+
|
|
21
|
+
- id: component_reusability
|
|
22
|
+
name: Tính tái sử dụng và tinh gọn
|
|
23
|
+
description: Cấu trúc component có gọn gàng và dễ mở rộng trong tương lai không?
|
|
24
|
+
weight: 25
|
|
25
|
+
criteria:
|
|
26
|
+
- Chia nhỏ logic sang custom hooks hoặc sub-components hợp lý (25đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-ui-system-builder
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
|
-
# ──
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
10
|
type: capability
|
|
11
11
|
|
|
12
12
|
intent:
|
|
@@ -97,6 +97,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
100
|
+
## Memory Workflow
|
|
101
|
+
|
|
102
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
103
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
104
|
+
bắt buộc tra cứu:
|
|
105
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
106
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
107
|
+
|
|
108
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
109
|
+
- Architecture
|
|
110
|
+
- Hard Bug
|
|
111
|
+
- Convention
|
|
112
|
+
- Pattern
|
|
113
|
+
- Tech Debt Pattern
|
|
114
|
+
- 👉 *Domain Focus:* Architecture / Convention (vd: ánh xạ 1:1 từ contract DESIGN.md sang biến CSS).
|
|
115
|
+
|
|
116
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
117
|
+
Không được xem Memory là Source of Truth.
|
|
118
|
+
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.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
123
|
+
- 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:
|
|
124
|
+
- Hard Bug có khả năng tái diễn.
|
|
125
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
126
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
127
|
+
- Quyết định Architecture quan trọng.
|
|
128
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
129
|
+
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
130
|
+
|
|
131
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
132
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
133
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
138
|
+
Sau khi hoàn thành task:
|
|
139
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
140
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
141
|
+
- Đề xuất người dùng xem xét.
|
|
142
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
143
|
+
- `/learn`
|
|
144
|
+
- `qk-project-memory`
|
|
145
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
152
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### Ignore (Không đưa vào Memory)
|
|
157
|
+
Không lưu:
|
|
158
|
+
- Trace log của một session đơn lẻ.
|
|
159
|
+
- Temporary debugging data.
|
|
160
|
+
- Output của một lần chạy test/scan.
|
|
161
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
162
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
163
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
164
|
+
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### Golden Rule
|
|
169
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
170
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
176
|
+
- 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:
|
|
177
|
+
- Hard Bug có khả năng tái diễn.
|
|
178
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
179
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
180
|
+
- Quyết định Architecture quan trọng.
|
|
181
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
182
|
+
- 👉 *Domain Harvest:* Chuẩn quy tắc đặt tên (--color-role-shade) hoặc cơ chế scale Dark Mode.
|
|
183
|
+
|
|
184
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
185
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
186
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
191
|
+
Sau khi hoàn thành task:
|
|
192
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
193
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
194
|
+
- Đề xuất người dùng xem xét.
|
|
195
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
196
|
+
- `/learn`
|
|
197
|
+
- `qk-project-memory`
|
|
198
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
205
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### Ignore (Không đưa vào Memory)
|
|
210
|
+
Không lưu:
|
|
211
|
+
- Trace log của một session đơn lẻ.
|
|
212
|
+
- Temporary debugging data.
|
|
213
|
+
- Output của một lần chạy test/scan.
|
|
214
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
215
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
216
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
217
|
+
- 👉 *Domain Ignore:* Giá trị màu thử nghiệm ngoài hợp đồng (bị nghiêm cấm).
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Golden Rule
|
|
222
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
223
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
---
|
|
227
|
+
---
|
|
228
|
+
---
|
|
229
|
+
|
|
100
230
|
## Preconditions
|
|
101
231
|
- [ ] `DESIGN.md` exists with color, spacing, typography tokens
|
|
102
232
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-ui-system-builder"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Xây dựng Design System và token library từ DESIGN.md — không tự đặt ra token ngoài contract."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "design-tokens"
|
|
12
|
+
- "ui-system"
|
|
13
|
+
references:
|
|
14
|
+
- "design-system"
|
|
15
|
+
eval:
|
|
16
|
+
scorecard: "evals/scorecard.yaml"
|
|
17
|
+
decision_boundary:
|
|
18
|
+
owns:
|
|
19
|
+
- "tokens"
|
|
20
|
+
- "ui-system"
|
|
21
|
+
does_not_own:
|
|
22
|
+
- "page implementation"
|
|
23
|
+
- "visual direction"
|
|
24
|
+
conflicts_with:
|
|
25
|
+
- "qk-design-system-engineering"
|