ai-developer-skill-os 1.2.0 → 1.3.2

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.
Files changed (29) hide show
  1. package/README.md +61 -17
  2. package/bin/install.js +105 -41
  3. package/docs/HUONG_DAN_SU_DUNG.md +33 -9
  4. package/package.json +34 -34
  5. package/rename.js +64 -0
  6. package/skills/backend/qk-auth-security/SKILL.md +1 -1
  7. package/skills/backend/qk-backend-architecture/SKILL.md +1 -1
  8. package/skills/backend/{database-engineer → qk-database-engineer}/SKILL.md +1 -1
  9. package/skills/backend/qk-deployment/SKILL.md +1 -1
  10. package/skills/engineering/{agent-orchestrator → qk-agent-orchestrator}/SKILL.md +1 -1
  11. package/skills/engineering/{api-integration → qk-api-integration}/SKILL.md +1 -1
  12. package/skills/engineering/{bug-fix → qk-bug-fix}/SKILL.md +1 -1
  13. package/skills/engineering/qk-context-manager/SKILL.md +1 -1
  14. package/skills/engineering/{git-engineer → qk-git-engineer}/SKILL.md +1 -1
  15. package/skills/engineering/qk-migration/SKILL.md +1 -1
  16. package/skills/engineering/qk-project-audit/SKILL.md +1 -1
  17. package/skills/engineering/qk-refactor/SKILL.md +1 -1
  18. package/skills/frontend/{accessibility-audit → qk-accessibility-audit}/SKILL.md +1 -1
  19. package/skills/frontend/{component-generator → qk-component-generator}/SKILL.md +1 -1
  20. package/skills/frontend/{design-system → qk-design-system}/SKILL.md +1 -1
  21. package/skills/frontend/{form-builder → qk-form-builder}/SKILL.md +1 -1
  22. package/skills/frontend/{frontend-architecture → qk-frontend-architecture}/SKILL.md +1 -1
  23. package/skills/frontend/{frontend-debug → qk-frontend-debug}/SKILL.md +1 -1
  24. package/skills/frontend/{frontend-performance → qk-frontend-performance}/SKILL.md +1 -1
  25. package/skills/frontend/qk-frontend-testing/SKILL.md +1 -1
  26. package/skills/frontend/{state-management → qk-state-management}/SKILL.md +1 -1
  27. package/skills/frontend/{table-crud-generator → qk-table-crud-generator}/SKILL.md +1 -1
  28. package/skills/frontend/qk-ui-builder/SKILL.md +1 -1
  29. package/skills.json +46 -46
