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-[skill-name]
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "[Một câu — skill này làm gì và dành cho ai]"
|
|
7
7
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
8
|
|
|
9
|
-
# ──
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
10
|
type: capability # capability | utility | orchestrator
|
|
11
11
|
|
|
12
12
|
intent:
|
|
@@ -89,6 +89,131 @@ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
92
|
+
## Memory Workflow
|
|
93
|
+
|
|
94
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
95
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
96
|
+
bắt buộc tra cứu:
|
|
97
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
98
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
99
|
+
|
|
100
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
101
|
+
- Architecture
|
|
102
|
+
- Hard Bug
|
|
103
|
+
- Convention
|
|
104
|
+
- Pattern
|
|
105
|
+
- Tech Debt Pattern
|
|
106
|
+
|
|
107
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
108
|
+
Không được xem Memory là Source of Truth.
|
|
109
|
+
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.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
114
|
+
- 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:
|
|
115
|
+
- Hard Bug có khả năng tái diễn.
|
|
116
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
117
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
118
|
+
- Quyết định Architecture quan trọng.
|
|
119
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thố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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### Golden Rule
|
|
209
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
210
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
---
|
|
214
|
+
---
|
|
215
|
+
---
|
|
216
|
+
|
|
92
217
|
## Preconditions
|
|
93
218
|
|
|
94
219
|
- [ ] [Required condition 1]
|
|
@@ -1,20 +1,34 @@
|
|
|
1
|
-
# capability.yaml — Machine-readable Capability Manifest
|
|
2
|
-
# Schema Version 1 — EDAOS v8.2 Governed Capability Platform
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
# capability.yaml — Machine-readable Capability Manifest
|
|
2
|
+
# Schema Version 1 — EDAOS v8.2 Governed Capability Platform
|
|
3
|
+
#
|
|
4
|
+
# This template defines the canonical structure for all skill capability manifests.
|
|
5
|
+
# Every skill MUST have a capability.yaml matching this schema.
|
|
6
|
+
# Auto-generated by tooling/build-registry.js — do not edit manually.
|
|
7
|
+
|
|
8
|
+
schema_version: 1
|
|
9
|
+
|
|
10
|
+
id: qk-template-capability
|
|
11
|
+
version: "9.0.0"
|
|
12
|
+
description: "Brief 1-line objective description of this capability for sub-second registry indexing."
|
|
13
|
+
|
|
14
|
+
dependencies: []
|
|
15
|
+
tools:
|
|
16
|
+
- filesystem
|
|
17
|
+
- terminal
|
|
18
|
+
|
|
19
|
+
knowledge:
|
|
20
|
+
owns:
|
|
21
|
+
- "domain-name"
|
|
22
|
+
references:
|
|
23
|
+
- "architecture"
|
|
24
|
+
- "coding-standards"
|
|
25
|
+
|
|
26
|
+
eval:
|
|
27
|
+
scorecard: "evals/scorecard.yaml"
|
|
28
|
+
|
|
29
|
+
decision_boundary:
|
|
30
|
+
owns:
|
|
31
|
+
- "domain-name"
|
|
32
|
+
does_not_own: []
|
|
33
|
+
conflicts_with: []
|
|
34
|
+
delegates_to: []
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
# ── Identity ───────────────────────────────────────────────
|
|
3
3
|
name: qk-access-policy
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
status: stable
|
|
6
6
|
description: "Quản lý RBAC, ABAC — định nghĩa role matrix trước, implement middleware 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:* Architecture/Pattern (vd: ma trận quyền authz, middleware rbac).
|
|
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:* Quyết định Architecture hoặc Pattern bảo mật (vd: guard mới, chính sách Zero-Trust).
|
|
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 route/role thông thường vào bảng quyề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:* Quyết định Architecture hoặc Pattern bảo mật (vd: guard mới, chính sách Zero-Trust).
|
|
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 route/role thông thường vào bảng quyề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
|
- [ ] User roles and protected resources are defined
|
|
91
221
|
- [ ] Auth system (JWT, session, OAuth) is identified
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-access-policy"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Quản lý RBAC, ABAC — định nghĩa role matrix trước, implement middleware sau."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
- "terminal"
|
|
9
|
+
knowledge:
|
|
10
|
+
owns:
|
|
11
|
+
- "security-policy"
|
|
12
|
+
- "role-matrix"
|
|
13
|
+
references:
|
|
14
|
+
- "architecture"
|
|
15
|
+
- "security"
|
|
16
|
+
- "anti-patterns"
|
|
17
|
+
eval:
|
|
18
|
+
scorecard: "evals/scorecard.yaml"
|
|
19
|
+
decision_boundary:
|
|
20
|
+
owns:
|
|
21
|
+
- "qk-access-policy"
|
|
22
|
+
does_not_own: []
|
|
23
|
+
conflicts_with: []
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: qk-access-policy-eval
|
|
2
|
+
description: Đánh giá chất lượng thực thi của kỹ năng qk-access-policy
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 100 # Cần đạt điểm tuyệt đối với Access Policy vì tính chất bảo mật
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: matrix_defined
|
|
8
|
+
name: Định nghĩa Role-Permission Matrix
|
|
9
|
+
description: Agent có tạo bảng phân quyền rõ ràng trước khi code không?
|
|
10
|
+
weight: 30
|
|
11
|
+
criteria:
|
|
12
|
+
- Bảng ma trận đầy đủ resource và roles (15đ)
|
|
13
|
+
- Không có xung đột (contradiction) trong ma trận (15đ)
|
|
14
|
+
|
|
15
|
+
- id: middleware_implemented
|
|
16
|
+
name: Cài đặt Middleware/Guard
|
|
17
|
+
description: Agent có tạo middleware/guard để kiểm tra quyền ở phía Backend không?
|
|
18
|
+
weight: 30
|
|
19
|
+
criteria:
|
|
20
|
+
- Áp dụng đúng R-SEC-04, phân quyền bằng middleware, không tin tưởng JWT Claims thô (15đ)
|
|
21
|
+
- Routes được gắn guard theo đúng Role-Permission Matrix (15đ)
|
|
22
|
+
|
|
23
|
+
- id: deny_by_default
|
|
24
|
+
name: Áp dụng Deny-by-default
|
|
25
|
+
description: Các endpoint không được khai báo có bị chặn mặc định không?
|
|
26
|
+
weight: 20
|
|
27
|
+
criteria:
|
|
28
|
+
- Implement cơ chế deny-by-default cho các non-public routes (20đ)
|
|
29
|
+
|
|
30
|
+
- id: no_anti_patterns
|
|
31
|
+
name: Không vi phạm Anti-patterns
|
|
32
|
+
description: Không cấp quyền wildcard và không hardcode role trong business logic
|
|
33
|
+
weight: 20
|
|
34
|
+
criteria:
|
|
35
|
+
- Không có quyền wildcard (*) được cấp (10đ)
|
|
36
|
+
- Không có câu lệnh kiểm tra role (vd: if role === 'admin') nằm rải rác trong Service/Business layer (10đ)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qk-agent-observability
|
|
3
|
-
version:
|
|
3
|
+
version: 9.0.0
|
|
4
4
|
status: experimental
|
|
5
5
|
description: "Lớp theo dõi (Observability) cho phép giám sát quyết định, luân chuyển và các mô hình lỗi."
|
|
6
6
|
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
@@ -45,7 +45,7 @@ knowledge_scope:
|
|
|
45
45
|
- evaluation-metrics
|
|
46
46
|
references:
|
|
47
47
|
- architecture
|
|
48
|
-
- scorecard # bổ sung: file scorecard.yaml giờ nằm trong
|
|
48
|
+
- scorecard # bổ sung: file scorecard.yaml giờ nằm trong evals/ của skill này
|
|
49
49
|
|
|
50
50
|
decision_boundary:
|
|
51
51
|
owns:
|
|
@@ -109,6 +109,136 @@ This skill enables tracking and observing the AI agent's own behavior, decisions
|
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
112
|
+
## Memory Workflow
|
|
113
|
+
|
|
114
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
115
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
116
|
+
bắt buộc tra cứu:
|
|
117
|
+
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
118
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
119
|
+
|
|
120
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
121
|
+
- Architecture
|
|
122
|
+
- Hard Bug
|
|
123
|
+
- Convention
|
|
124
|
+
- Pattern
|
|
125
|
+
- Tech Debt Pattern
|
|
126
|
+
- 👉 *Domain Focus:* Hard Bug / Convention (vd: mô hình lỗi lặp vô tận, giới hạn token budget).
|
|
127
|
+
|
|
128
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
129
|
+
Không được xem Memory là Source of Truth.
|
|
130
|
+
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.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
135
|
+
- 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:
|
|
136
|
+
- Hard Bug có khả năng tái diễn.
|
|
137
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
138
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
139
|
+
- Quyết định Architecture quan trọng.
|
|
140
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
141
|
+
- 👉 *Domain Harvest:* Hard Bug mới có khả năng tái diễn (vd: lỗi loop định tuyến cần blacklist).
|
|
142
|
+
|
|
143
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
144
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
145
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
150
|
+
Sau khi hoàn thành task:
|
|
151
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
152
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
153
|
+
- Đề xuất người dùng xem xét.
|
|
154
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
155
|
+
- `/learn`
|
|
156
|
+
- `qk-project-memory`
|
|
157
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
164
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### Ignore (Không đưa vào Memory)
|
|
169
|
+
Không lưu:
|
|
170
|
+
- Trace log của một session đơn lẻ.
|
|
171
|
+
- Temporary debugging data.
|
|
172
|
+
- Output của một lần chạy test/scan.
|
|
173
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
174
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
175
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
176
|
+
- 👉 *Domain Ignore:* Trace log của một session đơn lẻ (tự XÓA sau khi thực thi).
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### Golden Rule
|
|
181
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
182
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
188
|
+
- 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:
|
|
189
|
+
- Hard Bug có khả năng tái diễn.
|
|
190
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
191
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
192
|
+
- Quyết định Architecture quan trọng.
|
|
193
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
194
|
+
- 👉 *Domain Harvest:* Hard Bug mới có khả năng tái diễn (vd: lỗi loop định tuyến cần blacklist).
|
|
195
|
+
|
|
196
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
197
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
198
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
203
|
+
Sau khi hoàn thành task:
|
|
204
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
205
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
206
|
+
- Đề xuất người dùng xem xét.
|
|
207
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
208
|
+
- `/learn`
|
|
209
|
+
- `qk-project-memory`
|
|
210
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
217
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Ignore (Không đưa vào Memory)
|
|
222
|
+
Không lưu:
|
|
223
|
+
- Trace log của một session đơn lẻ.
|
|
224
|
+
- Temporary debugging data.
|
|
225
|
+
- Output của một lần chạy test/scan.
|
|
226
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
227
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
228
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
229
|
+
- 👉 *Domain Ignore:* Trace log của một session đơn lẻ (tự XÓA sau khi thực thi).
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### Golden Rule
|
|
234
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
235
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
---
|
|
239
|
+
---
|
|
240
|
+
---
|
|
241
|
+
|
|
112
242
|
## Scope
|
|
113
243
|
- ✅ Monitor agent decision boundaries and token budgets during execution
|
|
114
244
|
- ✅ Record execution traces and accuracy metrics into `evals/traces/` for quantitative verification
|
|
@@ -121,10 +251,16 @@ This skill enables tracking and observing the AI agent's own behavior, decisions
|
|
|
121
251
|
|
|
122
252
|
---
|
|
123
253
|
|
|
254
|
+
## 🧭 V1 Knowledge Protocol (AI Skin V9)
|
|
255
|
+
- **Pre-flight Check:** BẮT BUỘC tra cứu `.ai-local/knowledge/index.yaml` hoặc `.agents/knowledge/index.yaml` (nếu tồn tại) trước khi tiến hành tìm kiếm mù toàn dự án. Nếu có pattern/fact liên quan (`status: Active`), áp dụng ngay để bỏ qua bước search dài dòng.
|
|
256
|
+
- **Post-flight Harvest (AI Đề xuất -> Con người Phê duyệt):** Sau khi hoàn thành task, nếu phát hiện tri thức thuộc 4 loại (`Architecture`, `Convention`, `Pattern`, `Hard Bug`) có giá trị giảm thời gian cho tương lai, hãy tóm tắt đề xuất và yêu cầu Người dùng xác nhận trước khi lưu lại. Bỏ qua các thay đổi lặt vặt (typo, CSS, CRUD thường).
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
124
260
|
## Preconditions
|
|
125
261
|
|
|
126
262
|
- [ ] Task vừa hoàn tất (bất kỳ `exit_code` nào — kể cả `FAILED`/`BLOCKED` cũng phải ghi trace, vì thất bại cũng là dữ liệu quan sát quan trọng).
|
|
127
|
-
- [ ] `
|
|
263
|
+
- [ ] `evals/scorecard.yaml` tồn tại và định nghĩa được metric cần ghi nhận.
|
|
128
264
|
|
|
129
265
|
```
|
|
130
266
|
On missing scorecard.yaml:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Auto-generated from SKILL.md frontmatter
|
|
2
|
+
schema_version: 1
|
|
3
|
+
id: "qk-agent-observability"
|
|
4
|
+
version: "9.0.0"
|
|
5
|
+
description: "Lớp theo dõi (Observability) cho phép giám sát quyết định, luân chuyển và các mô hình lỗi."
|
|
6
|
+
tools:
|
|
7
|
+
- "filesystem"
|
|
8
|
+
knowledge:
|
|
9
|
+
owns:
|
|
10
|
+
- "qk-agent-observability"
|
|
11
|
+
references:
|
|
12
|
+
- "architecture"
|
|
13
|
+
- "scorecard"
|
|
14
|
+
eval:
|
|
15
|
+
scorecard: "evals/scorecard.yaml"
|
|
16
|
+
decision_boundary:
|
|
17
|
+
owns:
|
|
18
|
+
- "agent_decision_trace"
|
|
19
|
+
- "routing_accuracy_metrics"
|
|
20
|
+
- "skill_success_rate"
|
|
21
|
+
- "failure_pattern_detection"
|
|
22
|
+
- "feedback_loop"
|
|
23
|
+
does_not_own:
|
|
24
|
+
- "application_monitoring"
|
|
25
|
+
- "infrastructure_monitoring"
|
|
26
|
+
- "log_aggregation"
|
|
27
|
+
- "uptime_monitoring"
|
|
28
|
+
- "pass_fail_enforcement"
|
|
29
|
+
conflicts_with: []
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: qk-agent-observability-eval
|
|
2
|
+
description: Đánh giá khả năng thu thập dữ liệu (trace) và phát hiện lỗi của agent
|
|
3
|
+
version: 9.0.0
|
|
4
|
+
threshold: 85 # Không yêu cầu tuyệt đối, nhưng cần đảm bảo observability hoạt động tốt
|
|
5
|
+
|
|
6
|
+
metrics:
|
|
7
|
+
- id: write_trace_file
|
|
8
|
+
name: Ghi file trace JSON hợp lệ
|
|
9
|
+
description: Agent có tạo file JSON đúng chuẩn vào thư mục evals/traces/ không?
|
|
10
|
+
weight: 40
|
|
11
|
+
criteria:
|
|
12
|
+
- File trace được tạo trong evals/traces/ với định dạng {yyyy-mm-dd}_{task-slug}.json (20đ)
|
|
13
|
+
- File JSON có cấu trúc chuẩn, final_score = null (20đ)
|
|
14
|
+
|
|
15
|
+
- id: collect_signals
|
|
16
|
+
name: Thu thập đầy đủ tín hiệu (Signals)
|
|
17
|
+
description: File trace có chứa đầy đủ các thông tin cần thiết không?
|
|
18
|
+
weight: 40
|
|
19
|
+
criteria:
|
|
20
|
+
- Có đủ thông tin Routing (skill_used, clarification, switched) (15đ)
|
|
21
|
+
- Có đủ thông tin Boundary & Token Budget (15đ)
|
|
22
|
+
- Có đủ thông tin Zero-trust và Exit Code thực tế (10đ)
|
|
23
|
+
|
|
24
|
+
- id: detect_failure_patterns
|
|
25
|
+
name: Phát hiện pattern lỗi lặp lại
|
|
26
|
+
description: Agent có khả năng cảnh báo khi một skill thất bại liên tục không?
|
|
27
|
+
weight: 20
|
|
28
|
+
criteria:
|
|
29
|
+
- Nhận diện đúng khi có >= 3 trace gần nhất bị fail hoặc vi phạm boundary (20đ)
|