ai-developer-skill-os 1.0.7 → 1.3.1
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/README.md +53 -29
- package/bin/install.js +105 -41
- package/docs/HUONG_DAN_SU_DUNG.md +27 -15
- package/package.json +34 -34
- package/rename.js +64 -0
- package/skills/backend/{auth-security → qk-auth-security}/SKILL.md +1 -1
- package/skills/backend/{backend-architecture → qk-backend-architecture}/SKILL.md +1 -1
- package/skills/backend/{database-engineer → qk-database-engineer}/SKILL.md +1 -1
- package/skills/backend/{deployment → qk-deployment}/SKILL.md +1 -1
- package/skills/engineering/{agent-orchestrator → qk-agent-orchestrator}/SKILL.md +1 -1
- package/skills/engineering/{api-integration → qk-api-integration}/SKILL.md +1 -1
- package/skills/engineering/{bug-fix → qk-bug-fix}/SKILL.md +1 -1
- package/skills/engineering/{context-manager → qk-context-manager}/SKILL.md +1 -1
- package/skills/engineering/{git-engineer → qk-git-engineer}/SKILL.md +1 -1
- package/skills/engineering/{migration → qk-migration}/SKILL.md +1 -1
- package/skills/engineering/{project-audit → qk-project-audit}/SKILL.md +1 -1
- package/skills/engineering/{refactor → qk-refactor}/SKILL.md +1 -1
- package/skills/frontend/{accessibility-audit → qk-accessibility-audit}/SKILL.md +1 -1
- package/skills/frontend/{component-generator → qk-component-generator}/SKILL.md +1 -1
- package/skills/frontend/{design-system → qk-design-system}/SKILL.md +1 -1
- package/skills/frontend/{form-builder → qk-form-builder}/SKILL.md +1 -1
- package/skills/frontend/{frontend-architecture → qk-frontend-architecture}/SKILL.md +1 -1
- package/skills/frontend/{frontend-debug → qk-frontend-debug}/SKILL.md +1 -1
- package/skills/frontend/{frontend-performance → qk-frontend-performance}/SKILL.md +1 -1
- package/skills/frontend/{frontend-testing → qk-frontend-testing}/SKILL.md +1 -1
- package/skills/frontend/{state-management → qk-state-management}/SKILL.md +1 -1
- package/skills/frontend/{table-crud-generator → qk-table-crud-generator}/SKILL.md +1 -1
- package/skills/frontend/{ui-builder → qk-ui-builder}/SKILL.md +1 -1
- package/skills.json +666 -666
package/README.md
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
# 🚀 AI Developer Skill OS
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/js/ai-developer-skill-os)
|
|
4
|
-
[](https://github.com/phamquangkhanh2999)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
6
|
|
|
6
|
-
**
|
|
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
|
-
## 🌟
|
|
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
|
-
|
|
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).
|
|
@@ -47,21 +52,23 @@ Sau khi thư mục kỹ năng đã xuất hiện trong dự án của bạn, hã
|
|
|
47
52
|
### Cho Antigravity / Gemini IDE
|
|
48
53
|
**Không cần cấu hình gì thêm!** Nếu bạn đã cài đặt bằng cờ `--gemini` (thư mục `.agents/skills/`), hệ thống sẽ tự động quét và load toàn bộ 23 kỹ năng này. Bạn có thể sử dụng ngay lập tức!
|
|
49
54
|
|
|
50
|
-
### Cho
|
|
51
|
-
Tạo file
|
|
55
|
+
### Cho Claude Code / Kilo Code (CLI Agents)
|
|
56
|
+
Tạo file `CLAUDE.md` (hoặc `KILO.md`) ở gốc dự án và dán đoạn sau vào:
|
|
52
57
|
```md
|
|
53
|
-
#
|
|
58
|
+
# System Instructions
|
|
59
|
+
Bạn đang chạy bằng **AI Developer Skill OS** (Tác giả: Quang Khánh).
|
|
54
60
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
Vui lòng tìm đọc danh sách kỹ năng tại file `./.qk-ai-skill-os/skills.json`.
|
|
62
|
+
ĐẶC BIỆT LƯU Ý: 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 gọi và đọc nội dung file `SKILL.md` tương ứng trong thư mục `./.qk-ai-skill-os/skills/` trước khi phân tích hoặc viết code.
|
|
63
|
+
Luôn giao tiếp bằng tiếng Việt nhưng viết code, đặt tên biến, comment trong code bằng tiếng Anh.
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
### Cho Cline / Roo Code
|
|
61
|
-
Tạo file `.clinerules
|
|
66
|
+
### Cho Cline / Roo Code (VS Code Extensions)
|
|
67
|
+
Tạo file `.clinerules` hoặc `.roorules` ở gốc dự án và dán nội dung:
|
|
62
68
|
```md
|
|
63
69
|
Bạn đang chạy bằng **AI Developer Skill OS** (Tác giả: Quang Khánh).
|
|
64
|
-
Vui lòng tìm đọc danh sách kỹ năng tại file `./.qk-ai-skill-os/skills.json`.
|
|
70
|
+
Vui lòng tìm đọc danh sách kỹ năng tại file `./.qk-ai-skill-os/skills.json`.
|
|
71
|
+
Bất cứ khi nào người dùng gõ lệnh `./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/`.
|
|
65
72
|
Luôn giao tiếp bằng tiếng Việt nhưng viết code bằng tiếng Anh.
|
|
66
73
|
```
|
|
67
74
|
|
|
@@ -72,33 +79,50 @@ Tạo file `.github/copilot-instructions.md` và dán đoạn prompt tương t
|
|
|
72
79
|
|
|
73
80
|
## 🎯 Cách kiểm tra cài đặt thành công
|
|
74
81
|
|
|
75
|
-
Để 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õ
|
|
76
|
-
>
|
|
82
|
+
Để 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:
|
|
83
|
+
> **`./qk project-audit`** Hãy cho tôi biết bạn sẽ làm những gì.
|
|
77
84
|
|
|
78
85
|
✅ **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`.
|
|
79
86
|
❌ **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.
|
|
80
87
|
|
|
81
88
|
---
|
|
82
89
|
|
|
83
|
-
## 🚀 Cách
|
|
90
|
+
## 🚀 Cách gọi lệnh Skill chuyên nghiệp (Usage)
|
|
84
91
|
|
|
85
|
-
AI sẽ tự động nhận diện skill qua ngữ cảnh, nhưng để chắc chắn 100
|
|
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]`**
|
|
86
93
|
|
|
87
94
|
Dưới đây là các ví dụ cụ thể để bạn copy - paste và trải nghiệm ngay:
|
|
88
95
|
|
|
89
|
-
### 1.
|
|
90
|
-
>
|
|
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.
|
|
91
101
|
|
|
92
|
-
###
|
|
93
|
-
>
|
|
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.
|
|
94
104
|
|
|
95
|
-
###
|
|
96
|
-
>
|
|
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.
|
|
97
107
|
|
|
98
|
-
|
|
99
|
-
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 💎 Danh sách 23+ Kỹ Năng Độc Quyền
|
|
111
|
+
|
|
112
|
+
| Phân hệ | Kỹ năng tiêu biểu | Chức năng chính |
|
|
113
|
+
|---------|-------------------|-----------------|
|
|
114
|
+
| 🏗️ **Engineering** | `qk-project-audit`, `qk-agent-orchestrator` | Kiểm toán dự án, lập kế hoạch, quản lý Git, Refactor code. |
|
|
115
|
+
| 🎨 **Frontend** | `qk-ui-builder`, `qk-frontend-performance` | Dựng UI, tối ưu tốc độ, test component, quản lý State. |
|
|
116
|
+
| ⚙️ **Backend** | `qk-database-engineer`, `qk-auth-security` | Thiết kế DB Schema, bảo mật JWT/OAuth, cấu hình CI/CD. |
|
|
117
|
+
|
|
118
|
+
👉 [Xem danh sách toàn bộ Kỹ năng tại đây](docs/CHI_TIET_SKILLS.md)
|
|
119
|
+
|
|
120
|
+
---
|
|
100
121
|
|
|
101
|
-
|
|
122
|
+
<div align="center">
|
|
123
|
+
<b>Được thiết kế và phát triển bởi Quang Khánh (QK)</b><br>
|
|
124
|
+
<i>Empowering Vietnamese Developers with World-Class AI Workflows.</i>
|
|
125
|
+
</div>
|
|
102
126
|
|
|
103
127
|
---
|
|
104
128
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
+
});
|
|
@@ -55,15 +55,27 @@ Tạo file `.cursorrules` (nếu dùng Cursor) hoặc `.windsurfrules` (nếu d
|
|
|
55
55
|
# AI Developer Skill OS by Quang Khánh
|
|
56
56
|
|
|
57
57
|
When answering or generating code, you MUST act as an expert engineer using the skills defined in `./.qk-ai-skill-os/skills.json`.
|
|
58
|
-
|
|
58
|
+
Bất cứ khi nào người dùng gõ lệnh `./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 thực hiện.
|
|
59
59
|
Speak to me in Vietnamese, but write all code in English.
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
### Cho
|
|
63
|
-
Tạo file
|
|
62
|
+
### Cho Claude Code / Kilo Code (CLI Agents)
|
|
63
|
+
Tạo file `CLAUDE.md` (hoặc `KILO.md`) ở gốc dự án và dán đoạn sau vào:
|
|
64
64
|
```md
|
|
65
|
+
# System Instructions
|
|
65
66
|
Bạn đang chạy bằng **AI Developer Skill OS** (Tác giả: Quang Khánh).
|
|
66
|
-
|
|
67
|
+
|
|
68
|
+
Vui lòng tìm đọc danh sách kỹ năng tại file `./.qk-ai-skill-os/skills.json`.
|
|
69
|
+
ĐẶC BIỆT LƯU Ý: 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 gọi và đọc nội dung file `SKILL.md` tương ứng trong thư mục `./.qk-ai-skill-os/skills/` trước khi phân tích hoặc viết code.
|
|
70
|
+
Luôn giao tiếp bằng tiếng Việt nhưng viết code, đặt tên biến, comment trong code bằng tiếng Anh.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Cho Cline / Roo Code (VS Code Extensions)
|
|
74
|
+
Tạo file `.clinerules` hoặc `.roorules` ở gốc dự án và dán nội dung:
|
|
75
|
+
```md
|
|
76
|
+
Bạn đang chạy bằng **AI Developer Skill OS** (Tác giả: Quang Khánh).
|
|
77
|
+
Vui lòng tìm đọc danh sách kỹ năng tại file `./.qk-ai-skill-os/skills.json`.
|
|
78
|
+
Bất cứ khi nào người dùng gõ lệnh `./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/`.
|
|
67
79
|
Luôn giao tiếp bằng tiếng Việt nhưng viết code bằng tiếng Anh.
|
|
68
80
|
```
|
|
69
81
|
|
|
@@ -74,34 +86,34 @@ Tạo file `.github/copilot-instructions.md` và dán đoạn prompt tương t
|
|
|
74
86
|
|
|
75
87
|
## 4. Cách kiểm tra cài đặt thành công
|
|
76
88
|
|
|
77
|
-
Để 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õ
|
|
78
|
-
>
|
|
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ì.
|
|
79
91
|
|
|
80
|
-
✅ **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`.
|
|
81
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.
|
|
82
94
|
|
|
83
95
|
---
|
|
84
96
|
|
|
85
|
-
## 5. Cách
|
|
97
|
+
## 5. Cách gọi lệnh Skill chuyên nghiệp (Usage)
|
|
86
98
|
|
|
87
|
-
|
|
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]`**
|
|
88
100
|
|
|
89
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:
|
|
90
102
|
|
|
91
103
|
### 🎯 Ví dụ 1: Nhờ AI lên kế hoạch (Planning)
|
|
92
|
-
>
|
|
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é.
|
|
93
105
|
|
|
94
106
|
### 🎯 Ví dụ 2: Fix lỗi cứng đầu (Bug Fix)
|
|
95
|
-
>
|
|
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.
|
|
96
108
|
|
|
97
109
|
### 🎯 Ví dụ 3: Review Codebase (Audit)
|
|
98
|
-
>
|
|
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.
|
|
99
111
|
|
|
100
112
|
### 🎯 Ví dụ 4: Xây dựng Giao diện Frontend (UI)
|
|
101
|
-
>
|
|
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é.
|
|
102
114
|
|
|
103
115
|
### 🎯 Ví dụ 5: Làm việc với API (Backend & Integration)
|
|
104
|
-
>
|
|
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.
|
|
105
117
|
|
|
106
118
|
### 🎯 Ví dụ 6: Database & Backend
|
|
107
|
-
>
|
|
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.
|
package/package.json
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ai-developer-skill-os",
|
|
3
|
-
"version": "1.
|
|
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.1",
|
|
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-* !');
|