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
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-feature-delivery
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Phát triển tính năng mới end-to-end: Requirements → Context → Design → Implement → Self-audit."
|
|
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:
|
|
@@ -91,6 +91,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
+
## Memory Workflow
|
|
95
|
+
|
|
96
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
97
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
98
|
+
bắt buộc tra cứu:
|
|
99
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
100
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
101
|
+
|
|
102
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
103
|
+
- Architecture
|
|
104
|
+
- Hard Bug
|
|
105
|
+
- Convention
|
|
106
|
+
- Pattern
|
|
107
|
+
- Tech Debt Pattern
|
|
108
|
+
- 👉 *Domain Focus:* Architecture / Pattern / Convention liên quan đến luồng tính năng hiện tại.
|
|
109
|
+
|
|
110
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
111
|
+
Không được xem Memory là Source of Truth.
|
|
112
|
+
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.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
117
|
+
- 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:
|
|
118
|
+
- Hard Bug có khả năng tái diễn.
|
|
119
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
120
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
121
|
+
- Quyết định Architecture quan trọng.
|
|
122
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
123
|
+
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
124
|
+
|
|
125
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
126
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
127
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
132
|
+
Sau khi hoàn thành task:
|
|
133
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
134
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
135
|
+
- Đề xuất người dùng xem xét.
|
|
136
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
137
|
+
- `/learn`
|
|
138
|
+
- `qk-project-memory`
|
|
139
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
146
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Ignore (Không đưa vào Memory)
|
|
151
|
+
Không lưu:
|
|
152
|
+
- Trace log của một session đơn lẻ.
|
|
153
|
+
- Temporary debugging data.
|
|
154
|
+
- Output của một lần chạy test/scan.
|
|
155
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
156
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
157
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
158
|
+
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### Golden Rule
|
|
163
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
164
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
170
|
+
- 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:
|
|
171
|
+
- Hard Bug có khả năng tái diễn.
|
|
172
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
173
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
174
|
+
- Quyết định Architecture quan trọng.
|
|
175
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
176
|
+
- 👉 *Domain Harvest:* Quyết định Architecture hoặc Pattern mới hình thành khi làm feature.
|
|
177
|
+
|
|
178
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
179
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
180
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
185
|
+
Sau khi hoàn thành task:
|
|
186
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
187
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
188
|
+
- Đề xuất người dùng xem xét.
|
|
189
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
190
|
+
- `/learn`
|
|
191
|
+
- `qk-project-memory`
|
|
192
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
199
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### Ignore (Không đưa vào Memory)
|
|
204
|
+
Không lưu:
|
|
205
|
+
- Trace log của một session đơn lẻ.
|
|
206
|
+
- Temporary debugging data.
|
|
207
|
+
- Output của một lần chạy test/scan.
|
|
208
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
209
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
210
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
211
|
+
- 👉 *Domain Ignore:* Dữ liệu mock phục vụ thử nghiệm tính năng ban đầu.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
### Golden Rule
|
|
216
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
217
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
---
|
|
221
|
+
---
|
|
222
|
+
---
|
|
223
|
+
|
|
94
224
|
## Preconditions
|
|
95
225
|
- [ ] Feature requirement is specific enough to implement (not just "add something")
|
|
96
226
|
- [ ] `DESIGN.md` exists with required tokens if UI work is involved (colors, spacing, typography)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-feature-delivery"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Phát triển tính năng mới end-to-end: Requirements → Context → Design → Implement → Self-audit."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "feature-implementation"
|
|
12
|
+
- "requirement-analysis"
|
|
13
|
+
references:
|
|
14
|
+
- "testing"
|
|
15
|
+
- "security"
|
|
16
|
+
- "anti-patterns"
|
|
17
|
+
- "design-system"
|
|
18
|
+
eval:
|
|
19
|
+
scorecard: "evals/scorecard.yaml"
|
|
20
|
+
decision_boundary:
|
|
21
|
+
owns:
|
|
22
|
+
- "qk-feature-delivery"
|
|
23
|
+
does_not_own: []
|
|
24
|
+
conflicts_with: []
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: qk-feature-delivery-eval
|
|
2
|
+
description: Đánh giá quy trình phát triển tính năng mới (End-to-End)
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Tính năng mới phải đáp ứng các tiêu chuẩn khắt khe trước khi hoàn thành
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: requirement_and_context
|
|
8
|
+
name: Phân tích Yêu cầu và Ngữ cảnh
|
|
9
|
+
description: Agent có đọc kỹ requirements và context graph trước khi code không?
|
|
10
|
+
weight: 30
|
|
11
|
+
criteria:
|
|
12
|
+
- Đọc spec và DESIGN.md (nếu có UI) trước khi bắt đầu (15đ)
|
|
13
|
+
- Kiểm tra dependency graph qua qk-context-loader (15đ)
|
|
14
|
+
|
|
15
|
+
- id: implementation_standards
|
|
16
|
+
name: Tuân thủ Tiêu chuẩn Lập trình (R-C-09 & R-SEC-04)
|
|
17
|
+
description: Code sinh ra có sạch sẽ và an toàn không?
|
|
18
|
+
weight: 40
|
|
19
|
+
criteria:
|
|
20
|
+
- Tuân thủ Zero Slop (hàm < 30 dòng, không có God Files) (20đ)
|
|
21
|
+
- Tuân thủ Zero Trust (validate đầu vào chặt chẽ) (20đ)
|
|
22
|
+
|
|
23
|
+
- id: self_audit_and_testing
|
|
24
|
+
name: Kiểm thử và Tự kiểm toán (Self-Audit)
|
|
25
|
+
description: Agent có tự kiểm tra lại code thông qua Validation Gate không?
|
|
26
|
+
weight: 30
|
|
27
|
+
criteria:
|
|
28
|
+
- Bắt buộc gọi qk-validation-gate hoặc chạy linter/tests trước khi kết thúc (30đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-frontend-architecture
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: experimental
|
|
6
6
|
description: "Công cụ quyết định kiến trúc Frontend (Chiến lược component, quản lý state, định tuyến)."
|
|
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:
|
|
@@ -124,6 +124,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
124
124
|
|
|
125
125
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
126
126
|
|
|
127
|
+
## Memory Workflow
|
|
128
|
+
|
|
129
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
130
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
131
|
+
bắt buộc tra cứu:
|
|
132
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
133
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
134
|
+
|
|
135
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
136
|
+
- Architecture
|
|
137
|
+
- Hard Bug
|
|
138
|
+
- Convention
|
|
139
|
+
- Pattern
|
|
140
|
+
- Tech Debt Pattern
|
|
141
|
+
- 👉 *Domain Focus:* Architecture (vd: quy tắc router TanStack/Next, module routing, state isolation).
|
|
142
|
+
|
|
143
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
144
|
+
Không được xem Memory là Source of Truth.
|
|
145
|
+
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.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
150
|
+
- 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:
|
|
151
|
+
- Hard Bug có khả năng tái diễn.
|
|
152
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
153
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
154
|
+
- Quyết định Architecture quan trọng.
|
|
155
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
156
|
+
- 👉 *Domain Harvest:* Quyết định Architecture trọng yếu (vd: đổi chiến lược routing hoặc state management).
|
|
157
|
+
|
|
158
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
159
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
160
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
165
|
+
Sau khi hoàn thành task:
|
|
166
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
167
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
168
|
+
- Đề xuất người dùng xem xét.
|
|
169
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
170
|
+
- `/learn`
|
|
171
|
+
- `qk-project-memory`
|
|
172
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
179
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Ignore (Không đưa vào Memory)
|
|
184
|
+
Không lưu:
|
|
185
|
+
- Trace log của một session đơn lẻ.
|
|
186
|
+
- Temporary debugging data.
|
|
187
|
+
- Output của một lần chạy test/scan.
|
|
188
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
189
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
190
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
191
|
+
- 👉 *Domain Ignore:* Refactor UI component thông thường.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### Golden Rule
|
|
196
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
197
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
203
|
+
- 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:
|
|
204
|
+
- Hard Bug có khả năng tái diễn.
|
|
205
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
206
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
207
|
+
- Quyết định Architecture quan trọng.
|
|
208
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
209
|
+
- 👉 *Domain Harvest:* Quyết định Architecture trọng yếu (vd: đổi chiến lược routing hoặc state management).
|
|
210
|
+
|
|
211
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
212
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
213
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
218
|
+
Sau khi hoàn thành task:
|
|
219
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
220
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
221
|
+
- Đề xuất người dùng xem xét.
|
|
222
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
223
|
+
- `/learn`
|
|
224
|
+
- `qk-project-memory`
|
|
225
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
232
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### Ignore (Không đưa vào Memory)
|
|
237
|
+
Không lưu:
|
|
238
|
+
- Trace log của một session đơn lẻ.
|
|
239
|
+
- Temporary debugging data.
|
|
240
|
+
- Output của một lần chạy test/scan.
|
|
241
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
242
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
243
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
244
|
+
- 👉 *Domain Ignore:* Refactor UI component thông thường.
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
### Golden Rule
|
|
249
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
250
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
---
|
|
254
|
+
---
|
|
255
|
+
---
|
|
256
|
+
|
|
127
257
|
## Preconditions
|
|
128
258
|
- [ ] Xác định framework (React/Next.js/Vue, v.v.).
|
|
129
259
|
- [ ] Phạm vi hệ thống frontend cần phân tích rõ ràng.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-frontend-architecture"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Công cụ quyết định kiến trúc Frontend (Chiến lược component, quản lý state, định tuyến)."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
knowledge:
|
|
9
|
+
owns:
|
|
10
|
+
- "qk-frontend-architecture"
|
|
11
|
+
references:
|
|
12
|
+
- "architecture"
|
|
13
|
+
- "coding"
|
|
14
|
+
- "anti-patterns"
|
|
15
|
+
eval:
|
|
16
|
+
scorecard: "evals/scorecard.yaml"
|
|
17
|
+
decision_boundary:
|
|
18
|
+
owns:
|
|
19
|
+
- "architecture decisions"
|
|
20
|
+
- "state strategy"
|
|
21
|
+
does_not_own:
|
|
22
|
+
- "component implementation"
|
|
23
|
+
- "pixel styling"
|
|
24
|
+
conflicts_with:
|
|
25
|
+
- "qk-ui-builder"
|
|
26
|
+
delegates_to:
|
|
27
|
+
- "qk-ui-builder"
|
|
28
|
+
- "qk-ui-system-builder"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: qk-frontend-architecture-eval
|
|
2
|
+
description: Đánh giá năng lực thiết kế Kiến trúc Frontend
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Đảm bảo các quyết định kiến trúc đúng đắn và không bị lấn sân
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: tech_stack_selection
|
|
8
|
+
name: Lựa chọn Tech Stack & State Management
|
|
9
|
+
description: Các lựa chọn công nghệ có tuân theo quy chuẩn dự án không?
|
|
10
|
+
weight: 40
|
|
11
|
+
criteria:
|
|
12
|
+
- Ưu tiên TanStack Query cho Server State và Zustand/Context cho Client State (20đ)
|
|
13
|
+
- Lựa chọn đúng cơ chế Routing (Next.js App Router hoặc TanStack Router) (20đ)
|
|
14
|
+
|
|
15
|
+
- id: component_breakdown
|
|
16
|
+
name: Chiến lược phân tách Component
|
|
17
|
+
description: Cấu trúc component có hợp lý và dễ bảo trì không?
|
|
18
|
+
weight: 30
|
|
19
|
+
criteria:
|
|
20
|
+
- Phân chia component rõ ràng (Smart vs Dumb components) (15đ)
|
|
21
|
+
- Ngăn chặn triệt để các Anti-patterns trong luồng dữ liệu (R-C-09) (15đ)
|
|
22
|
+
|
|
23
|
+
- id: boundary_respect
|
|
24
|
+
name: Tôn trọng ranh giới Kiến trúc
|
|
25
|
+
description: Agent có tập trung vào kiến trúc thay vì viết UI trực tiếp không?
|
|
26
|
+
weight: 30
|
|
27
|
+
criteria:
|
|
28
|
+
- Giữ vai trò Kiến trúc sư (Architect), không lấn sân sang việc viết pixel styling hay implement chi tiết UI (nhường cho qk-ui-builder) (30đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-help
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: deprecated
|
|
6
6
|
description: "Hiển thị danh sách skills V8 và hướng dẫn dùng lệnh ./qk-[skill-name]."
|
|
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:
|
|
@@ -29,7 +29,7 @@ triggers:
|
|
|
29
29
|
- "qk-help"
|
|
30
30
|
|
|
31
31
|
# ── V8: References ─────────────────────────────────────────
|
|
32
|
-
workflow:
|
|
32
|
+
workflow: documentation
|
|
33
33
|
|
|
34
34
|
rules:
|
|
35
35
|
- global
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-help"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Hiển thị danh sách skills V8 và hướng dẫn dùng lệnh ./qk-[skill-name]."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "skill-directory"
|
|
12
|
+
references:
|
|
13
|
+
- "registry"
|
|
14
|
+
eval:
|
|
15
|
+
scorecard: "evals/scorecard.yaml"
|
|
16
|
+
decision_boundary:
|
|
17
|
+
owns:
|
|
18
|
+
- "qk-help"
|
|
19
|
+
does_not_own: []
|
|
20
|
+
conflicts_with: []
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name: qk-help-eval
|
|
2
|
+
description: Đánh giá khả năng cung cấp thông tin hướng dẫn
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 100 # Kỹ năng đơn giản, yêu cầu độ chính xác cao khi cung cấp thông tin
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: provide_accurate_info
|
|
8
|
+
name: Cung cấp thông tin chính xác
|
|
9
|
+
description: Agent có in ra đúng các lệnh và kiến trúc V8.3 không?
|
|
10
|
+
weight: 100
|
|
11
|
+
criteria:
|
|
12
|
+
- Hướng dẫn cú pháp ./qk-[skill-name] rõ ràng (50đ)
|
|
13
|
+
- Liệt kê chính xác danh sách các Quality Gates của hệ thống (50đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-orchestrator
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Điều hướng yêu cầu của người dùng đến đúng skill với kỷ luật thép — kiểm tra preconditions và routing table."
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
|
-
# ──
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
10
|
type: orchestrator
|
|
11
11
|
|
|
12
12
|
intent:
|
|
@@ -87,6 +87,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
87
87
|
|
|
88
88
|
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
89
89
|
|
|
90
|
+
## Memory Workflow
|
|
91
|
+
|
|
92
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
93
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
94
|
+
bắt buộc tra cứu:
|
|
95
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
96
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
97
|
+
|
|
98
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
99
|
+
- Architecture
|
|
100
|
+
- Hard Bug
|
|
101
|
+
- Convention
|
|
102
|
+
- Pattern
|
|
103
|
+
- Tech Debt Pattern
|
|
104
|
+
- 👉 *Domain Focus:* Architecture / Convention (vd: bảng điều hướng kỹ năng, ràng buộc ranh giới rõ ràng).
|
|
105
|
+
|
|
106
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
107
|
+
Không được xem Memory là Source of Truth.
|
|
108
|
+
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.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
113
|
+
- 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:
|
|
114
|
+
- Hard Bug có khả năng tái diễn.
|
|
115
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
116
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
117
|
+
- Quyết định Architecture quan trọng.
|
|
118
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
119
|
+
- 👉 *Domain Harvest:* Quy luật phân phối routing hiệu quả mới.
|
|
120
|
+
|
|
121
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
122
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
123
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
128
|
+
Sau khi hoàn thành task:
|
|
129
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
130
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
131
|
+
- Đề xuất người dùng xem xét.
|
|
132
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
133
|
+
- `/learn`
|
|
134
|
+
- `qk-project-memory`
|
|
135
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
142
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### Ignore (Không đưa vào Memory)
|
|
147
|
+
Không lưu:
|
|
148
|
+
- Trace log của một session đơn lẻ.
|
|
149
|
+
- Temporary debugging data.
|
|
150
|
+
- Output của một lần chạy test/scan.
|
|
151
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
152
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
153
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
154
|
+
- 👉 *Domain Ignore:* Trình tự gọi lệnh tạm thời của một prompt user.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Golden Rule
|
|
159
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
160
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
166
|
+
- 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:
|
|
167
|
+
- Hard Bug có khả năng tái diễn.
|
|
168
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
169
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
170
|
+
- Quyết định Architecture quan trọng.
|
|
171
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
172
|
+
- 👉 *Domain Harvest:* Quy luật phân phối routing hiệu quả mới.
|
|
173
|
+
|
|
174
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
175
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
176
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
181
|
+
Sau khi hoàn thành task:
|
|
182
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
183
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
184
|
+
- Đề xuất người dùng xem xét.
|
|
185
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
186
|
+
- `/learn`
|
|
187
|
+
- `qk-project-memory`
|
|
188
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
195
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### Ignore (Không đưa vào Memory)
|
|
200
|
+
Không lưu:
|
|
201
|
+
- Trace log của một session đơn lẻ.
|
|
202
|
+
- Temporary debugging data.
|
|
203
|
+
- Output của một lần chạy test/scan.
|
|
204
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
205
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
206
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
207
|
+
- 👉 *Domain Ignore:* Trình tự gọi lệnh tạm thời của một prompt user.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
### Golden Rule
|
|
212
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
213
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
---
|
|
217
|
+
---
|
|
218
|
+
---
|
|
219
|
+
|
|
90
220
|
## Preconditions
|
|
91
221
|
- [ ] User request is provided (any language)
|
|
92
222
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-orchestrator"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Điều hướng yêu cầu của người dùng đến đúng skill với kỷ luật thép — kiểm tra preconditions và routing table."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
knowledge:
|
|
9
|
+
owns:
|
|
10
|
+
- "task-routing"
|
|
11
|
+
- "skill-selection"
|
|
12
|
+
- "precondition-validation"
|
|
13
|
+
references:
|
|
14
|
+
- "all-skills"
|
|
15
|
+
- "architecture"
|
|
16
|
+
eval:
|
|
17
|
+
scorecard: "evals/scorecard.yaml"
|
|
18
|
+
decision_boundary:
|
|
19
|
+
owns:
|
|
20
|
+
- "qk-orchestrator"
|
|
21
|
+
does_not_own: []
|
|
22
|
+
conflicts_with: []
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: qk-orchestrator-eval
|
|
2
|
+
description: Đánh giá khả năng điều phối và định tuyến tác vụ (Task Routing)
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Đóng vai trò kiểm soát luồng, yêu cầu độ chính xác cao
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: intent_classification
|
|
8
|
+
name: Phân loại Intent chính xác
|
|
9
|
+
description: Agent có hiểu đúng yêu cầu và route đến đúng skill tương ứng không?
|
|
10
|
+
weight: 35
|
|
11
|
+
criteria:
|
|
12
|
+
- Phân tích và map đúng ý định người dùng với Routing Table (20đ)
|
|
13
|
+
- Đặt câu hỏi làm rõ nếu yêu cầu quá mờ nhạt thay vì đoán mò (15đ)
|
|
14
|
+
|
|
15
|
+
- id: precondition_enforcement
|
|
16
|
+
name: Kỷ luật kiểm tra Tiền điều kiện (Preconditions)
|
|
17
|
+
description: Cố tình route tác vụ khi thiếu thông tin hay chặn lại để yêu cầu cung cấp thêm?
|
|
18
|
+
weight: 35
|
|
19
|
+
criteria:
|
|
20
|
+
- Bắt buộc kiểm tra Preconditions của skill đích TRƯỚC KHI thực sự gọi skill đó (35đ)
|
|
21
|
+
|
|
22
|
+
- id: pipeline_execution
|
|
23
|
+
name: Thực thi Pipeline tuần tự
|
|
24
|
+
description: Có đảm bảo tuân thủ chuỗi phụ thuộc (e.g., context-loader -> feature-delivery) không?
|
|
25
|
+
weight: 30
|
|
26
|
+
criteria:
|
|
27
|
+
- Bắt buộc gọi các kỹ năng bổ trợ (như qk-context-loader cho Logic) trước khi bắt đầu công việc chính (30đ)
|