ai-developer-skill-os 8.3.1 → 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 +13 -2
- package/.agents/registry/graph.json +33 -33
- package/.agents/registry/index.yaml +33 -33
- package/.agents/rules/global.md +13 -0
- package/.agents/skills/_template/SKILL.md +127 -2
- package/.agents/skills/_template/capability.yaml +1 -1
- package/.agents/skills/qk-access-policy/SKILL.md +132 -2
- package/.agents/skills/qk-access-policy/capability.yaml +1 -1
- package/.agents/skills/qk-access-policy/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-agent-observability/SKILL.md +137 -1
- package/.agents/skills/qk-agent-observability/capability.yaml +1 -1
- package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-ai-builder/SKILL.md +132 -2
- package/.agents/skills/qk-ai-builder/capability.yaml +1 -1
- package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-api-lifecycle/SKILL.md +132 -2
- package/.agents/skills/qk-api-lifecycle/capability.yaml +1 -1
- package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-bug-resolution/SKILL.md +132 -2
- package/.agents/skills/qk-bug-resolution/capability.yaml +1 -1
- package/.agents/skills/qk-bug-resolution/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-code-review/SKILL.md +132 -2
- package/.agents/skills/qk-code-review/capability.yaml +1 -1
- package/.agents/skills/qk-code-review/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-context-loader/SKILL.md +135 -4
- package/.agents/skills/qk-context-loader/capability.yaml +1 -1
- package/.agents/skills/qk-context-loader/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-data-lifecycle/SKILL.md +132 -2
- package/.agents/skills/qk-data-lifecycle/capability.yaml +1 -1
- package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-db-optimizer/SKILL.md +132 -2
- package/.agents/skills/qk-db-optimizer/capability.yaml +1 -1
- package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-design-system-engineering/SKILL.md +132 -2
- package/.agents/skills/qk-design-system-engineering/capability.yaml +1 -1
- package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-devops-platform/SKILL.md +132 -2
- package/.agents/skills/qk-devops-platform/capability.yaml +1 -1
- package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-docs/SKILL.md +132 -2
- package/.agents/skills/qk-docs/capability.yaml +1 -1
- package/.agents/skills/qk-docs/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-engineering-standard/SKILL.md +132 -2
- package/.agents/skills/qk-engineering-standard/capability.yaml +1 -1
- package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +3 -3
- package/.agents/skills/qk-fe-api-integration/SKILL.md +132 -2
- package/.agents/skills/qk-fe-api-integration/capability.yaml +1 -1
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-feature-delivery/SKILL.md +132 -2
- package/.agents/skills/qk-feature-delivery/capability.yaml +1 -1
- package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-frontend-architecture/SKILL.md +132 -2
- package/.agents/skills/qk-frontend-architecture/capability.yaml +1 -1
- package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-help/SKILL.md +2 -2
- package/.agents/skills/qk-help/capability.yaml +1 -1
- package/.agents/skills/qk-help/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-orchestrator/SKILL.md +132 -2
- package/.agents/skills/qk-orchestrator/capability.yaml +1 -1
- package/.agents/skills/qk-orchestrator/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-product-specification/SKILL.md +132 -2
- package/.agents/skills/qk-product-specification/capability.yaml +1 -1
- package/.agents/skills/qk-product-specification/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-production-release/SKILL.md +132 -2
- package/.agents/skills/qk-production-release/capability.yaml +1 -1
- package/.agents/skills/qk-production-release/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-project-bootstrap/SKILL.md +147 -4
- package/.agents/skills/qk-project-bootstrap/capability.yaml +1 -1
- package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-project-health/SKILL.md +132 -2
- package/.agents/skills/qk-project-health/capability.yaml +1 -1
- package/.agents/skills/qk-project-health/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-project-memory/SKILL.md +252 -277
- package/.agents/skills/qk-project-memory/capability.yaml +1 -1
- package/.agents/skills/qk-project-memory/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-refactor/SKILL.md +131 -1
- package/.agents/skills/qk-refactor/capability.yaml +1 -1
- package/.agents/skills/qk-refactor/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-security-audit/SKILL.md +132 -2
- package/.agents/skills/qk-security-audit/capability.yaml +1 -1
- package/.agents/skills/qk-security-audit/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-system-evolution/SKILL.md +132 -2
- package/.agents/skills/qk-system-evolution/capability.yaml +1 -1
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-test-engineering/SKILL.md +132 -2
- package/.agents/skills/qk-test-engineering/capability.yaml +1 -1
- package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-ui-audit/SKILL.md +132 -2
- package/.agents/skills/qk-ui-audit/capability.yaml +1 -1
- package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-ui-builder/capability.yaml +1 -1
- 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 +1 -1
- package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-validation-gate/SKILL.md +132 -2
- package/.agents/skills/qk-validation-gate/capability.yaml +1 -1
- package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-web-quality-gate/SKILL.md +132 -2
- package/.agents/skills/qk-web-quality-gate/capability.yaml +1 -1
- package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +2 -2
- package/CHANGELOG.md +8 -0
- package/README.md +13 -4
- package/package.json +4 -3
- package/tooling/sync-versions.js +256 -6
- package/tooling/validate-skills.js +1 -1
|
@@ -1,277 +1,252 @@
|
|
|
1
|
-
---
|
|
2
|
-
# ── Identity ───────────────────────────────────────────────
|
|
3
|
-
name: qk-project-memory
|
|
4
|
-
version:
|
|
5
|
-
status: stable
|
|
6
|
-
description: "
|
|
7
|
-
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
|
-
|
|
9
|
-
# ──
|
|
10
|
-
type: utility
|
|
11
|
-
|
|
12
|
-
intent:
|
|
13
|
-
- context-management
|
|
14
|
-
- knowledge-retrieval
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- "
|
|
27
|
-
- "
|
|
28
|
-
- "
|
|
29
|
-
- "
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
"evidence": "path/to/component.tsx",
|
|
254
|
-
"confidence": "HIGH",
|
|
255
|
-
"created_at": "ISO8601",
|
|
256
|
-
"expires_at": null,
|
|
257
|
-
"tags": ["theme", "macrostructure", "component"]
|
|
258
|
-
}
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### Rule
|
|
262
|
-
**No two consecutive UI builds in the same project may share the same theme + macrostructure combination.**
|
|
263
|
-
|
|
264
|
-
When `qk-ui-builder` runs:
|
|
265
|
-
1. Read `.agents/memory/ui-diversification.json` (if exists)
|
|
266
|
-
2. Get last entry's theme + macrostructure
|
|
267
|
-
3. Pick different combination for current build
|
|
268
|
-
4. After build, append new entry to `ui-diversification.json`
|
|
269
|
-
|
|
270
|
-
### Enforcement
|
|
271
|
-
If user requests same theme/macrostructure as last build:
|
|
272
|
-
- Note the conflict in output
|
|
273
|
-
- Recommend alternative
|
|
274
|
-
- Proceed only if user explicitly overrides
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
1
|
+
---
|
|
2
|
+
# ── Identity ───────────────────────────────────────────────
|
|
3
|
+
name: qk-project-memory
|
|
4
|
+
version: 9.0.0
|
|
5
|
+
status: stable
|
|
6
|
+
description: "Quản trị Tri thức và Bộ nhớ dự án V1 (Dual-Mode Shared/Private) — Quản lý như source code: đơn giản, có thể review, cập nhật và luôn có con người phê duyệt."
|
|
7
|
+
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
|
+
|
|
9
|
+
# ── V9: Classification ─────────────────────────────────────
|
|
10
|
+
type: utility
|
|
11
|
+
|
|
12
|
+
intent:
|
|
13
|
+
- context-management
|
|
14
|
+
- knowledge-retrieval
|
|
15
|
+
- project-learning
|
|
16
|
+
|
|
17
|
+
complexity:
|
|
18
|
+
level: medium
|
|
19
|
+
criteria:
|
|
20
|
+
files_affected: "1-2"
|
|
21
|
+
has_behavior_change: false
|
|
22
|
+
has_external_dependency: false
|
|
23
|
+
has_breaking_change: false
|
|
24
|
+
|
|
25
|
+
triggers:
|
|
26
|
+
- "lưu context"
|
|
27
|
+
- "nhớ lại"
|
|
28
|
+
- "project memory"
|
|
29
|
+
- "lưu vào bộ nhớ"
|
|
30
|
+
- "tìm lại fact"
|
|
31
|
+
- "/learn"
|
|
32
|
+
|
|
33
|
+
# ── V9: References ─────────────────────────────────────────
|
|
34
|
+
workflow: documentation
|
|
35
|
+
|
|
36
|
+
rules:
|
|
37
|
+
- global
|
|
38
|
+
- coding
|
|
39
|
+
|
|
40
|
+
tools:
|
|
41
|
+
- filesystem
|
|
42
|
+
|
|
43
|
+
related_skills:
|
|
44
|
+
- qk-context-loader
|
|
45
|
+
- qk-engineering-standard
|
|
46
|
+
|
|
47
|
+
knowledge_scope:
|
|
48
|
+
owns:
|
|
49
|
+
- project-facts
|
|
50
|
+
- verified-context
|
|
51
|
+
- patterns
|
|
52
|
+
- hard-bugs
|
|
53
|
+
references:
|
|
54
|
+
- architecture
|
|
55
|
+
- convention
|
|
56
|
+
- pattern
|
|
57
|
+
- hard-bug
|
|
58
|
+
|
|
59
|
+
# ── V9: Verification ───────────────────────────────────────
|
|
60
|
+
verification:
|
|
61
|
+
required: true
|
|
62
|
+
strategy: human-approval
|
|
63
|
+
|
|
64
|
+
selection:
|
|
65
|
+
priority: high
|
|
66
|
+
confidence_threshold: 1.0
|
|
67
|
+
|
|
68
|
+
examples: []
|
|
69
|
+
learnings: []
|
|
70
|
+
|
|
71
|
+
# ── Runtime ─────────────────────────────────────────────
|
|
72
|
+
execution_mode: deterministic
|
|
73
|
+
cost: low
|
|
74
|
+
latency: fast
|
|
75
|
+
risk: low
|
|
76
|
+
side_effects: edit_files
|
|
77
|
+
produces: [knowledge-update]
|
|
78
|
+
consumes: [source-code, task-outcome]
|
|
79
|
+
|
|
80
|
+
token_budget:
|
|
81
|
+
max_files_read: 2
|
|
82
|
+
max_lines_per_read: 150
|
|
83
|
+
max_shell_commands: 0
|
|
84
|
+
stop_early: true
|
|
85
|
+
|
|
86
|
+
exit_codes: [SUCCESS, BLOCKED, DISMISSED, FAILED]
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# qk-project-memory — Project Knowledge Management V1
|
|
90
|
+
|
|
91
|
+
> **Kim chỉ nam tối thượng:** *"Knowledge phải được quản lý giống như source code: đơn giản, có thể xem xét (review), có thể cập nhật, có thể loại bỏ và luôn có con người chịu trách nhiệm phê duyệt."*
|
|
92
|
+
>
|
|
93
|
+
> **Nguyên tắc định hướng:**
|
|
94
|
+
> - **Đơn giản hơn > Thông minh hơn:** Mọi tính năng chỉ phục vụ 2 mục tiêu: giúp AI mở đúng file nhanh hơn, hoặc tránh lặp lại một lỗi đã trả giá đắt.
|
|
95
|
+
> - **Navigator, NOT Source of Truth:** Memory chỉ dùng để giảm thời gian tìm kiếm, không thay thế việc đọc mã nguồn hiện tại.
|
|
96
|
+
> - **Tài liệu Kỹ Thuật:** `AGENTS.md` và `index.yaml` là tài liệu kỹ thuật của dự án, tuyệt đối KHÔNG phải nhật ký hội thoại của AI ("Hôm nay AI đã...", "User bảo...").
|
|
97
|
+
> - **AI Đề xuất -> Con người Phê duyệt:** AI không tự học ngầm, AI tóm tắt và đề xuất để lập trình viên chốt duyệt.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 1. Hai Chế Độ Lưu Trữ (Dual-Mode Design)
|
|
102
|
+
|
|
103
|
+
Tùy thuộc vào nhu cầu bảo mật hay làm việc nhóm, V1 hỗ trợ 2 chế độ (Mode):
|
|
104
|
+
|
|
105
|
+
### Mode 1: Private Mode (Mặc định cho cá nhân)
|
|
106
|
+
```text
|
|
107
|
+
.ai-local/
|
|
108
|
+
├── AGENTS.md ──> Bản đồ dự án (< 100 dòng)
|
|
109
|
+
└── knowledge/
|
|
110
|
+
└── index.yaml ──> Kho tri thức 4 lĩnh vực
|
|
111
|
+
```
|
|
112
|
+
- **Bảo mật tuyệt đối:** Thư mục `.ai-local/` BẮT BUỘC được định danh trong `.gitignore` của dự án (hoặc Global Git Ignore). Tri thức nằm trọn trên máy lập trình viên dùng Skin, không đẩy lên Git.
|
|
113
|
+
|
|
114
|
+
### Mode 2: Shared Mode (Dành cho Team & CI/CD)
|
|
115
|
+
```text
|
|
116
|
+
.agents/
|
|
117
|
+
├── AGENTS.md ──> Bản đồ dự án (< 100 dòng)
|
|
118
|
+
└── knowledge/
|
|
119
|
+
└── index.yaml ──> Kho tri thức 4 lĩnh vực
|
|
120
|
+
```
|
|
121
|
+
- **Đồng bộ toàn đội:** Thư mục `.agents/` được commit, tạo Pull Request (PR), team review và merge vào codebase như source code. Ai clone dự án về đều nhận trọn vẹn tri thức tái sử dụng.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 2. Tiêu Chuẩn File 1: `AGENTS.md` (Bản Đồ Dự Án)
|
|
126
|
+
|
|
127
|
+
- **Giới hạn cứng:** Tuyệt đối không vượt quá **100 dòng** (được parse trong < 5 giây).
|
|
128
|
+
- **Quy tắc Quick Actions:** KHÔNG ghi đường dẫn file cụ thể nếu chưa ổn định để tránh gãy link khi refactor. Nhỏ gọn trỏ tới từ khóa tra cứu trong `index.yaml`.
|
|
129
|
+
|
|
130
|
+
### Mẫu Chuẩn `AGENTS.md`:
|
|
131
|
+
```markdown
|
|
132
|
+
> [!IMPORTANT]
|
|
133
|
+
> **MEMORY NAVIGATOR:** Memory chỉ dùng để giảm thời gian tìm kiếm, không thay thế việc đọc mã nguồn hiện tại.
|
|
134
|
+
|
|
135
|
+
# Architecture (~15 dòng)
|
|
136
|
+
- Framework: React + TypeScript + TanStack Router
|
|
137
|
+
- State/Data: Axios Instance wrapper tại `src/services/httpClient.ts`
|
|
138
|
+
- UI Style: TailwindCSS / Custom Component Library
|
|
139
|
+
|
|
140
|
+
# Folder Map (~20 dòng)
|
|
141
|
+
- `src/routes/`: Cấu hình routing (file-based routing)
|
|
142
|
+
- `src/api/`: Các dịch vụ kết nối endpoint backend
|
|
143
|
+
- `src/components/`: Component sử dụng lại trong toàn dự án
|
|
144
|
+
|
|
145
|
+
# Quick Actions (~30 dòng)
|
|
146
|
+
- Thêm / Sửa Menu -> Tra cứu Pattern "add-menu" trong `knowledge/index.yaml`
|
|
147
|
+
- Xây dựng bảng dữ liệu -> Tra cứu Pattern "data-table" trong `knowledge/index.yaml`
|
|
148
|
+
- Quy tắc gọi API -> Tra cứu Convention "api-wrapper" trong `knowledge/index.yaml`
|
|
149
|
+
|
|
150
|
+
# Agent Rules (~20 dòng)
|
|
151
|
+
1. Luôn đọc `AGENTS.md` đầu tiên.
|
|
152
|
+
2. Tra cứu `knowledge/index.yaml` trước khi dùng lệnh tìm kiếm mù toàn dự án.
|
|
153
|
+
3. Hậu task: Chỉ đề xuất lưu nếu là Architecture, Convention, Pattern, hoặc Hard Bug.
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 3. Tiêu Chuẩn File 2: `knowledge/index.yaml` (Kho Tri Thức)
|
|
159
|
+
|
|
160
|
+
### Quy Tắc Lõi:
|
|
161
|
+
1. **Chỉ lưu 4 Loại Tri Thức duy nhất:**
|
|
162
|
+
- `Architecture`: Nền tảng cấu trúc lớn.
|
|
163
|
+
- `Convention`: Chuẩn mực viết code bắt buộc.
|
|
164
|
+
- `Pattern`: Quy trình hành động tái sử dụng nhiều bước.
|
|
165
|
+
- `Hard Bug`: Lỗi cực kỳ khó nhằn hoặc tốn nhiều thời gian fix (KHÔNG lưu lỗi typo, CSS lặt vặt, lỗi cú pháp tầm thường).
|
|
166
|
+
2. **Chỉ lưu Hành Động:** Đổi thẻ `summary` thành `steps` cho Pattern/Convention. AI nhìn là thực thi ngay.
|
|
167
|
+
3. **Hard Bug Tối Giản 3 Trường:** Chỉ giữ `cause`, `fix`, và `refs`.
|
|
168
|
+
4. **Lịch Sử An Toàn (Zero-Overwrite):** Khi một tri thức thay đổi hoặc lỗi thời, KHÔNG xóa đè. Chuyển trạng thái (`status`) của cụm cũ từ `Active` sang `Archived`, sau đó chèn cụm mới với trạng thái `Active`.
|
|
169
|
+
5. **Đường dẫn chuẩn thương mại:** Mọi `refs` bắt buộc dùng đường dẫn tương đối từ Root (`src/...`) và chỉ định tên Biểu tượng (Symbol/Component/Hook name), cấm dùng đường dẫn ổ đĩa tuyệt đối (`C:/...`, `D:/...`).
|
|
170
|
+
|
|
171
|
+
### Mẫu Chuẩn `index.yaml`:
|
|
172
|
+
```yaml
|
|
173
|
+
# ==============================================================================
|
|
174
|
+
# KHO TRI THỨC DỰ ÁN V1 (AI SKIN V9 ARCHITECTURE)
|
|
175
|
+
# Lifecycle đơn giản: Active (Đang dùng) -> Archived (Lỗi thời/Lịch sử)
|
|
176
|
+
# ==============================================================================
|
|
177
|
+
|
|
178
|
+
knowledge:
|
|
179
|
+
# --- PATTERN: CÔNG DỤNG LẶP LẠI ---------
|
|
180
|
+
- id: add-menu
|
|
181
|
+
type: Pattern
|
|
182
|
+
status: Active
|
|
183
|
+
tags: [menu, navigation, sidebar, router]
|
|
184
|
+
steps:
|
|
185
|
+
- 1. Cập nhật Sidebar hoặc Router config
|
|
186
|
+
- 2. Khai báo quyền (access permissions) cho menu item mới
|
|
187
|
+
- 3. Áp dụng chuẩn API hook tương ứng
|
|
188
|
+
refs:
|
|
189
|
+
- src/routes/_app.tsx#SidebarNavigation
|
|
190
|
+
- src/config/permissions.ts#UserRoles
|
|
191
|
+
|
|
192
|
+
# --- HARD BUG: CA BỆNH KHÓ NHẰN ---------
|
|
193
|
+
- id: rerender-infinite-loop
|
|
194
|
+
type: Hard Bug
|
|
195
|
+
status: Active
|
|
196
|
+
tags: [react, use-effect, leak]
|
|
197
|
+
cause: "Fetch data trực tiếp bên trong useEffect mà dependency bị thay đổi tham chiếu liên tục"
|
|
198
|
+
fix: "Sử dụng custom hook có sẵn hoặc bọc hàm bằng useCallback trước khi truyền vào useEffect"
|
|
199
|
+
refs:
|
|
200
|
+
- src/hooks/useAutoFetch.ts
|
|
201
|
+
|
|
202
|
+
# --- CONVENTION: QUY BẰNG CẤM HOẶC BẮT BUỘC ---------
|
|
203
|
+
- id: axios-only
|
|
204
|
+
type: Convention
|
|
205
|
+
status: Active
|
|
206
|
+
steps:
|
|
207
|
+
- Cấm tuyệt đối dùng fetch() hay axios mốc rỗng
|
|
208
|
+
- Luôn import httpClient tích hợp sẵn token từ src/services/
|
|
209
|
+
refs:
|
|
210
|
+
- src/services/httpClient.ts
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 4. Quy Trình Trò Chuyện & Thao Tác (The `/learn` Lifecycle)
|
|
216
|
+
|
|
217
|
+
Bất kỳ lúc nào người dùng gõ `/learn`, `./qk-project-memory`, hoặc sau khi hoàn tất một task phức tạp có tham số yêu cầu ghi nhớ, Agent PHẢI tuân thủ theo 4 bước khép kín:
|
|
218
|
+
|
|
219
|
+
### Bước 1: Trả lời Câu Hỏi Lọc (Filtering Question)
|
|
220
|
+
AI tự hỏi và đối chiếu: *"Task/Sự kiện vừa rồi có thuộc 1 trong 4 loại (Architecture, Convention, Pattern, Hard Bug) và có giá trị giảm thời gian cho task tương lai không?"*
|
|
221
|
+
- Nếu **KHÔNG** (lỗi typo, trang trí CSS, CRUD đơn giản, sửa text): Trả về `DISMISSED: "Không phát hiện tri thức kiến trúc/bug khó giá trị dài hạn. Đã bỏ qua để giữ sạch bộ nhớ."` -> **Dừng lại ngay.**
|
|
222
|
+
- Nếu **CÓ**: Sang Bước 2.
|
|
223
|
+
|
|
224
|
+
### Bước 2: Chuẩn Bị Bản Đề Xuất (Draft Proposal)
|
|
225
|
+
AI tóm tắt nội dung tri thức dưới chuẩn đinh dạc của `index.yaml` (với 4 loại và trường `steps` / `cause-fix`).
|
|
226
|
+
- Đối chiếu trong `index.yaml` xem có từ khóa/id trùng lặp hay không để chuẩn bị ghi chú `[Mới]` hoặc `[Cập nhật -> Archived cũ]`.
|
|
227
|
+
|
|
228
|
+
### Bước 3: Phê Duyệt Của Con Người (Human Approval - Bắt Buộc)
|
|
229
|
+
Trình bày rõ trước người dùng trên chat:
|
|
230
|
+
```markdown
|
|
231
|
+
💡 [AI Skin Project Memory]: Phát hiện tri thức mới đáng ghi nhớ cho dự án.
|
|
232
|
+
Đề xuất ghi vào `[Mode: .ai-local / .agents]/knowledge/index.yaml`:
|
|
233
|
+
|
|
234
|
+
... (Nội dung YAML tóm tắt) ...
|
|
235
|
+
|
|
236
|
+
👉 **Bạn có muốn xác nhận cập nhật tri thức này không? (Đồng ý / Chỉnh sửa / Bỏ qua)**
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Bước 4: Thực Thi Cập Nhật (Commit)
|
|
240
|
+
- Sau khi được Người dùng xác nhận: Dùng tool (ví dụ `replace_file_content` hoặc `write_to_file`) để chèn thông tin mới vào `index.yaml` (hoặc `AGENTS.md` nếu chỉnh sơ đồ kiến trúc).
|
|
241
|
+
- Báo cáo hoàn tất chu trình Ghi nhớ!
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 5. Bảng Exit Codes
|
|
246
|
+
|
|
247
|
+
| Code | Ý Nghĩa | Hành Động Kế Tiếp |
|
|
248
|
+
|------|---------|--------------------|
|
|
249
|
+
| SUCCESS | Đã lưu hoặc đọc tri thức hợp lệ từ `index.yaml` / `AGENTS.md` | Hoàn thành |
|
|
250
|
+
| BLOCKED | Đề xuất tri thức bị Người dùng từ chối (Hoặc thiếu quyền truy xuất file) | Không thay đổi bộ nhớ |
|
|
251
|
+
| DISMISSED | Thao tác không thỏa mãn 4 tiêu chí lọc V1 (Chỉ là typo, css vặt) | Bỏ qua ghi nhớ nhằm sạch hệ thống |
|
|
252
|
+
| FAILED | File bộ nhớ sai định dạng cú pháp YAML hoặc vi phạm giới hạn 100 dòng | Yêu cầu sửa/reset cấu trúc file |
|