ai-developer-skill-os 9.3.0 → 10.1.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 +60 -40
- package/.agents/DEV_PROFILE.md +36 -2
- package/.agents/registry/graph.json +95 -342
- package/.agents/registry/index.yaml +61 -237
- package/.agents/rules/coding.md +30 -12
- package/.agents/rules/command-safety.md +19 -8
- package/.agents/rules/global.md +234 -28
- package/.agents/rules/prompt-compiler.md +170 -0
- package/.agents/skills/qk-api-data-discovery/SKILL.md +470 -0
- package/.agents/skills/qk-backend-data/SKILL.md +190 -0
- package/.agents/skills/qk-bug-resolution/SKILL.md +176 -248
- package/.agents/skills/qk-code-cleaner/SKILL.md +250 -0
- package/.agents/skills/qk-code-review/SKILL.md +126 -247
- package/.agents/skills/qk-devops-release/SKILL.md +145 -0
- package/.agents/skills/qk-feature-delivery/SKILL.md +179 -247
- package/.agents/skills/qk-orchestrator/SKILL.md +100 -151
- package/.agents/skills/qk-product-spec/SKILL.md +113 -0
- package/.agents/skills/qk-prompt-compiler/SKILL.md +321 -0
- package/.agents/skills/qk-ui-engineer/SKILL.md +137 -0
- package/.agents/workflows/feature-delivery.yml +1 -1
- package/.agents/workflows/production-release.yml +1 -1
- package/.agents/workflows/spec-driven-development.yml +109 -87
- package/CHANGELOG.md +54 -0
- package/README.md +125 -184
- package/bin/install.js +337 -329
- package/package.json +2 -2
- package/.agents/README.md +0 -90
- package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
- package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
- package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
- package/.agents/docs/MIGRATION-STATUS.md +0 -35
- package/.agents/docs/MIGRATION-V8.md +0 -10
- package/.agents/docs/ROADMAP-V8.2.md +0 -78
- package/.agents/docs/V8-CERTIFICATION.md +0 -27
- package/.agents/skills/qk-access-policy/SKILL.md +0 -206
- package/.agents/skills/qk-access-policy/capability.yaml +0 -23
- package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
- package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
- package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
- package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
- package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
- package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
- package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
- package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
- package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
- package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
- package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
- package/.agents/skills/qk-code-review/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/SKILL.md +0 -198
- package/.agents/skills/qk-context-loader/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
- package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
- package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
- package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
- package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
- package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
- package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
- package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
- package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-docs/SKILL.md +0 -193
- package/.agents/skills/qk-docs/capability.yaml +0 -23
- package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
- package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
- package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
- package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
- package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
- package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
- package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
- package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
- package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
- package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
- package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-help/SKILL.md +0 -107
- package/.agents/skills/qk-help/capability.yaml +0 -20
- package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
- package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
- package/.agents/skills/qk-product-specification/SKILL.md +0 -187
- package/.agents/skills/qk-product-specification/capability.yaml +0 -27
- package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-production-release/SKILL.md +0 -188
- package/.agents/skills/qk-production-release/capability.yaml +0 -27
- package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-audit/SKILL.md +0 -174
- package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
- package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
- package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-health/SKILL.md +0 -202
- package/.agents/skills/qk-project-health/capability.yaml +0 -23
- package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-project-memory/SKILL.md +0 -303
- package/.agents/skills/qk-project-memory/capability.yaml +0 -23
- package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-refactor/SKILL.md +0 -243
- package/.agents/skills/qk-refactor/capability.yaml +0 -26
- package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-security-audit/SKILL.md +0 -280
- package/.agents/skills/qk-security-audit/capability.yaml +0 -29
- package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
- package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
- package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
- package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
- package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
- package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
- package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
- package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
- package/.agents/skills/qk-ui-builder/references/color.md +0 -115
- package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
- package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
- package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
- package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
- package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
- package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
- package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
- package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
- package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
- package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
- package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
- package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
- package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
- package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
- package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
- package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-upgrade/SKILL.md +0 -301
- package/.agents/skills/qk-upgrade/capability.yaml +0 -24
- package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
- package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
- package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
- package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
- package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
- package/.agents/workflows/research.yml +0 -75
- package/.agents/workflows/skill-evolution.yml +0 -97
- package/tooling/fix-refactor.js +0 -8
|
@@ -1,625 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# ── Identity ───────────────────────────────────────────────
|
|
3
|
-
name: qk-system-evolution
|
|
4
|
-
version: 9.1.0
|
|
5
|
-
status: stable
|
|
6
|
-
description: "Nâng cấp thư viện/framework an toàn với rollback plan bắt buộc — incremental, không big-bang."
|
|
7
|
-
platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
|
|
8
|
-
|
|
9
|
-
# ── V9: Classification ─────────────────────────────────────
|
|
10
|
-
type: capability
|
|
11
|
-
|
|
12
|
-
intent:
|
|
13
|
-
- framework-upgrade
|
|
14
|
-
- system-maintenance
|
|
15
|
-
|
|
16
|
-
complexity:
|
|
17
|
-
level: high
|
|
18
|
-
criteria:
|
|
19
|
-
files_affected: "10+"
|
|
20
|
-
has_behavior_change: false
|
|
21
|
-
has_external_dependency: true
|
|
22
|
-
has_breaking_change: true
|
|
23
|
-
|
|
24
|
-
triggers:
|
|
25
|
-
- "upgrade package"
|
|
26
|
-
- "nâng cấp"
|
|
27
|
-
- "update framework"
|
|
28
|
-
- "migration framework"
|
|
29
|
-
- "system evolution"
|
|
30
|
-
|
|
31
|
-
# ── V8: References ─────────────────────────────────────────
|
|
32
|
-
workflow: refactor
|
|
33
|
-
|
|
34
|
-
rules:
|
|
35
|
-
- global
|
|
36
|
-
- coding
|
|
37
|
-
|
|
38
|
-
tools:
|
|
39
|
-
- filesystem
|
|
40
|
-
- terminal
|
|
41
|
-
|
|
42
|
-
related_skills:
|
|
43
|
-
- qk-engineering-standard
|
|
44
|
-
- qk-project-health
|
|
45
|
-
|
|
46
|
-
knowledge_scope:
|
|
47
|
-
owns:
|
|
48
|
-
- upgrade-strategy
|
|
49
|
-
- rollback-plan
|
|
50
|
-
references:
|
|
51
|
-
- testing
|
|
52
|
-
- architecture
|
|
53
|
-
- security
|
|
54
|
-
- anti-patterns
|
|
55
|
-
|
|
56
|
-
# ── V8: Verification ───────────────────────────────────────
|
|
57
|
-
verification:
|
|
58
|
-
required: true
|
|
59
|
-
strategy: refactor
|
|
60
|
-
|
|
61
|
-
selection:
|
|
62
|
-
priority: medium
|
|
63
|
-
confidence_threshold: 0.85
|
|
64
|
-
|
|
65
|
-
examples: []
|
|
66
|
-
learnings: []
|
|
67
|
-
|
|
68
|
-
# ── V7 Runtime ─────────────────────────────────────────────
|
|
69
|
-
execution_mode: deterministic
|
|
70
|
-
cost: high
|
|
71
|
-
latency: slow
|
|
72
|
-
risk: high
|
|
73
|
-
side_effects: edit_files
|
|
74
|
-
produces: [code, report, plan]
|
|
75
|
-
consumes: [context-graph, source-code]
|
|
76
|
-
|
|
77
|
-
token_budget:
|
|
78
|
-
max_files_read: 4
|
|
79
|
-
max_lines_per_read: 100
|
|
80
|
-
max_shell_commands: 2
|
|
81
|
-
stop_early: true
|
|
82
|
-
|
|
83
|
-
exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
# qk-system-evolution — Safe Upgrade Manager
|
|
87
|
-
|
|
88
|
-
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
89
|
-
|
|
90
|
-
## Memory Workflow
|
|
91
|
-
|
|
92
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
93
|
-
- Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
|
|
94
|
-
- **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
|
|
95
|
-
- **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
100
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
101
|
-
bắt buộc tra cứu:
|
|
102
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
103
|
-
|
|
104
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
105
|
-
- Architecture
|
|
106
|
-
- Hard Bug
|
|
107
|
-
- Convention
|
|
108
|
-
- Pattern
|
|
109
|
-
- Tech Debt Pattern
|
|
110
|
-
- 👉 *Domain Focus:* Architecture / Hard Bug (vd: kế hoạch nâng cấp thư viện incremental, breaking changes).
|
|
111
|
-
|
|
112
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
113
|
-
Không được xem Memory là Source of Truth.
|
|
114
|
-
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.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
119
|
-
- 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:
|
|
120
|
-
- Hard Bug có khả năng tái diễn.
|
|
121
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
122
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
123
|
-
- Quyết định Architecture quan trọng.
|
|
124
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
125
|
-
- 👉 *Domain Harvest:* Kinh nghiệm xử lý xung đột dependency hoặc bài học downgrade/rollback.
|
|
126
|
-
|
|
127
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
128
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
129
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
134
|
-
Sau khi hoàn thành task:
|
|
135
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
136
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
137
|
-
- Đề xuất người dùng xem xét.
|
|
138
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
139
|
-
- `/learn`
|
|
140
|
-
- `qk-project-memory`
|
|
141
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
148
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
### Ignore (Không đưa vào Memory)
|
|
153
|
-
Không lưu:
|
|
154
|
-
- Trace log của một session đơn lẻ.
|
|
155
|
-
- Temporary debugging data.
|
|
156
|
-
- Output của một lần chạy test/scan.
|
|
157
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
158
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
159
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
160
|
-
- 👉 *Domain Ignore:* Lockfile changes tạm thời trong local cache.
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
### Golden Rule
|
|
165
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
166
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
173
|
-
- Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
|
|
174
|
-
- **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
|
|
175
|
-
- **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
180
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
181
|
-
bắt buộc tra cứu:
|
|
182
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
183
|
-
|
|
184
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
185
|
-
- Architecture
|
|
186
|
-
- Hard Bug
|
|
187
|
-
- Convention
|
|
188
|
-
- Pattern
|
|
189
|
-
- Tech Debt Pattern
|
|
190
|
-
- 👉 *Domain Focus:* Architecture / Hard Bug (vd: kế hoạch nâng cấp thư viện incremental, breaking changes).
|
|
191
|
-
|
|
192
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
193
|
-
Không được xem Memory là Source of Truth.
|
|
194
|
-
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.
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
199
|
-
- 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:
|
|
200
|
-
- Hard Bug có khả năng tái diễn.
|
|
201
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
202
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
203
|
-
- Quyết định Architecture quan trọng.
|
|
204
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
205
|
-
- 👉 *Domain Harvest:* Kinh nghiệm xử lý xung đột dependency hoặc bài học downgrade/rollback.
|
|
206
|
-
|
|
207
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
208
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
209
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
214
|
-
Sau khi hoàn thành task:
|
|
215
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
216
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
217
|
-
- Đề xuất người dùng xem xét.
|
|
218
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
219
|
-
- `/learn`
|
|
220
|
-
- `qk-project-memory`
|
|
221
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
228
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
### Ignore (Không đưa vào Memory)
|
|
233
|
-
Không lưu:
|
|
234
|
-
- Trace log của một session đơn lẻ.
|
|
235
|
-
- Temporary debugging data.
|
|
236
|
-
- Output của một lần chạy test/scan.
|
|
237
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
238
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
239
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
240
|
-
- 👉 *Domain Ignore:* Lockfile changes tạm thời trong local cache.
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
### Golden Rule
|
|
245
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
246
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
### Pre-flight Retrieve (Trước khi thực thi)
|
|
253
|
-
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
254
|
-
bắt buộc tra cứu:
|
|
255
|
-
- `.agents/knowledge/index.yaml` (Shared Project Knowledge)
|
|
256
|
-
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
257
|
-
|
|
258
|
-
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
259
|
-
- Architecture
|
|
260
|
-
- Hard Bug
|
|
261
|
-
- Convention
|
|
262
|
-
- Pattern
|
|
263
|
-
- Tech Debt Pattern
|
|
264
|
-
- 👉 *Domain Focus:* Architecture / Hard Bug (vd: kế hoạch nâng cấp thư viện incremental, breaking changes).
|
|
265
|
-
|
|
266
|
-
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
267
|
-
Không được xem Memory là Source of Truth.
|
|
268
|
-
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.
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
273
|
-
- 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:
|
|
274
|
-
- Hard Bug có khả năng tái diễn.
|
|
275
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
276
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
277
|
-
- Quyết định Architecture quan trọng.
|
|
278
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
279
|
-
- 👉 *Domain Harvest:* Kinh nghiệm xử lý xung đột dependency hoặc bài học downgrade/rollback.
|
|
280
|
-
|
|
281
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
282
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
283
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
288
|
-
Sau khi hoàn thành task:
|
|
289
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
290
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
291
|
-
- Đề xuất người dùng xem xét.
|
|
292
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
293
|
-
- `/learn`
|
|
294
|
-
- `qk-project-memory`
|
|
295
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
296
|
-
|
|
297
|
-
```
|
|
298
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
302
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
### Ignore (Không đưa vào Memory)
|
|
307
|
-
Không lưu:
|
|
308
|
-
- Trace log của một session đơn lẻ.
|
|
309
|
-
- Temporary debugging data.
|
|
310
|
-
- Output của một lần chạy test/scan.
|
|
311
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
312
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
313
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
314
|
-
- 👉 *Domain Ignore:* Lockfile changes tạm thời trong local cache.
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
### Golden Rule
|
|
319
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
320
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
326
|
-
- 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:
|
|
327
|
-
- Hard Bug có khả năng tái diễn.
|
|
328
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
329
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
330
|
-
- Quyết định Architecture quan trọng.
|
|
331
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
332
|
-
- 👉 *Domain Harvest:* Kinh nghiệm xử lý xung đột dependency hoặc bài học downgrade/rollback.
|
|
333
|
-
|
|
334
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
335
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
336
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
341
|
-
Sau khi hoàn thành task:
|
|
342
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
343
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
344
|
-
- Đề xuất người dùng xem xét.
|
|
345
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
346
|
-
- `/learn`
|
|
347
|
-
- `qk-project-memory`
|
|
348
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
349
|
-
|
|
350
|
-
```
|
|
351
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
355
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
### Ignore (Không đưa vào Memory)
|
|
360
|
-
Không lưu:
|
|
361
|
-
- Trace log của một session đơn lẻ.
|
|
362
|
-
- Temporary debugging data.
|
|
363
|
-
- Output của một lần chạy test/scan.
|
|
364
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
365
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
366
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
367
|
-
- 👉 *Domain Ignore:* Lockfile changes tạm thời trong local cache.
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
### Golden Rule
|
|
372
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
373
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
---
|
|
377
|
-
|
|
378
|
-
### Learning Flow (AI tự học có kiểm soát)
|
|
379
|
-
- 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:
|
|
380
|
-
- Hard Bug có khả năng tái diễn.
|
|
381
|
-
- Pattern làm việc lặp lại trong dự án.
|
|
382
|
-
- Convention hoặc quy tắc kiến trúc mới.
|
|
383
|
-
- Quyết định Architecture quan trọng.
|
|
384
|
-
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
385
|
-
- 👉 *Domain Harvest:* Kinh nghiệm xử lý xung đột dependency hoặc bài học downgrade/rollback.
|
|
386
|
-
|
|
387
|
-
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
388
|
-
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
389
|
-
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
394
|
-
Sau khi hoàn thành task:
|
|
395
|
-
- AI đánh giá các Candidate Memory đã tạo.
|
|
396
|
-
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
397
|
-
- Đề xuất người dùng xem xét.
|
|
398
|
-
- Gửi yêu cầu phê duyệt thông qua:
|
|
399
|
-
- `/learn`
|
|
400
|
-
- `qk-project-memory`
|
|
401
|
-
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
402
|
-
|
|
403
|
-
```
|
|
404
|
-
.ai-local/candidates/ ──(Approve)──> .agents/knowledge/index.yaml
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
408
|
-
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
409
|
-
|
|
410
|
-
---
|
|
411
|
-
|
|
412
|
-
### Ignore (Không đưa vào Memory)
|
|
413
|
-
Không lưu:
|
|
414
|
-
- Trace log của một session đơn lẻ.
|
|
415
|
-
- Temporary debugging data.
|
|
416
|
-
- Output của một lần chạy test/scan.
|
|
417
|
-
- Report health tạm thời của một đợt kiểm tra.
|
|
418
|
-
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
419
|
-
- Thông tin không có khả năng tái sử dụng.
|
|
420
|
-
- 👉 *Domain Ignore:* Lockfile changes tạm thời trong local cache.
|
|
421
|
-
|
|
422
|
-
---
|
|
423
|
-
|
|
424
|
-
### Golden Rule
|
|
425
|
-
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
426
|
-
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
427
|
-
|
|
428
|
-
---
|
|
429
|
-
---
|
|
430
|
-
---
|
|
431
|
-
---
|
|
432
|
-
|
|
433
|
-
## Preconditions
|
|
434
|
-
- [ ] Current version and target version are specified
|
|
435
|
-
- [ ] Rollback strategy is defined (git tag OR package-lock.json snapshot)
|
|
436
|
-
- [ ] Existing test suite is available to verify after upgrade
|
|
437
|
-
|
|
438
|
-
```
|
|
439
|
-
On missing precondition:
|
|
440
|
-
EXIT: BLOCKED
|
|
441
|
-
Message: "Rollback plan required before any major upgrade. Specify: target version + rollback method."
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
## Scope
|
|
445
|
-
- ✅ Read official Changelog/Migration Guide for breaking changes
|
|
446
|
-
- ✅ Apply incremental upgrades (not big-bang)
|
|
447
|
-
- ✅ Verify each step with existing tests
|
|
448
|
-
- ✅ Document rollback procedure
|
|
449
|
-
|
|
450
|
-
## Non-Goals
|
|
451
|
-
- ❌ Blindly run `npm update` — only targeted upgrades
|
|
452
|
-
- ❌ Skip reading Changelog for major version bumps
|
|
453
|
-
- ❌ Upgrade multiple major versions at once (one at a time)
|
|
454
|
-
|
|
455
|
-
## Priority Order
|
|
456
|
-
|
|
457
|
-
| Priority | Check | Skip Threshold |
|
|
458
|
-
|----------|-------|----------------|
|
|
459
|
-
| P1 | Read Changelog for breaking changes | Never |
|
|
460
|
-
| P2 | Snapshot rollback point (git tag) | Never |
|
|
461
|
-
| P3 | Apply upgrade to package.json only | Never |
|
|
462
|
-
| P4 | Run tests to detect breakage | Never |
|
|
463
|
-
| P5 | Fix breaking changes if minor (< 3 files affected) | Budget < 40% |
|
|
464
|
-
| P6 | Update documentation/README | Budget < 70% |
|
|
465
|
-
|
|
466
|
-
## Workflow
|
|
467
|
-
|
|
468
|
-
### Phase 1 — Breaking Change Analysis
|
|
469
|
-
|
|
470
|
-
**Steps:**
|
|
471
|
-
1. `view_file` or `read_url` — read official Changelog for target version. **Đồng thời kiểm tra Security Advisory (CVEs) của version cũ.**
|
|
472
|
-
2. List all `BREAKING CHANGE` entries
|
|
473
|
-
3. Map each breaking change to affected files in current codebase (`grep_search`)
|
|
474
|
-
4. *Lưu ý:* Nếu đây là bản vá bảo mật khẩn cấp (Security Patch), phải ưu tiên nâng cấp ngay cả khi có minor breaking changes, nhưng vẫn tuân thủ rollback plan.
|
|
475
|
-
|
|
476
|
-
**Decision:**
|
|
477
|
-
```
|
|
478
|
-
IF 0 breaking changes
|
|
479
|
-
→ Confidence: HIGH → go to Phase 2 (minor/patch upgrade)
|
|
480
|
-
|
|
481
|
-
IF 1–3 breaking changes, all in < 5 files
|
|
482
|
-
→ Confidence: MEDIUM → go to Phase 2
|
|
483
|
-
|
|
484
|
-
IF > 3 breaking changes OR affects core files
|
|
485
|
-
→ EXIT: BLOCKED — this is architectural migration, not an upgrade
|
|
486
|
-
→ Recommend: plan as a dedicated migration project
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
### Phase 2 — Rollback Snapshot
|
|
490
|
-
|
|
491
|
-
**Steps:**
|
|
492
|
-
1. Verify `git tag` or instruct user to create one: `git tag pre-upgrade-[package]-[version]`
|
|
493
|
-
2. Copy `package-lock.json` snapshot reference
|
|
494
|
-
3. Document exact rollback command:
|
|
495
|
-
```
|
|
496
|
-
Rollback: git checkout pre-upgrade-[package]-[version]
|
|
497
|
-
OR: npm install [package]@[previous-version]
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
**Exit When:** Rollback procedure documented → go to Phase 3
|
|
501
|
-
|
|
502
|
-
### Phase 3 — Incremental Upgrade
|
|
503
|
-
|
|
504
|
-
**Steps:**
|
|
505
|
-
1. Edit `package.json` — change version (one package at a time)
|
|
506
|
-
2. Apply code changes for breaking changes (using `replace_file_content`)
|
|
507
|
-
3. Run: `npm install` (1 command)
|
|
508
|
-
|
|
509
|
-
**Decision:**
|
|
510
|
-
```
|
|
511
|
-
IF install succeeds
|
|
512
|
-
→ go to Phase 4
|
|
513
|
-
|
|
514
|
-
IF install fails (peer dep conflict)
|
|
515
|
-
→ EXIT: PARTIAL — report conflict, suggest resolution
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
### Phase 4 — Verification
|
|
519
|
-
|
|
520
|
-
**Steps:**
|
|
521
|
-
1. Run tests: `npm test` (2nd command)
|
|
522
|
-
2. Parse test results for failures
|
|
523
|
-
|
|
524
|
-
**Decision:**
|
|
525
|
-
```
|
|
526
|
-
IF all tests pass
|
|
527
|
-
→ EXIT: SUCCESS
|
|
528
|
-
|
|
529
|
-
IF 1–3 tests fail (related to upgrade)
|
|
530
|
-
→ Fix if minor (< 10 lines change per fix)
|
|
531
|
-
→ EXIT: PARTIAL
|
|
532
|
-
|
|
533
|
-
IF > 3 tests fail OR core tests fail
|
|
534
|
-
→ EXIT: FAILED — rollback recommended
|
|
535
|
-
→ Provide exact rollback command
|
|
536
|
-
```
|
|
537
|
-
|
|
538
|
-
## Confidence Model
|
|
539
|
-
|
|
540
|
-
| Level | Condition | Action |
|
|
541
|
-
|-------|-----------|--------|
|
|
542
|
-
| HIGH | Changelog read, breaking changes mapped, tests pass | Proceed |
|
|
543
|
-
| MEDIUM | Changelog read, some uncertainties remain | Proceed with caution, note risks |
|
|
544
|
-
| LOW | Cannot access Changelog or no tests available | EXIT: BLOCKED |
|
|
545
|
-
|
|
546
|
-
## Severity
|
|
547
|
-
|
|
548
|
-
| Level | Definition |
|
|
549
|
-
|-------|-----------|
|
|
550
|
-
| CRITICAL | Core authentication/security package upgrade |
|
|
551
|
-
| HIGH | ORM, framework, or router upgrade |
|
|
552
|
-
| MEDIUM | Utility library, build tool upgrade |
|
|
553
|
-
| LOW | Dev dependency, formatter upgrade |
|
|
554
|
-
|
|
555
|
-
## Evidence Format
|
|
556
|
-
|
|
557
|
-
```
|
|
558
|
-
[SEVERITY] package: [name] v[old] → v[new]
|
|
559
|
-
Breaking changes: [list from Changelog]
|
|
560
|
-
Affected files: [N files — list]
|
|
561
|
-
Confidence: [HIGH|MEDIUM|LOW]
|
|
562
|
-
Rollback: git checkout [tag] OR npm install [name]@[old-version]
|
|
563
|
-
```
|
|
564
|
-
|
|
565
|
-
## Rollback Procedure (Required Output)
|
|
566
|
-
|
|
567
|
-
Every upgrade must document:
|
|
568
|
-
```
|
|
569
|
-
🔄 Rollback Procedure
|
|
570
|
-
─────────────────────────────────────────────────
|
|
571
|
-
Method 1 (Git): git checkout [tag-name]
|
|
572
|
-
Method 2 (npm): npm install [package]@[previous-version]
|
|
573
|
-
Snapshot tag: [pre-upgrade-[package]-[date]]
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
## Handoff Contract
|
|
577
|
-
|
|
578
|
-
### Consumes
|
|
579
|
-
```json
|
|
580
|
-
{
|
|
581
|
-
"from": "user",
|
|
582
|
-
"required_fields": ["package_name", "target_version", "rollback_method"],
|
|
583
|
-
"optional_fields": ["changelog_url", "affected_scope"]
|
|
584
|
-
}
|
|
585
|
-
```
|
|
586
|
-
|
|
587
|
-
### Produces
|
|
588
|
-
```json
|
|
589
|
-
{
|
|
590
|
-
"to": "qk-validation-gate",
|
|
591
|
-
"output_fields": ["upgraded_packages", "breaking_changes_fixed", "rollback_procedure", "exit_code"]
|
|
592
|
-
}
|
|
593
|
-
```
|
|
594
|
-
|
|
595
|
-
---
|
|
596
|
-
|
|
597
|
-
## Escalation Rules
|
|
598
|
-
```
|
|
599
|
-
BLOCKED: Missing rollback plan
|
|
600
|
-
Questions:
|
|
601
|
-
1. Bạn muốn rollback bằng git tag hay snapshot?
|
|
602
|
-
2. Có test suite nào để chạy sau khi upgrade không?
|
|
603
|
-
Recommended Assumptions: none
|
|
604
|
-
```
|
|
605
|
-
---
|
|
606
|
-
|
|
607
|
-
## Retry Policy
|
|
608
|
-
```
|
|
609
|
-
Install fails due to peer conflict
|
|
610
|
-
└─ run with --legacy-peer-deps
|
|
611
|
-
├─ PASS → log as PARTIAL
|
|
612
|
-
└─ FAIL → DO NOT retry again
|
|
613
|
-
```
|
|
614
|
-
---
|
|
615
|
-
## Exit Codes
|
|
616
|
-
|
|
617
|
-
| Code | Meaning | When |
|
|
618
|
-
|------|---------|------|
|
|
619
|
-
| SUCCESS | Upgrade complete, all tests pass | Clean upgrade |
|
|
620
|
-
| PARTIAL | Upgrade done, some tests fail or peer conflict | Needs follow-up |
|
|
621
|
-
| BLOCKED | No rollback plan or too many breaking changes | Plan migration instead |
|
|
622
|
-
| FAILED | Tests fail after upgrade, rollback recommended | Provide rollback command |
|
|
623
|
-
|
|
624
|
-
---
|
|
625
|
-
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Auto-generated from SKILL.md frontmatter
|
|
2
|
-
schema_version: 1
|
|
3
|
-
id: "qk-system-evolution"
|
|
4
|
-
version: "9.1.0"
|
|
5
|
-
description: "Nâng cấp thư viện/framework an toàn với rollback plan bắt buộc — incremental, không big-bang."
|
|
6
|
-
tools:
|
|
7
|
-
- "filesystem"
|
|
8
|
-
- "terminal"
|
|
9
|
-
knowledge:
|
|
10
|
-
owns:
|
|
11
|
-
- "upgrade-strategy"
|
|
12
|
-
- "rollback-plan"
|
|
13
|
-
references:
|
|
14
|
-
- "testing"
|
|
15
|
-
- "architecture"
|
|
16
|
-
- "security"
|
|
17
|
-
- "anti-patterns"
|
|
18
|
-
eval:
|
|
19
|
-
scorecard: "evals/scorecard.yaml"
|
|
20
|
-
decision_boundary:
|
|
21
|
-
owns:
|
|
22
|
-
- "qk-system-evolution"
|
|
23
|
-
does_not_own: []
|
|
24
|
-
conflicts_with: []
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
name: qk-system-evolution-eval
|
|
2
|
-
description: Đánh giá độ an toàn của quy trình nâng cấp System & Framework
|
|
3
|
-
version: 9.1.0
|
|
4
|
-
threshold: 90 # Việc nâng cấp framework mang rủi ro sập hệ thống rất cao
|
|
5
|
-
|
|
6
|
-
metrics:
|
|
7
|
-
- id: rollback_safety
|
|
8
|
-
name: Cơ chế Rollback bắt buộc
|
|
9
|
-
description: Agent có thiết lập và ghi chép lại lệnh rollback trước khi nâng cấp không?
|
|
10
|
-
weight: 40
|
|
11
|
-
criteria:
|
|
12
|
-
- Phải yêu cầu/lưu lại Rollback command (git tag / version trước đó) trước khi sửa code (40đ)
|
|
13
|
-
|
|
14
|
-
- id: changelog_awareness
|
|
15
|
-
name: Phân tích Breaking Changes
|
|
16
|
-
description: Agent có đọc Changelog thay vì nhắm mắt upgrade không?
|
|
17
|
-
weight: 35
|
|
18
|
-
criteria:
|
|
19
|
-
- Quét và liệt kê các Breaking Changes từ Changelog/Migration Guide trước khi chạy (35đ)
|
|
20
|
-
|
|
21
|
-
- id: incremental_upgrade
|
|
22
|
-
name: Nâng cấp gia tăng (Incremental)
|
|
23
|
-
description: Có nâng cấp từng phần và chạy test xác minh thay vì Big-bang không?
|
|
24
|
-
weight: 25
|
|
25
|
-
criteria:
|
|
26
|
-
- Chạy test ngay sau khi nâng cấp 1 package thay vì update hàng loạt (25đ)
|