package/README.md CHANGED
@@ -1,18 +1,23 @@
1
1
  # 🚀 AI Developer Skill OS
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/ai-developer-skill-os.svg)](https://badge.fury.io/js/ai-developer-skill-os)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![Author](https://img.shields.io/badge/Author-Quang%20Kh%C3%A1nh-blue.svg)](https://github.com/phamquangkhanh2999)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
5
6
 
6
- **A multi-agent skill package for AI coding assistants (Claude Code, Cursor, Windsurf, Antigravity/Gemini).**
7
- Hệ điều hành kỹ năng (Skill OS) giúp biến AI của bạn từ một "cỗ máy sinh code" thành một Senior Software Engineer thực thụ với quy trình làm việc chuẩn mực.
8
-
9
- > Tác giả: **Quang Khánh**
7
+ > **"Biến mọi AI Code Editor (Cursor, Windsurf, Cline) thành một Senior Engineer thực thụ với 23 kỹ năng được lập trình sẵn."**
10
8
 
11
9
  ---
12
10
 
13
- ## 🌟 Tính năng nổi bật (Features)
11
+ ## 🌟 Tại sao bạn cần Skill OS?
12
+
13
+ Các AI Editor hiện tại rất thông minh, nhưng nếu không có quy trình rõ ràng, chúng thường **lan man, tự ý sửa code lung tung, hoặc viết code không theo chuẩn kiến trúc**.
14
+
15
+ **AI Developer Skill OS (by Quang Khánh)** giải quyết triệt để vấn đề này bằng cách:
16
+ - 🧠 **Ép AI tư duy theo Workflow (Chain-of-Thought):** Phân tích trước, code sau.
17
+ - 🛡️ **Scope & Non-goals rõ ràng:** Khoá chặt giới hạn, tuyệt đối không cho AI sửa hỏng các file không liên quan.
18
+ - 🎨 **Output chuyên nghiệp:** Mọi câu trả lời của AI đều được định dạng thành bảng biểu, báo cáo y hệt một hệ thống thật.
14
19
 
15
- Bộ Skill OS cung cấp **23 kỹ năng chuyên biệt**, chia làm 3 nhóm chính:
20
+ ### Hệ thống 23 Kỹ năng (Skillset)
16
21
  - 🛠️ **Engineering Core (8 skills):** Agent Orchestrator (Lên kế hoạch), Context Manager, Project Audit, Bug Fix, Refactor, API Integration, Migration, Git Engineer.
17
22
  - 🎨 **Frontend (11 skills):** Frontend Architecture, Design System, UI Builder, Component Generator, State Management, Form Builder, Table CRUD, Debug, Testing, Performance, A11Y Audit.
18
23
  - ⚙️ **Backend (4 skills):** Backend Architecture, Database Engineer, Auth & Security, Deployment (DevOps).
@@ -84,23 +89,62 @@ Tạo file `.github/copilot-instructions.md` và dán đoạn prompt tương t
84
89
 
85
90
  ## 🚀 Cách gọi lệnh Skill chuyên nghiệp (Usage)
86
91
 
87
- AI sẽ tự động nhận diện skill qua ngữ cảnh, nhưng để chắc chắn 100% và tiết kiệm thời gian gõ prompt, bạn hãy dùng cú pháp lệnh độc quyền: **`./qk [tên-skill]`**
92
+ AI sẽ tự động nhận diện skill qua ngữ cảnh, nhưng để chắc chắn 100% và tiết kiệm thời gian gõ prompt, bạn hãy dùng cú pháp lệnh độc quyền: **`./qk-[tên-skill]`**
88
93
 
89
94
  Dưới đây là các ví dụ cụ thể để bạn copy - paste và trải nghiệm ngay:
90
95
 
91
- ### 1. Khi bắt đầu dự án / Nhờ AI lên kế hoạch (Planning)
92
- > **`./qk agent-orchestrator`** Hãy lên kế hoạch làm tính năng Giỏ Hàng cho tôi. Nhớ gọi thêm **`./qk context-manager`** để kiểm tra thư mục hiện tại có những file gì trước nhé.
96
+ ### 1. Nhờ AI lên kế hoạch (Planning) & Kiến trúc
97
+ > **`./qk-agent-orchestrator`** Hãy lên kế hoạch làm tính năng Giỏ Hàng cho tôi. Nhớ gọi thêm **`./qk-context-manager`** để đọc cấu trúc dự án trước nhé.
98
+
99
+ ### 2. Xây dựng Giao diện (Frontend/UI)
100
+ > **`./qk-ui-builder`** & **`./qk-design-system`** Hãy tạo cho tôi một màn hình Đăng Nhập (Login) xịn xò. Đảm bảo Responsive và dùng đúng chuẩn Component.
101
+
102
+ ### 3. Thiết kế Database (Backend)
103
+ > **`./qk-database-engineer`** Hãy viết cho tôi schema Prisma cho bảng Product và User có quan hệ 1-N. Tối ưu index cho truy vấn nhanh.
104
+
105
+ ### 4. Tìm và Diệt Bug (Debugging)
106
+ > **`./qk-frontend-debug`** & **`./qk-bug-fix`** Code đang bị crash với lỗi `Hydration error`. Hãy tìm nguyên nhân gốc rễ và sửa dứt điểm giúp tôi.
107
+
108
+ ---
109
+
110
+ ## 💡 Mẹo & Workflow Thực Chiến (Best Practices)
93
111
 
94
- ### 2. Khi muốn tạo Giao diện (UI)
95
- > **`./qk ui-builder`** & **`./qk design-system`** Hãy tạo cho tôi một màn hình Đăng Nhập (Login) sử dụng Tailwind CSS.
112
+ Để khai thác tối đa sức mạnh của 23 kỹ năng, bí quyết là **kết hợp (chaining) nhiều skill** lại với nhau trong cùng một luồng công việc. Dưới đây là các Workflow kinh điển:
96
113
 
97
- ### 3. Khi muốn làm việc với Database (Backend)
98
- > **`./qk database-engineer`** Hãy viết cho tôi schema Prisma cho bảng Product User quan hệ 1-N.
114
+ ### 🌟 1. Workflow Bắt đầu một New Chat (Bắt buộc)
115
+ Khi mở một New Chat, AI hoàn toàn chưa biết về dự án. Đừng bắt code ngay!
116
+ * **Bước 1:** `> Dùng ./qk-context-manager để đọc cấu trúc toàn bộ dự án này.`
117
+ * **Bước 2:** `> Dùng ./qk-agent-orchestrator để phân tích yêu cầu sau đây và lên kế hoạch: [Yêu cầu của bạn]`
99
118
 
100
- ### 4. Khi gặp Bug cứng đầu
101
- > **`./qk frontend-debug`** & **`./qk bug-fix`** Code đang bị crash với lỗi `Hydration error`. Hãy tìm hiểu nguyên nhân gốc rễ và sửa nó giúp tôi.
119
+ ### 🌟 2. Workflow Làm tính năng mới (VD: Tích hợp API)
120
+ Muốn tạo một màn hình hiển thị danh sách từ API trả về? Hãy gõ:
121
+ * `> Hãy dùng ./qk-api-integration để tạo file gọi API fetch danh sách Users.`
122
+ * `> Tiếp theo dùng ./qk-state-management để lưu data này vào Zustand/Redux.`
123
+ * `> Cuối cùng dùng ./qk-ui-builder để vẽ màn hình Table hiển thị data đó.`
124
+
125
+ ### 🌟 3. Workflow Chống "Phá Code" (Safe Refactor)
126
+ Trước khi đổi một cấu trúc lớn, hãy bắt AI dò mìn:
127
+ * `> Hãy chạy ./qk-project-audit để dò xem việc đổi tên biến X có ảnh hưởng đến các component khác không.`
128
+ * `> OK, giờ hãy dùng ./qk-refactor để sửa lại một cách an toàn.`
129
+
130
+ ---
131
+
132
+ ## 💎 Danh sách 23+ Kỹ Năng Độc Quyền
133
+
134
+ | Phân hệ | Kỹ năng tiêu biểu | Chức năng chính |
135
+ |---------|-------------------|-----------------|
136
+ | 🏗️ **Engineering** | `qk-project-audit`, `qk-agent-orchestrator` | Kiểm toán dự án, lập kế hoạch, quản lý Git, Refactor code. |
137
+ | 🎨 **Frontend** | `qk-ui-builder`, `qk-frontend-performance` | Dựng UI, tối ưu tốc độ, test component, quản lý State. |
138
+ | ⚙️ **Backend** | `qk-database-engineer`, `qk-auth-security` | Thiết kế DB Schema, bảo mật JWT/OAuth, cấu hình CI/CD. |
139
+
140
+ 👉 [Xem danh sách toàn bộ Kỹ năng tại đây](docs/CHI_TIET_SKILLS.md)
141
+
142
+ ---
102
143
 
103
- 👉 [Đọc Hướng Dẫn Sử Dụng chi tiết tại đây](docs/HUONG_DAN_SU_DUNG.md)
144
+ <div align="center">
145
+ <b>Được thiết kế và phát triển bởi Quang Khánh (QK)</b><br>
146
+ <i>Empowering Vietnamese Developers with World-Class AI Workflows.</i>
147
+ </div>
104
148
 
105
149
  ---
106
150
 
package/bin/install.js CHANGED
@@ -2,18 +2,11 @@
2
2
 
3
3
  const fs = require('fs');
4
4
  const path = require('path');
5
+ const readline = require('readline');
5
6
 
6
7
  const sourceDir = path.join(__dirname, '..');
7
8
  let targetDir = path.join(process.cwd(), '.qk-ai-skill-os');
8
9
 
9
- // Check arguments for IDE-specific paths
10
- const args = process.argv.slice(2);
11
- const isGemini = args.includes('--gemini') || args.includes('--antigravity');
12
-
13
- if (isGemini) {
14
- targetDir = path.join(process.cwd(), '.agents', 'skills');
15
- }
16
-
17
10
  function copyRecursiveSync(src, dest) {
18
11
  const exists = fs.existsSync(src);
19
12
  const stats = exists && fs.statSync(src);
@@ -31,41 +24,112 @@ function copyRecursiveSync(src, dest) {
31
24
  }
32
25
  }
33
26
 
34
- console.log('🚀 Đang cài đặt AI Developer Skill OS...');
35
- if (isGemini) {
36
- console.log('⚙️ Chế độ: Gemini / Antigravity IDE (Cài vào thư mục .agents/skills/)');
37
- } else {
38
- console.log('⚙️ Chế độ: Mặc định (Cài vào thư mục .qk-ai-skill-os/)');
39
- }
27
+ const systemPrompt = `[Role]
28
+ You are an elite AI Software Engineer. You must strictly follow the rules in this project.
29
+ Vui lòng tìm đọc danh sách kỹ năng tại file \`./.qk-ai-skill-os/skills.json\`.
30
+
31
+ [Trigger Mechanism]
32
+ Bất cứ khi nào người dùng gõ lệnh bắt đầu bằng \`./qk-[tên-skill]\`, bạn BẮT BUỘC phải đọc file \`SKILL.md\` tương ứng trong thư mục \`./.qk-ai-skill-os/skills/...\` trước khi làm bất cứ việc gì. Đừng bao giờ đoán mò.
33
+
34
+ [Command Arguments]
35
+ Người dùng có thể truyền thêm tham số vào lệnh (ví dụ: \`./qk-ui-builder --fw=react --css=tailwind\`).
36
+ Nếu người dùng sử dụng tham số (argument), bạn BẮT BUỘC phải tuân thủ tuyệt đối các công nghệ/yêu cầu được chỉ định trong tham số đó thay vì dùng mặc định.`;
37
+
38
+ const rl = readline.createInterface({
39
+ input: process.stdin,
40
+ output: process.stdout
41
+ });
42
+
43
+ console.log('🚀 Đang chuẩn bị cài đặt AI Developer Skill OS...\n');
44
+
45
+ const questionText = `Vui lòng chọn IDE/AI Assistant bạn đang sử dụng để tự động cấu hình (Auto-Generate Config):
46
+ (1) Cursor
47
+ (2) Windsurf
48
+ (3) Cline / Roo Code
49
+ (4) Antigravity / Gemini
50
+ (5) Codex
51
+ (6) Kilo Code
52
+ (0) Bỏ qua (Không tạo file config)
53
+
54
+ Nhập số (0-6): `;
55
+
56
+ rl.question(questionText, (answer) => {
57
+ let isGemini = false;
58
+ let ruleFile = null;
40
59
 
41
- const filesAndFolders = [
42
- 'skills',
43
- '_template',
44
- 'docs',
45
- 'skills.json',
46
- 'README.md',
47
- 'CHANGELOG.md',
48
- 'LICENSE'
49
- ];
50
-
51
- try {
52
- if (!fs.existsSync(targetDir)) {
53
- fs.mkdirSync(targetDir, { recursive: true });
60
+ switch(answer.trim()) {
61
+ case '1': ruleFile = '.cursorrules'; break;
62
+ case '2': ruleFile = '.windsurfrules'; break;
63
+ case '3': ruleFile = '.clinerules'; break;
64
+ case '4':
65
+ isGemini = true;
66
+ targetDir = path.join(process.cwd(), '.agents', 'skills');
67
+ ruleFile = path.join('.agents', 'AGENTS.md');
68
+ break;
69
+ case '5': ruleFile = '.codexrules'; break;
70
+ case '6': ruleFile = '.kilorules'; break;
71
+ case '0':
72
+ default:
73
+ console.log('👉 Bỏ qua bước tạo file cấu hình tự động.');
74
+ break;
54
75
  }
55
76
 
56
- filesAndFolders.forEach(item => {
57
- const src = path.join(sourceDir, item);
58
- let dest = path.join(targetDir, item);
59
-
60
- // For Gemini, we dump the contents directly into .agents/skills/
61
- if (fs.existsSync(src)) {
62
- copyRecursiveSync(src, dest);
77
+ if (isGemini) {
78
+ console.log('\n⚙️ Chế độ: Gemini / Antigravity IDE (Cài vào thư mục .agents/)');
79
+ } else {
80
+ console.log('\n⚙️ Chế độ: Mặc định (Cài vào thư mục .qk-ai-skill-os/)');
81
+ }
82
+
83
+ try {
84
+ if (!fs.existsSync(targetDir)) {
85
+ fs.mkdirSync(targetDir, { recursive: true });
63
86
  }
64
- });
65
87
 
66
- console.log(`✅ Đã cài đặt thành công vào thư mục: ${targetDir.replace(process.cwd(), '.')}`);
67
- console.log('\n💡 Tiếp theo, hãy tham khảo tài liệu trong mục .qk-ai-skill-os/docs/HUONG_DAN_SU_DUNG.md để biết cách tương tác với AI nhé!');
68
- } catch (error) {
69
- console.error('❌ Có lỗi xảy ra trong quá trình cài đặt:', error.message);
70
- process.exit(1);
71
- }
88
+ const filesAndFolders = [
89
+ 'skills',
90
+ '_template',
91
+ 'docs',
92
+ 'skills.json',
93
+ 'README.md',
94
+ 'CHANGELOG.md',
95
+ 'LICENSE'
96
+ ];
97
+
98
+ filesAndFolders.forEach(item => {
99
+ const src = path.join(sourceDir, item);
100
+ let dest = path.join(targetDir, item);
101
+
102
+ if (fs.existsSync(src)) {
103
+ copyRecursiveSync(src, dest);
104
+ }
105
+ });
106
+
107
+ if (ruleFile) {
108
+ const fullRulePath = path.join(process.cwd(), ruleFile);
109
+ const ruleDir = path.dirname(fullRulePath);
110
+ if (ruleDir !== process.cwd() && !fs.existsSync(ruleDir)) {
111
+ fs.mkdirSync(ruleDir, { recursive: true });
112
+ }
113
+
114
+ let writeContent = systemPrompt;
115
+ if (isGemini) {
116
+ writeContent = `\n<RULE[ai_skill_os]>\n---\ntrigger: always_on\n---\n${systemPrompt}\n</RULE[ai_skill_os]>\n`;
117
+ }
118
+
119
+ if (fs.existsSync(fullRulePath)) {
120
+ fs.appendFileSync(fullRulePath, "\n\n" + writeContent);
121
+ console.log(`✅ Đã GHI THÊM cấu hình tự động vào file: ${ruleFile}`);
122
+ } else {
123
+ fs.writeFileSync(fullRulePath, writeContent);
124
+ console.log(`✅ Đã TẠO MỚI file cấu hình: ${ruleFile}`);
125
+ }
126
+ }
127
+
128
+ console.log(`✅ Đã cài đặt thư viện thành công vào thư mục: ${targetDir.replace(process.cwd(), '.')}`);
129
+ console.log('\n💡 Hãy tận hưởng trải nghiệm Auto-Config và Command Arguments (VD: ./qk-ui-builder --fw=react)!');
130
+ } catch (error) {
131
+ console.error('❌ Có lỗi xảy ra trong quá trình cài đặt:', error.message);
132
+ } finally {
133
+ rl.close();
134
+ }
135
+ });
@@ -87,33 +87,57 @@ Tạo file `.github/copilot-instructions.md` và dán đoạn prompt tương t
87
87
  ## 4. Cách kiểm tra cài đặt thành công
88
88
 
89
89
  Để biết AI của bạn đã thực sự "nhập môn" bộ Skill OS này chưa, hãy mở khung chat AI trong dự án và gõ cú pháp lệnh chuyên nghiệp sau:
90
- > **`./qk project-audit`** Hãy cho tôi biết bạn sẽ làm những gì.
90
+ > **`./qk-project-audit`** Hãy cho tôi biết bạn sẽ làm những gì.
91
91
 
92
- ✅ **Thành công:** Nếu AI trả lời bằng tiếng Việt, liệt kê đúng các bước khám bệnh (Phase 1, Phase 2, Phase 3...) theo đúng như trong file `SKILL.md` của `project-audit`.
92
+ ✅ **Thành công:** Nếu AI trả lời bằng tiếng Việt, liệt kê đúng các bước khám bệnh (Phase 1, Phase 2, Phase 3...) theo đúng như trong file `SKILL.md` của `qk-project-audit`.
93
93
  ❌ **Thất bại:** Nếu AI trả lời chung chung hoặc bảo không biết skill này là gì, bạn cần kiểm tra lại đường dẫn file cấu hình ở bước trên.
94
94
 
95
95
  ---
96
96
 
97
97
  ## 5. Cách gọi lệnh Skill chuyên nghiệp (Usage)
98
98
 
99
- AI sẽ tự động nhận diện skill qua ngữ cảnh, nhưng cách chuyên nghiệp và tiết kiệm thời gian gõ prompt nhất là bạn sử dụng cú pháp lệnh độc quyền: **`./qk [tên-skill]`**
99
+ AI sẽ tự động nhận diện skill qua ngữ cảnh, nhưng cách chuyên nghiệp và tiết kiệm thời gian gõ prompt nhất là bạn sử dụng cú pháp lệnh độc quyền: **`./qk-[tên-skill]`**
100
100
 
101
101
  Dưới đây là các câu lệnh (prompt) mẫu cực kỳ hiệu quả mà bạn nên dùng:
102
102
 
103
103
  ### 🎯 Ví dụ 1: Nhờ AI lên kế hoạch (Planning)
104
- > **`./qk agent-orchestrator`** Hãy lên kế hoạch làm tính năng Đăng nhập này cho tôi. Nhớ gọi thêm **`./qk context-manager`** để kiểm tra thư mục hiện tại có những file gì trước nhé.
104
+ > **`./qk-agent-orchestrator`** Hãy lên kế hoạch làm tính năng Đăng nhập này cho tôi. Nhớ gọi thêm **`./qk-context-manager`** để kiểm tra thư mục hiện tại có những file gì trước nhé.
105
105
 
106
106
  ### 🎯 Ví dụ 2: Fix lỗi cứng đầu (Bug Fix)
107
- > **`./qk frontend-debug`** & **`./qk bug-fix`** Code đang bị crash với lỗi `Hydration error`. Hãy tìm hiểu nguyên nhân gốc rễ và sửa nó giúp tôi.
107
+ > **`./qk-frontend-debug`** & **`./qk-bug-fix`** Code đang bị crash với lỗi `Hydration error`. Hãy tìm hiểu nguyên nhân gốc rễ và sửa nó giúp tôi.
108
108
 
109
109
  ### 🎯 Ví dụ 3: Review Codebase (Audit)
110
- > **`./qk project-audit`** Hãy kiểm tra nhanh cho tôi thư mục `src/components/` xem có bị vấn đề về hiệu năng hay code smell không.
110
+ > **`./qk-project-audit`** Hãy kiểm tra nhanh cho tôi thư mục `src/components/` xem có bị vấn đề về hiệu năng hay code smell không.
111
111
 
112
112
  ### 🎯 Ví dụ 4: Xây dựng Giao diện Frontend (UI)
113
- > **`./qk ui-builder`** & **`./qk design-system`** Hãy tạo cho tôi một màn hình Danh sách User. Chú ý dùng chuẩn components của thư mục `src/components/ui/` nhé.
113
+ > **`./qk-ui-builder`** & **`./qk-design-system`** Hãy tạo cho tôi một màn hình Danh sách User. Chú ý dùng chuẩn components của thư mục `src/components/ui/` nhé.
114
114
 
115
115
  ### 🎯 Ví dụ 5: Làm việc với API (Backend & Integration)
116
- > **`./qk api-integration`** Tích hợp cái swagger login này vào frontend giúp. Nhớ dùng React Query như chuẩn của project.
116
+ > **`./qk-api-integration`** Tích hợp cái swagger login này vào frontend giúp. Nhớ dùng React Query như chuẩn của project.
117
117
 
118
118
  ### 🎯 Ví dụ 6: Database & Backend
119
- > **`./qk database-engineer`** Hãy viết cho tôi schema Prisma cho bảng Product và User có quan hệ 1-N. Làm theo đúng chuẩn kiến trúc trong skill.
119
+ > **`./qk-database-engineer`** Hãy viết cho tôi schema Prisma cho bảng Product và User có quan hệ 1-N. Làm theo đúng chuẩn kiến trúc trong skill.
120
+
121
+ ---
122
+
123
+ ## 6. 💡 Mẹo & Workflow Thực Chiến (Best Practices)
124
+
125
+ Để khai thác tối đa sức mạnh của 23 kỹ năng, bí quyết là **kết hợp (chaining) nhiều skill** lại với nhau trong cùng một luồng công việc.
126
+
127
+ ### 🌟 Workflow Bắt đầu một New Chat (Bắt buộc)
128
+ Khi mở một New Chat, AI hoàn toàn chưa biết gì về dự án. Đừng bắt nó code ngay!
129
+ * **Bước 1:** `> Dùng ./qk-context-manager để đọc cấu trúc toàn bộ dự án này.`
130
+ * **Bước 2:** `> Dùng ./qk-agent-orchestrator để phân tích yêu cầu sau đây và lên kế hoạch: [Yêu cầu của bạn]`
131
+
132
+ ### 🌟 Workflow Làm tính năng mới (VD: Tích hợp API)
133
+ Muốn tạo một màn hình hiển thị danh sách từ API trả về? Hãy gõ 1 lượt các lệnh:
134
+ * `> Hãy dùng ./qk-api-integration để tạo file gọi API fetch danh sách Users.`
135
+ * `> Tiếp theo dùng ./qk-state-management để lưu data này vào Zustand/Redux.`
136
+ * `> Cuối cùng dùng ./qk-ui-builder để vẽ màn hình Table hiển thị data đó.`
137
+
138
+ ### 🌟 Workflow Chống "Phá Code" (Safe Refactor)
139
+ Trước khi đổi một cấu trúc lớn, hãy bắt AI dò mìn:
140
+ * `> Hãy chạy ./qk-project-audit để dò xem việc đổi tên biến X có ảnh hưởng đến các component khác không.`
141
+ * `> OK, giờ hãy dùng ./qk-refactor để sửa lại một cách an toàn.`
142
+
143
+ 👉 Chúc bạn tận hưởng cảm giác code như một Tech Lead thực thụ!
package/package.json CHANGED
@@ -1,34 +1,34 @@
1
- {
2
- "name": "ai-developer-skill-os",
3
- "version": "1.2.0",
4
- "description": "Multi-agent skill package cho AI coding agents (Claude, Cursor, Windsurf, Antigravity) với 23 skills chuyên nghiệp.",
5
- "main": "bin/install.js",
6
- "bin": {
7
- "ai-developer-skill-os": "bin/install.js",
8
- "ai-skill": "bin/install.js"
9
- },
10
- "scripts": {
11
- "test": "echo \"Error: no test specified\" && exit 1"
12
- },
13
- "repository": {
14
- "type": "git",
15
- "url": "git+https://github.com/phamquangkhanh2999/ai-developer-skill-os.git"
16
- },
17
- "keywords": [
18
- "ai",
19
- "claude",
20
- "cursor",
21
- "windsurf",
22
- "skills",
23
- "developer",
24
- "agent",
25
- "prompts",
26
- "framework"
27
- ],
28
- "author": "Quang Khánh",
29
- "license": "MIT",
30
- "bugs": {
31
- "url": "https://github.com/phamquangkhanh2999/ai-developer-skill-os/issues"
32
- },
33
- "homepage": "https://github.com/phamquangkhanh2999/ai-developer-skill-os#readme"
34
- }
1
+ {
2
+ "name": "ai-developer-skill-os",
3
+ "version": "1.3.2",
4
+ "description": "Multi-agent skill package cho AI coding agents (Claude, Cursor, Windsurf, Antigravity) với 23 skills chuyên nghiệp.",
5
+ "main": "bin/install.js",
6
+ "bin": {
7
+ "ai-developer-skill-os": "bin/install.js",
8
+ "ai-skill": "bin/install.js"
9
+ },
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/phamquangkhanh2999/ai-developer-skill-os.git"
16
+ },
17
+ "keywords": [
18
+ "ai",
19
+ "claude",
20
+ "cursor",
21
+ "windsurf",
22
+ "skills",
23
+ "developer",
24
+ "agent",
25
+ "prompts",
26
+ "framework"
27
+ ],
28
+ "author": "Quang Khánh",
29
+ "license": "MIT",
30
+ "bugs": {
31
+ "url": "https://github.com/phamquangkhanh2999/ai-developer-skill-os/issues"
32
+ },
33
+ "homepage": "https://github.com/phamquangkhanh2999/ai-developer-skill-os#readme"
34
+ }
package/rename.js ADDED
@@ -0,0 +1,64 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const { execSync } = require('child_process');
4
+
5
+ const skillsDir = 'skills';
6
+ const categories = fs.readdirSync(skillsDir).filter(f => fs.statSync(path.join(skillsDir, f)).isDirectory());
7
+
8
+ categories.forEach(category => {
9
+ const catPath = path.join(skillsDir, category);
10
+ const skills = fs.readdirSync(catPath).filter(f => fs.statSync(path.join(catPath, f)).isDirectory());
11
+ skills.forEach(skill => {
12
+ if (!skill.startsWith('qk-')) {
13
+ const oldPath = path.join(catPath, skill).replace(/\\/g, '/');
14
+ const newPath = path.join(catPath, 'qk-' + skill).replace(/\\/g, '/');
15
+ try {
16
+ console.log(`Đang đổi tên: ${oldPath} -> ${newPath}`);
17
+ execSync(`git mv "${oldPath}" "${newPath}"`);
18
+ } catch(e) {
19
+ console.error('LỖI (Hãy chắc chắn bạn đã tắt hoàn toàn IDE/Cursor đang mở folder này):', e.message);
20
+ }
21
+ }
22
+ });
23
+ });
24
+
25
+ // Update skills.json
26
+ const skillsJsonPath = 'skills.json';
27
+ let skillsData = JSON.parse(fs.readFileSync(skillsJsonPath, 'utf8'));
28
+
29
+ // Fix entries and modify their paths
30
+ if(skillsData.skills) {
31
+ skillsData.skills = skillsData.skills.map(s => {
32
+ if(!s.name.startsWith('qk-')) {
33
+ s.name = 'qk-' + s.name;
34
+ const parts = s.path.split('/');
35
+ const skillFolder = parts[2];
36
+ if(!skillFolder.startsWith('qk-')) {
37
+ parts[2] = 'qk-' + skillFolder;
38
+ }
39
+ s.path = parts.join('/');
40
+ }
41
+ return s;
42
+ });
43
+ }
44
+ fs.writeFileSync(skillsJsonPath, JSON.stringify(skillsData, null, 2));
45
+
46
+ // Update SKILL.md names
47
+ categories.forEach(category => {
48
+ const catPath = path.join(skillsDir, category);
49
+ const skills = fs.readdirSync(catPath).filter(f => fs.statSync(path.join(catPath, f)).isDirectory());
50
+ skills.forEach(skill => {
51
+ if (skill.startsWith('qk-')) {
52
+ const skillMdPath = path.join(catPath, skill, 'SKILL.md');
53
+ if (fs.existsSync(skillMdPath)) {
54
+ let content = fs.readFileSync(skillMdPath, 'utf8');
55
+ content = content.replace(/^name:\s*([a-zA-Z0-9-]+)\s*$/m, (match, p1) => {
56
+ if (!p1.startsWith('qk-')) return 'name: qk-' + p1;
57
+ return match;
58
+ });
59
+ fs.writeFileSync(skillMdPath, content);
60
+ }
61
+ }
62
+ });
63
+ });
64
+ console.log('✅ Đã đổi tên thành công toàn bộ sang hệ qk-* !');
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-
2
+ name: qk-
3
3
  description: >-
4
4
  Triển khai tính năng đăng nhập (JWT, OAuth), phân quyền (RBAC) và bảo vệ app khỏi các lỗ hổng OWASP.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-
2
+ name: qk-
3
3
  description: >-
4
4
  Kiểm soát cấu trúc backend, ép buộc tuân thủ mô hình Layer (Controller/Service/Repository) và vị trí file.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: database-engineer
2
+ name: qk-database-engineer
3
3
  description: >-
4
4
  Thiết kế database schema, viết script migration và tối ưu truy vấn cho SQL/NoSQL bằng ORM (Prisma, Drizzle...).
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-deployment
2
+ name: qk-deployment
3
3
  description: >-
4
4
  Cấu hình CI/CD pipelines, tạo Dockerfile và thiết lập môi trường để deploy lên Vercel, AWS hoặc VPS.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agent-orchestrator
2
+ name: qk-agent-orchestrator
3
3
  description: >-
4
4
  Phân tích yêu cầu, lên kế hoạch thực thi chi tiết và điều phối các tác vụ cho đúng skill. Không tự viết code.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: api-integration
2
+ name: qk-api-integration
3
3
  description: >-
4
4
  Chuyển đổi tài liệu API (curl, swagger...) thành code tích hợp frontend chuẩn xác, có type an toàn và xử lý lỗi.
5
5
  version: 2.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: bug-fix
2
+ name: qk-bug-fix
3
3
  description: >-
4
4
  Chẩn đoán và sửa lỗi an toàn. Tái hiện lỗi, tìm nguyên nhân gốc rễ và áp dụng bản sửa lỗi tối thiểu, có kiểm chứng.
5
5
  version: 2.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-context-manager
2
+ name: qk-context-manager
3
3
  description: >-
4
4
  Xác định các file cần thiết, tóm tắt kiến trúc và quản lý bộ nhớ ngữ cảnh để tránh tràn bộ nhớ.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: git-engineer
2
+ name: qk-git-engineer
3
3
  description: >-
4
4
  Viết commit message chuẩn Conventional Commits, mô tả Pull Request, Changelog và Release Notes chuyên nghiệp.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-migration
2
+ name: qk-migration
3
3
  description: >-
4
4
  Nâng cấp dependency, chuyển đổi framework và thay thế thư viện một cách an toàn với chiến lược không downtime.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-project-audit
2
+ name: qk-project-audit
3
3
  description: >-
4
4
  Kiểm toán toàn bộ dự án để phát hiện bug ẩn, rủi ro bảo mật, vấn đề hiệu năng và nợ kỹ thuật trước khi sửa code.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-refactor
2
+ name: qk-refactor
3
3
  description: >-
4
4
  Tái cấu trúc và dọn dẹp mã nguồn để dễ bảo trì hơn mà không làm thay đổi logic hoạt động bên ngoài.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: accessibility-audit
2
+ name: qk-accessibility-audit
3
3
  description: >-
4
4
  Kiểm tra và sửa lỗi khả năng tiếp cận (a11y/WCAG). Đảm bảo hỗ trợ phím, screen reader và semantic HTML.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: component-generator
2
+ name: qk-component-generator
3
3
  description: >-
4
4
  Tạo các UI Component độc lập, tái sử dụng được, có type an toàn và tuân thủ chuẩn design system.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: design-system
2
+ name: qk-design-system
3
3
  description: >-
4
4
  Ép buộc sử dụng design system, component library và token hiện có, ngăn chặn việc viết HTML/CSS rác.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: form-builder
2
+ name: qk-form-builder
3
3
  description: >-
4
4
  Xây dựng Form chuẩn xác với quản lý trạng thái, validate dữ liệu (Zod, Yup) và xử lý hiển thị lỗi.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: frontend-architecture
2
+ name: qk-frontend-architecture
3
3
  description: >-
4
4
  Phân tích cấu trúc thư mục frontend và quyết định vị trí đặt file chuẩn xác theo kiến trúc hiện tại.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: frontend-debug
2
+ name: qk-frontend-debug
3
3
  description: >-
4
4
  Chẩn đoán và sửa các lỗi đặc thù frontend như Hydration error, infinite re-render, stale closure và vỡ CSS.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: frontend-performance
2
+ name: qk-frontend-performance
3
3
  description: >-
4
4
  Tối ưu hóa hiệu năng frontend: giảm kích thước bundle, chặn re-render thừa, lazy load và cải thiện Web Vitals.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-frontend-testing
2
+ name: qk-frontend-testing
3
3
  description: >-
4
4
  Viết Unit, Component và E2E test bằng Jest, Vitest, RTL, Cypress. Tập trung vào hành vi người dùng.
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: state-management
2
+ name: qk-state-management
3
3
  description: >-
4
4
  Xác định và triển khai chiến lược quản lý state phù hợp (Zustand, Redux, React Query, Local State).
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: table-crud-generator
2
+ name: qk-table-crud-generator
3
3
  description: >-
4
4
  Tạo các bảng dữ liệu admin với đầy đủ tính năng phân trang, sắp xếp, lọc và thao tác thêm/sửa/xóa (CRUD).
5
5
  version: 1.0.0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qk-ui-builder
2
+ name: qk-ui-builder
3
3
  description: >-
4
4
  Xây dựng các màn hình và layout phức tạp từ yêu cầu, tái sử dụng component và đảm bảo responsive.
5
5
  version: 1.0.0
package/skills.json CHANGED
@@ -7,8 +7,8 @@
7
7
  "homepage": "https://github.com/phamquangkhanh2999/ai-developer-skill-os.git",
8
8
  "skills": [
9
9
  {
10
- "name": "agent-orchestrator",
11
- "path": "skills/engineering/agent-orchestrator/SKILL.md",
10
+ "name": "qk-agent-orchestrator",
11
+ "path": "skills/engineering/qk-agent-orchestrator/SKILL.md",
12
12
  "version": "1.0.0",
13
13
  "category": "engineering",
14
14
  "priority": "P0",
@@ -33,8 +33,8 @@
33
33
  "description": "Phân tích yêu cầu, lên kế hoạch thực thi chi tiết và điều phối các tác vụ cho đúng skill. Không tự viết code."
34
34
  },
35
35
  {
36
- "name": "context-manager",
37
- "path": "skills/engineering/context-manager/SKILL.md",
36
+ "name": "qk-context-manager",
37
+ "path": "skills/engineering/qk-context-manager/SKILL.md",
38
38
  "version": "1.0.0",
39
39
  "category": "engineering",
40
40
  "priority": "P0",
@@ -58,8 +58,8 @@
58
58
  "description": "Xác định các file cần thiết, tóm tắt kiến trúc và quản lý bộ nhớ ngữ cảnh để tránh tràn bộ nhớ."
59
59
  },
60
60
  {
61
- "name": "project-audit",
62
- "path": "skills/engineering/project-audit/SKILL.md",
61
+ "name": "qk-project-audit",
62
+ "path": "skills/engineering/qk-project-audit/SKILL.md",
63
63
  "version": "1.0.0",
64
64
  "category": "engineering",
65
65
  "priority": "P0",
@@ -88,8 +88,8 @@
88
88
  "description": "Kiểm toán toàn bộ dự án để phát hiện bug ẩn, rủi ro bảo mật, vấn đề hiệu năng và nợ kỹ thuật trước khi sửa code."
89
89
  },
90
90
  {
91
- "name": "bug-fix",
92
- "path": "skills/engineering/bug-fix/SKILL.md",
91
+ "name": "qk-bug-fix",
92
+ "path": "skills/engineering/qk-bug-fix/SKILL.md",
93
93
  "version": "2.0.0",
94
94
  "category": "engineering",
95
95
  "priority": "P0",
@@ -116,8 +116,8 @@
116
116
  "description": "Chẩn đoán và sửa lỗi an toàn. Tái hiện lỗi, tìm nguyên nhân gốc rễ và áp dụng bản sửa lỗi tối thiểu, có kiểm chứng."
117
117
  },
118
118
  {
119
- "name": "refactor",
120
- "path": "skills/engineering/refactor/SKILL.md",
119
+ "name": "qk-refactor",
120
+ "path": "skills/engineering/qk-refactor/SKILL.md",
121
121
  "version": "1.0.0",
122
122
  "category": "engineering",
123
123
  "priority": "P2",
@@ -144,8 +144,8 @@
144
144
  "description": "Tái cấu trúc và dọn dẹp mã nguồn để dễ bảo trì hơn mà không làm thay đổi logic hoạt động bên ngoài."
145
145
  },
146
146
  {
147
- "name": "api-integration",
148
- "path": "skills/engineering/api-integration/SKILL.md",
147
+ "name": "qk-api-integration",
148
+ "path": "skills/engineering/qk-api-integration/SKILL.md",
149
149
  "version": "2.0.0",
150
150
  "category": "engineering",
151
151
  "priority": "P1",
@@ -172,8 +172,8 @@
172
172
  "description": "Chuyển đổi tài liệu API (curl, swagger...) thành code tích hợp frontend chuẩn xác, có type an toàn và xử lý lỗi."
173
173
  },
174
174
  {
175
- "name": "migration",
176
- "path": "skills/engineering/migration/SKILL.md",
175
+ "name": "qk-migration",
176
+ "path": "skills/engineering/qk-migration/SKILL.md",
177
177
  "version": "1.0.0",
178
178
  "category": "engineering",
179
179
  "priority": "P2",
@@ -201,8 +201,8 @@
201
201
  "description": "Nâng cấp dependency, chuyển đổi framework và thay thế thư viện một cách an toàn với chiến lược không downtime."
202
202
  },
203
203
  {
204
- "name": "git-engineer",
205
- "path": "skills/engineering/git-engineer/SKILL.md",
204
+ "name": "qk-git-engineer",
205
+ "path": "skills/engineering/qk-git-engineer/SKILL.md",
206
206
  "version": "1.0.0",
207
207
  "category": "engineering",
208
208
  "priority": "P2",
@@ -227,8 +227,8 @@
227
227
  "description": "Viết commit message chuẩn Conventional Commits, mô tả Pull Request, Changelog và Release Notes chuyên nghiệp."
228
228
  },
229
229
  {
230
- "name": "frontend-architecture",
231
- "path": "skills/frontend/frontend-architecture/SKILL.md",
230
+ "name": "qk-frontend-architecture",
231
+ "path": "skills/frontend/qk-frontend-architecture/SKILL.md",
232
232
  "version": "1.0.0",
233
233
  "category": "frontend",
234
234
  "priority": "P1",
@@ -254,8 +254,8 @@
254
254
  "description": "Phân tích cấu trúc thư mục frontend và quyết định vị trí đặt file chuẩn xác theo kiến trúc hiện tại."
255
255
  },
256
256
  {
257
- "name": "design-system",
258
- "path": "skills/frontend/design-system/SKILL.md",
257
+ "name": "qk-design-system",
258
+ "path": "skills/frontend/qk-design-system/SKILL.md",
259
259
  "version": "1.0.0",
260
260
  "category": "frontend",
261
261
  "priority": "P1",
@@ -282,8 +282,8 @@
282
282
  "description": "Ép buộc sử dụng design system, component library và token hiện có, ngăn chặn việc viết HTML/CSS rác."
283
283
  },
284
284
  {
285
- "name": "ui-builder",
286
- "path": "skills/frontend/ui-builder/SKILL.md",
285
+ "name": "qk-ui-builder",
286
+ "path": "skills/frontend/qk-ui-builder/SKILL.md",
287
287
  "version": "1.0.0",
288
288
  "category": "frontend",
289
289
  "priority": "P1",
@@ -312,8 +312,8 @@
312
312
  "description": "Xây dựng các màn hình và layout phức tạp từ yêu cầu, tái sử dụng component và đảm bảo responsive."
313
313
  },
314
314
  {
315
- "name": "component-generator",
316
- "path": "skills/frontend/component-generator/SKILL.md",
315
+ "name": "qk-component-generator",
316
+ "path": "skills/frontend/qk-component-generator/SKILL.md",
317
317
  "version": "1.0.0",
318
318
  "category": "frontend",
319
319
  "priority": "P1",
@@ -339,8 +339,8 @@
339
339
  "description": "Tạo các UI Component độc lập, tái sử dụng được, có type an toàn và tuân thủ chuẩn design system."
340
340
  },
341
341
  {
342
- "name": "state-management",
343
- "path": "skills/frontend/state-management/SKILL.md",
342
+ "name": "qk-state-management",
343
+ "path": "skills/frontend/qk-state-management/SKILL.md",
344
344
  "version": "1.0.0",
345
345
  "category": "frontend",
346
346
  "priority": "P2",
@@ -368,8 +368,8 @@
368
368
  "description": "Xác định và triển khai chiến lược quản lý state phù hợp (Zustand, Redux, React Query, Local State)."
369
369
  },
370
370
  {
371
- "name": "form-builder",
372
- "path": "skills/frontend/form-builder/SKILL.md",
371
+ "name": "qk-form-builder",
372
+ "path": "skills/frontend/qk-form-builder/SKILL.md",
373
373
  "version": "1.0.0",
374
374
  "category": "frontend",
375
375
  "priority": "P2",
@@ -398,8 +398,8 @@
398
398
  "description": "Xây dựng Form chuẩn xác với quản lý trạng thái, validate dữ liệu (Zod, Yup) và xử lý hiển thị lỗi."
399
399
  },
400
400
  {
401
- "name": "table-crud-generator",
402
- "path": "skills/frontend/table-crud-generator/SKILL.md",
401
+ "name": "qk-table-crud-generator",
402
+ "path": "skills/frontend/qk-table-crud-generator/SKILL.md",
403
403
  "version": "1.0.0",
404
404
  "category": "frontend",
405
405
  "priority": "P2",
@@ -428,8 +428,8 @@
428
428
  "description": "Tạo các bảng dữ liệu admin với đầy đủ tính năng phân trang, sắp xếp, lọc và thao tác thêm/sửa/xóa (CRUD)."
429
429
  },
430
430
  {
431
- "name": "frontend-debug",
432
- "path": "skills/frontend/frontend-debug/SKILL.md",
431
+ "name": "qk-frontend-debug",
432
+ "path": "skills/frontend/qk-frontend-debug/SKILL.md",
433
433
  "version": "1.0.0",
434
434
  "category": "frontend",
435
435
  "priority": "P2",
@@ -455,8 +455,8 @@
455
455
  "description": "Chẩn đoán và sửa các lỗi đặc thù frontend như Hydration error, infinite re-render, stale closure và vỡ CSS."
456
456
  },
457
457
  {
458
- "name": "frontend-testing",
459
- "path": "skills/frontend/frontend-testing/SKILL.md",
458
+ "name": "qk-frontend-testing",
459
+ "path": "skills/frontend/qk-frontend-testing/SKILL.md",
460
460
  "version": "1.0.0",
461
461
  "category": "frontend",
462
462
  "priority": "P2",
@@ -484,8 +484,8 @@
484
484
  "description": "Viết Unit, Component và E2E test bằng Jest, Vitest, RTL, Cypress. Tập trung vào hành vi người dùng."
485
485
  },
486
486
  {
487
- "name": "frontend-performance",
488
- "path": "skills/frontend/frontend-performance/SKILL.md",
487
+ "name": "qk-frontend-performance",
488
+ "path": "skills/frontend/qk-frontend-performance/SKILL.md",
489
489
  "version": "1.0.0",
490
490
  "category": "frontend",
491
491
  "priority": "P2",
@@ -512,8 +512,8 @@
512
512
  "description": "Tối ưu hóa hiệu năng frontend: giảm kích thước bundle, chặn re-render thừa, lazy load và cải thiện Web Vitals."
513
513
  },
514
514
  {
515
- "name": "accessibility-audit",
516
- "path": "skills/frontend/accessibility-audit/SKILL.md",
515
+ "name": "qk-accessibility-audit",
516
+ "path": "skills/frontend/qk-accessibility-audit/SKILL.md",
517
517
  "version": "1.0.0",
518
518
  "category": "frontend",
519
519
  "priority": "P2",
@@ -540,8 +540,8 @@
540
540
  "description": "Kiểm tra và sửa lỗi khả năng tiếp cận (a11y/WCAG). Đảm bảo hỗ trợ phím, screen reader và semantic HTML."
541
541
  },
542
542
  {
543
- "name": "backend-architecture",
544
- "path": "skills/backend/backend-architecture/SKILL.md",
543
+ "name": "qk-backend-architecture",
544
+ "path": "skills/backend/qk-backend-architecture/SKILL.md",
545
545
  "version": "1.0.0",
546
546
  "category": "backend",
547
547
  "priority": "P3",
@@ -567,8 +567,8 @@
567
567
  "description": "Kiểm soát cấu trúc backend, ép buộc tuân thủ mô hình Layer (Controller/Service/Repository) và vị trí file."
568
568
  },
569
569
  {
570
- "name": "database-engineer",
571
- "path": "skills/backend/database-engineer/SKILL.md",
570
+ "name": "qk-database-engineer",
571
+ "path": "skills/backend/qk-database-engineer/SKILL.md",
572
572
  "version": "1.0.0",
573
573
  "category": "backend",
574
574
  "priority": "P3",
@@ -597,8 +597,8 @@
597
597
  "description": "Thiết kế database schema, viết script migration và tối ưu truy vấn cho SQL/NoSQL bằng ORM (Prisma, Drizzle...)."
598
598
  },
599
599
  {
600
- "name": "auth-security",
601
- "path": "skills/backend/auth-security/SKILL.md",
600
+ "name": "qk-auth-security",
601
+ "path": "skills/backend/qk-auth-security/SKILL.md",
602
602
  "version": "1.0.0",
603
603
  "category": "backend",
604
604
  "priority": "P3",
@@ -626,8 +626,8 @@
626
626
  "description": "Triển khai tính năng đăng nhập (JWT, OAuth), phân quyền (RBAC) và bảo vệ app khỏi các lỗ hổng OWASP."
627
627
  },
628
628
  {
629
- "name": "deployment",
630
- "path": "skills/backend/deployment/SKILL.md",
629
+ "name": "qk-deployment",
630
+ "path": "skills/backend/qk-deployment/SKILL.md",
631
631
  "version": "1.0.0",
632
632
  "category": "backend",
633
633
  "priority": "P3",