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-ai-builder
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Thiết kế Governed AI Agent & RAG pipelines theo chuẩn V8.2 — Đóng gói bằng capability.yaml, data discipline 4-folder và Eval Pipeline."
|
|
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:
|
|
@@ -87,6 +87,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
87
87
|
|
|
88
88
|
---
|
|
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/Pattern (vd: cấu hình provider LLM, chuẩn RAG pipeline, prompt template).
|
|
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:* Pattern hoặc Convention mới (vd: quy chuẩn JSON schema cho prompt, scorecard định lượng).
|
|
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:* Các thao tác tinh chỉnh từ ngữ prompt tạm thời cho 1 task đơn lẻ.
|
|
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:* Pattern hoặc Convention mới (vd: quy chuẩn JSON schema cho prompt, scorecard định lượng).
|
|
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:* Các thao tác tinh chỉnh từ ngữ prompt tạm thời cho 1 task đơn lẻ.
|
|
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
|
- [ ] AI task is defined: what input → what output
|
|
92
222
|
- [ ] LLM provider is specified (OpenAI, Anthropic, Gemini, local)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-ai-builder"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Thiết kế Governed AI Agent & RAG pipelines theo chuẩn V8.2 — Đóng gói bằng capability.yaml, data discipline 4-folder và Eval Pipeline."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "agent-architecture"
|
|
12
|
+
- "skill-generation"
|
|
13
|
+
references:
|
|
14
|
+
- "architecture"
|
|
15
|
+
- "security"
|
|
16
|
+
- "anti-patterns"
|
|
17
|
+
eval:
|
|
18
|
+
scorecard: "evals/scorecard.yaml"
|
|
19
|
+
decision_boundary:
|
|
20
|
+
owns:
|
|
21
|
+
- "qk-ai-builder"
|
|
22
|
+
does_not_own: []
|
|
23
|
+
conflicts_with: []
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: qk-ai-builder-eval
|
|
2
|
+
description: Đánh giá chất lượng thiết kế Agent & RAG Pipeline
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 90 # Yêu cầu rất cao vì liên quan đến an ninh (injection) và cấu trúc V8
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: prompt_design
|
|
8
|
+
name: Thiết kế System Prompt
|
|
9
|
+
description: Prompt có tuân thủ đúng cấu trúc chuẩn và giới hạn an toàn không?
|
|
10
|
+
weight: 30
|
|
11
|
+
criteria:
|
|
12
|
+
- Có cấu trúc rõ ràng (ROLE, TASK, CONSTRAINTS) (10đ)
|
|
13
|
+
- Có định dạng đầu ra (OUTPUT FORMAT) bằng JSON Schema chuẩn (10đ)
|
|
14
|
+
- Có Examples (few-shot) để hướng dẫn LLM (10đ)
|
|
15
|
+
|
|
16
|
+
- id: security_anti_injection
|
|
17
|
+
name: Bảo mật Anti-Injection (R-SEC-04)
|
|
18
|
+
description: Các biện pháp phòng ngừa Prompt Injection có được áp dụng không?
|
|
19
|
+
weight: 40
|
|
20
|
+
criteria:
|
|
21
|
+
- Input của user được bọc trong thẻ XML `<user_input>...</user_input>` (20đ)
|
|
22
|
+
- Output có chứa trường `confidence` để fallback/human review nếu kết quả có vấn đề (20đ)
|
|
23
|
+
|
|
24
|
+
- id: v8_packaging
|
|
25
|
+
name: Đóng gói chuẩn V8.2
|
|
26
|
+
description: Kiến trúc 4-folder và file định nghĩa có đầy đủ không?
|
|
27
|
+
weight: 30
|
|
28
|
+
criteria:
|
|
29
|
+
- Khởi tạo đúng cấu trúc 4 thư mục: prompts/, data/, agents/, evals/ (15đ)
|
|
30
|
+
- Tự động sinh ra `capability.yaml` và `scorecard.yaml` cho skill mới (15đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-api-lifecycle
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Thiết kế, triển khai API endpoints với Zero-Trust — contract trước, code sau."
|
|
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:
|
|
@@ -86,6 +86,136 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
89
|
+
## Memory Workflow
|
|
90
|
+
|
|
91
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
92
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
93
|
+
bắt buộc tra cứu:
|
|
94
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
95
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
96
|
+
|
|
97
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
98
|
+
- Architecture
|
|
99
|
+
- Hard Bug
|
|
100
|
+
- Convention
|
|
101
|
+
- Pattern
|
|
102
|
+
- Tech Debt Pattern
|
|
103
|
+
- 👉 *Domain Focus:* Convention/Pattern (vd: cấu trúc wrapper { status, data, error }, pagination format).
|
|
104
|
+
|
|
105
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
106
|
+
Không được xem Memory là Source of Truth.
|
|
107
|
+
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.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
112
|
+
- 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:
|
|
113
|
+
- Hard Bug có khả năng tái diễn.
|
|
114
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
115
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
116
|
+
- Quyết định Architecture quan trọng.
|
|
117
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
118
|
+
- 👉 *Domain Harvest:* Pattern hoặc Convention mới của dự án (vd: chuẩn xử lý lỗi API mới, rate limiting).
|
|
119
|
+
|
|
120
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
121
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
122
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
127
|
+
Sau khi hoàn thành task:
|
|
128
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
129
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
130
|
+
- Đề xuất người dùng xem xét.
|
|
131
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
132
|
+
- `/learn`
|
|
133
|
+
- `qk-project-memory`
|
|
134
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
141
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Ignore (Không đưa vào Memory)
|
|
146
|
+
Không lưu:
|
|
147
|
+
- Trace log của một session đơn lẻ.
|
|
148
|
+
- Temporary debugging data.
|
|
149
|
+
- Output của một lần chạy test/scan.
|
|
150
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
151
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
152
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
153
|
+
- 👉 *Domain Ignore:* Thao tác thêm 1 CRUD endpoint thông thường theo Hợp đồng sẵn có.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Golden Rule
|
|
158
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
159
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
165
|
+
- 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:
|
|
166
|
+
- Hard Bug có khả năng tái diễn.
|
|
167
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
168
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
169
|
+
- Quyết định Architecture quan trọng.
|
|
170
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
171
|
+
- 👉 *Domain Harvest:* Pattern hoặc Convention mới của dự án (vd: chuẩn xử lý lỗi API mới, rate limiting).
|
|
172
|
+
|
|
173
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
174
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
175
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
180
|
+
Sau khi hoàn thành task:
|
|
181
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
182
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
183
|
+
- Đề xuất người dùng xem xét.
|
|
184
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
185
|
+
- `/learn`
|
|
186
|
+
- `qk-project-memory`
|
|
187
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
194
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### Ignore (Không đưa vào Memory)
|
|
199
|
+
Không lưu:
|
|
200
|
+
- Trace log của một session đơn lẻ.
|
|
201
|
+
- Temporary debugging data.
|
|
202
|
+
- Output của một lần chạy test/scan.
|
|
203
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
204
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
205
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
206
|
+
- 👉 *Domain Ignore:* Thao tác thêm 1 CRUD endpoint thông thường theo Hợp đồng sẵn có.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### Golden Rule
|
|
211
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
212
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
---
|
|
216
|
+
---
|
|
217
|
+
---
|
|
218
|
+
|
|
89
219
|
## Preconditions
|
|
90
220
|
- [ ] API purpose and resource name are defined
|
|
91
221
|
- [ ] Request/response shape is specified (or sample JSON provided)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-api-lifecycle"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Thiết kế, triển khai API endpoints với Zero-Trust — contract trước, code sau."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "api-contracts"
|
|
12
|
+
- "endpoints"
|
|
13
|
+
references:
|
|
14
|
+
- "architecture"
|
|
15
|
+
- "security"
|
|
16
|
+
- "anti-patterns"
|
|
17
|
+
eval:
|
|
18
|
+
scorecard: "evals/scorecard.yaml"
|
|
19
|
+
decision_boundary:
|
|
20
|
+
owns:
|
|
21
|
+
- "qk-api-lifecycle"
|
|
22
|
+
does_not_own: []
|
|
23
|
+
conflicts_with: []
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: qk-api-lifecycle-eval
|
|
2
|
+
description: Đánh giá chất lượng thiết kế và triển khai API
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 90 # Tiêu chuẩn cao vì liên quan đến hợp đồng dữ liệu và bảo mật cổng vào
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: contract_first_design
|
|
8
|
+
name: Thiết kế theo hợp đồng (Contract-first)
|
|
9
|
+
description: Agent có định nghĩa Types/Interfaces rõ ràng trước khi code logic không?
|
|
10
|
+
weight: 30
|
|
11
|
+
criteria:
|
|
12
|
+
- Định nghĩa rõ ràng Request & Response structure bằng TypeScript interface / DTO (15đ)
|
|
13
|
+
- Khai báo đầy đủ HTTP method, route path và các HTTP status codes có thể trả về (15đ)
|
|
14
|
+
|
|
15
|
+
- id: zero_trust_validation
|
|
16
|
+
name: Tuân thủ Zero-Trust (R-SEC-04)
|
|
17
|
+
description: Mọi API Endpoint có được bảo vệ và validate dữ liệu ở cổng vào không?
|
|
18
|
+
weight: 40
|
|
19
|
+
criteria:
|
|
20
|
+
- Áp dụng thư viện validation (zod/yup/class-validator) cho toàn bộ input payload (20đ)
|
|
21
|
+
- Không rò rỉ dữ liệu nhạy cảm ở response cổng ra (sanitize/mask data) (20đ)
|
|
22
|
+
|
|
23
|
+
- id: error_handling_and_compat
|
|
24
|
+
name: Xử lý lỗi và Tương thích ngược
|
|
25
|
+
description: API có xử lý mượt mà các tình huống lỗi và giữ tính backward compatibility không?
|
|
26
|
+
weight: 30
|
|
27
|
+
criteria:
|
|
28
|
+
- Trả về đúng HTTP status code (400, 401, 403, 404, 422, 500) thay vì trả 500 cho mọi lỗi (15đ)
|
|
29
|
+
- Không làm hỏng (breaking changes) các trường dữ liệu của contract cũ mà không tăng version (15đ)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-bug-resolution
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Sửa lỗi (bugs) bằng chu trình khép kín: Quan sát → Giả thuyết → Bằng chứng → Sửa."
|
|
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:* Hard Bug (vd: lỗi memory leak, race condition, lỗi thư viện tương tự từng gặp).
|
|
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:* Hard Bug mới có khả năng tái diễn (vd: nguyên nhân sâu xa của crash/leak để phòng ngừa).
|
|
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:* Lỗi nhỏ chỉ xảy ra một lần (vd: typo, quên import, thiếu ngoặc đơn giản).
|
|
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:* Hard Bug mới có khả năng tái diễn (vd: nguyên nhân sâu xa của crash/leak để phòng ngừa).
|
|
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:* Lỗi nhỏ chỉ xảy ra một lần (vd: typo, quên import, thiếu ngoặc đơn giản).
|
|
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
|
- [ ] A specific symptom is provided (error message, wrong behavior, crash)
|
|
96
226
|
- [ ] The affected file or feature area is identifiable
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-bug-resolution"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Sửa lỗi (bugs) bằng chu trình khép kín: Quan sát → Giả thuyết → Bằng chứng → Sửa."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "bug-diagnosis"
|
|
12
|
+
- "fix-strategies"
|
|
13
|
+
- "root-cause-analysis"
|
|
14
|
+
references:
|
|
15
|
+
- "testing"
|
|
16
|
+
- "language-specific-features"
|
|
17
|
+
- "security"
|
|
18
|
+
- "anti-patterns"
|
|
19
|
+
eval:
|
|
20
|
+
scorecard: "evals/scorecard.yaml"
|
|
21
|
+
decision_boundary:
|
|
22
|
+
owns:
|
|
23
|
+
- "qk-bug-resolution"
|
|
24
|
+
does_not_own: []
|
|
25
|
+
conflicts_with: []
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: qk-bug-resolution-eval
|
|
2
|
+
description: Đánh giá chất lượng quy trình sửa lỗi (Bug Resolution)
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Quy trình sửa lỗi cần bằng chứng rõ ràng và sửa đúng trọng tâm
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: evidence_based_diagnosis
|
|
8
|
+
name: Chẩn đoán dựa trên bằng chứng
|
|
9
|
+
description: Agent có tìm ra chính xác dòng code gây lỗi trước khi sửa không?
|
|
10
|
+
weight: 40
|
|
11
|
+
criteria:
|
|
12
|
+
- Xác định được chính xác file và dòng gây lỗi (file:line) dựa vào stack trace/log thay vì đoán mò (20đ)
|
|
13
|
+
- Phân tích đúng Root Cause (nguyên nhân gốc rễ) trước khi đưa ra giải pháp (20đ)
|
|
14
|
+
|
|
15
|
+
- id: minimal_targeted_patch
|
|
16
|
+
name: Sửa lỗi tối giản và đúng trọng tâm
|
|
17
|
+
description: Bản vá lỗi có gọn gàng và không ảnh hưởng đến logic khác không?
|
|
18
|
+
weight: 35
|
|
19
|
+
criteria:
|
|
20
|
+
- Sửa trực tiếp vào source code, thay đổi mã nguồn ít nhất có thể (minimal diff) (15đ)
|
|
21
|
+
- Không refactor lan man ra ngoài phạm vi gây lỗi (10đ)
|
|
22
|
+
- Giải quyết triệt để nguyên nhân, không dùng mẹo che giấu lỗi (vd: không lạm dụng `?` hoặc `!` chỉ để ép kiểu) (10đ)
|
|
23
|
+
|
|
24
|
+
- id: verification_and_safety
|
|
25
|
+
name: Kiểm chứng và an toàn
|
|
26
|
+
description: Agent có kiểm tra lại sau khi sửa và tuân thủ ranh giới không?
|
|
27
|
+
weight: 25
|
|
28
|
+
criteria:
|
|
29
|
+
- Re-read (đọc lại) code sau khi sửa để xác nhận logic đã chuẩn xác (Static Verification) (15đ)
|
|
30
|
+
- Không phá vỡ ranh giới bảo mật (Zero-Trust) chỉ để code chạy được (10đ)
|