@dayinxisheng/skillctl 1.1.1 → 1.2.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/README.md CHANGED
@@ -1,389 +1,389 @@
1
- # @dayinxisheng/skillctl
2
-
3
- > Claude Skills 管理工具 - 轻松管理你的 Claude Skills
4
-
5
- 管理 Claude Skills 的激活状态和项目归档,通过软链接实现 skills 的灵活切换。
6
-
7
- ## 📦 安装
8
-
9
- ```bash
10
- npm install -g @dayinxisheng/skillctl
11
- ```
12
-
13
- ## 更新
14
-
15
- ```bash
16
- npm update -g @dayinxisheng/skillctl
17
- ```
18
-
19
- 安装完成后,可以在任何目录使用 `skillctl` 命令。
20
-
21
- ## 🚀 快速开始
22
-
23
- ### 第一步:设置仓库路径
24
-
25
- 告诉 skillctl 你的 skills 仓库在哪里(存储所有 skill 文件的目录):
26
-
27
- ```bash
28
- skillctl config set-repo ~/my-skills
29
- ```
30
-
31
- ### 第二步:查看可用的 skills
32
-
33
- ```bash
34
- skillctl ls-all
35
- ```
36
-
37
- 输出示例:
38
- ```
39
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
40
- 项目中所有可用的 Skills
41
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
42
-
43
- Name Description
44
- ─────────────────────────────────────────────────────────────
45
- brainstorming Turn ideas into validated designs...
46
- frontend-design Generate frontend code from UI...
47
- pdf-tools PDF manipulation tools...
48
-
49
- ℹ 共找到 3 个 skills
50
- 位置: ~/my-skills
51
- ```
52
-
53
- ### 第三步:激活 skill
54
-
55
- ```bash
56
- skillctl activate brainstorming
57
- ```
58
-
59
- 输出:
60
- ```
61
- ✓ 已激活: brainstorming (user)
62
- ```
63
-
64
- ## 📚 核心概念
65
-
66
- ### User vs Project 两级作用域
67
-
68
- skillctl 支持两个作用域:
69
-
70
- | 作用域 | 路径 | 说明 |
71
- |--------|------|------|
72
- | **User** | `~/.claude/skills/` | 全局可用,所有项目共享 |
73
- | **Project** | `./.claude/skills/` | 仅当前项目可用 |
74
-
75
- **示例场景:**
76
- - 团队共享的技能 → 用 Project 级别
77
- - 个人常用技能 → 用 User 级别
78
-
79
- ## 🎯 常用命令
80
-
81
- ### 1. 激活 Skill
82
-
83
- ```bash
84
- # 激活到 user 级别(默认)- 全局可用
85
- skillctl activate brainstorming
86
-
87
- # 激活到 project 级别 - 仅当前项目
88
- skillctl activate -p brainstorming
89
-
90
- # 批量激活所有 skills
91
- skillctl activate --all
92
- skillctl activate -u --all # 明确指定 user 级别
93
- skillctl activate -p --all # 明确指定 project 级别
94
- ```
95
-
96
- ### 2. 停用 Skill
97
-
98
- ```bash
99
- # 停用 user 级别的 skill
100
- skillctl deactivate brainstorming
101
-
102
- # 停用 project 级别的 skill
103
- skillctl deactivate -p brainstorming
104
-
105
- # 批量停用所有
106
- skillctl deactivate --all
107
- ```
108
-
109
- ### 3. 查看状态
110
-
111
- ```bash
112
- # 查看所有 skills 的激活状态(表格形式)
113
- skillctl status
114
- ```
115
-
116
- 输出示例:
117
- ```
118
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
- Skills 激活状态
120
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
-
122
- Skill User Project
123
- ──────────────────────────── ────────── ───────────
124
- brainstorming ✓ ✗
125
- frontend-design ✗ ✓
126
- pdf-tools ✓ ✓
127
-
128
- ℹ 共 3 个 skills
129
- ✓ = 已激活 ✗ = 未激活
130
- ```
131
-
132
- ```bash
133
- # 只看已激活的 skills
134
- skillctl list
135
- ```
136
-
137
- 输出示例:
138
- ```
139
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140
- 当前激活的 Skills
141
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
-
143
- 全局 (~/.claude/skills):
144
- brainstorming → ~/my-skills/brainstorming
145
- pdf-tools → ~/my-skills/pdf-tools
146
- ℹ 共 2 个
147
-
148
- 本地 (./.claude/skills):
149
- frontend-design → ~/my-skills/frontend-design
150
- ℹ 共 1 个
151
- ```
152
-
153
- ### 4. 导入 Skill
154
-
155
- 将外部开发的 skill 导入到你的项目仓库:
156
-
157
- ```bash
158
- # 假设你有一个 skill 在 ~/.claude/skills/my-new-skill
159
- # 将其导入到项目仓库
160
- skillctl import my-new-skill
161
- ```
162
-
163
- 这会:
164
- 1. 将 skill 移动到你的项目仓库
165
- 2. 在原位置创建软链接
166
-
167
- ### 5. 拉取 Skill
168
-
169
- 从 Git 仓库(如 GitHub)拉取 skill 到本地:
170
-
171
- ```bash
172
- # 拉取单个 skill
173
- skillctl pull https://github.com/owner/repo path/to/skill
174
-
175
- # 拉取多个 skills
176
- skillctl pull https://github.com/owner/repo \
177
- path/to/skill1 \
178
- path/to/skill2
179
-
180
- # 强制覆盖已存在的 skill(自动备份)
181
- skillctl pull <repo-url> <path> --force
182
- ```
183
-
184
- **使用仓库别名:**
185
-
186
- ```bash
187
- # 添加别名
188
- skillctl config add-repo anthropic https://github.com/anthropics/anthropic-quickstarts
189
-
190
- # 使用别名拉取
191
- skillctl pull anthropic typescript/search
192
-
193
- # 查看所有别名
194
- skillctl config show
195
- ```
196
-
197
- **配置镜像加速:**
198
-
199
- ```bash
200
- # 设置镜像(用于加速访问 GitHub)
201
- skillctl config set-mirror https://ghfast.top
202
-
203
- # 之后所有 pull 命令都会自动使用镜像
204
- skillctl pull https://github.com/owner/repo path/to/skill
205
-
206
- # 取消镜像设置
207
- skillctl config unset-mirror
208
- ```
209
-
210
- **特性:**
211
- - 支持从 GitHub 仓库提取指定目录作为 skill
212
- - 严格验证 SKILL.md 文件及 name 字段
213
- - 下载进度显示
214
- - 跨平台支持(Linux/macOS 使用 tar.gz,Windows 使用 zip)
215
- - 支持仓库别名,简化常用仓库的拉取
216
- - 支持镜像加速配置
217
-
218
- ### 6. 定位 Skill
219
-
220
- 查找 skill 的实际存储位置:
221
-
222
- ```bash
223
- skillctl locate brainstorming
224
- ```
225
-
226
- 输出示例:
227
- ```
228
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
- Skill 定位: brainstorming
230
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
231
-
232
- 全局: ~/.claude/skills/brainstorming → ~/my-skills/brainstorming (软链接)
233
- ```
234
-
235
- ## ⚙️ 配置管理
236
-
237
- ```bash
238
- # 查看所有配置
239
- skillctl config
240
- # 或
241
- skillctl config show
242
- ```
243
-
244
- 输出示例:
245
- ```
246
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
- 配置信息
248
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
-
250
- 配置文件: ~/.config/skillctl/config.json
251
-
252
- 仓库路径: ~/my-skills
253
- 镜像加速: https://ghfast.top
254
-
255
- 仓库别名:
256
- anthropic → https://github.com/anthropics/anthropic-quickstarts
257
- my-skills → https://github.com/dayinxisheng/skills
258
- ```
259
-
260
- ```bash
261
- # 设置仓库路径
262
- skillctl config set-repo /new/path/to/skills
263
-
264
- # 添加仓库别名
265
- skillctl config add-repo <别名名称> <仓库URL>
266
-
267
- # 删除仓库别名
268
- skillctl config remove-repo <别名名称>
269
-
270
- # 设置镜像加速
271
- skillctl config set-mirror https://ghfast.top
272
-
273
- # 取消镜像设置
274
- skillctl config unset-mirror
275
- ```
276
-
277
- ## 💡 实用场景
278
-
279
- ### 场景 1:新项目设置
280
-
281
- ```bash
282
- # 1. 进入项目目录
283
- cd ~/my-project
284
-
285
- # 2. 激活项目需要的 skills
286
- skillctl activate -p frontend-design
287
- skillctl activate -p brainstorming
288
-
289
- # 3. 验证
290
- skillctl list
291
- ```
292
-
293
- ### 场景 2:切换技能集
294
-
295
- ```bash
296
- # 停用当前所有 skills
297
- skillctl deactivate --all
298
-
299
- # 激活新的技能集
300
- skillctl activate pdf-tools
301
- skillctl activate docx-tools
302
- ```
303
-
304
- ### 场景 3:分享你的 skill
305
-
306
- ```bash
307
- # 1. 导入你的 skill 到项目仓库
308
- skillctl import my-awesome-skill
309
-
310
- # 2. 提交到 git
311
- cd ~/my-skills
312
- git add skills/my-awesome-skill
313
- git commit -m "Add my-awesome-skill"
314
- git push
315
- ```
316
-
317
- ## 🛠️ 开发
318
-
319
- ```bash
320
- # 克隆项目
321
- git clone <repo-url>
322
- cd skillctl
323
-
324
- # 安装依赖
325
- npm install
326
-
327
- # 开发模式(监听文件变化)
328
- npm run dev
329
-
330
- # 构建
331
- npm run build
332
-
333
- # 本地测试
334
- npm link
335
-
336
- # 运行测试
337
- npm test
338
-
339
- # 代码检查
340
- npm run lint
341
- npm run lint:fix
342
- ```
343
-
344
- ## 📁 项目结构
345
-
346
- ```
347
- src/
348
- ├── index.ts # CLI 入口
349
- ├── commands/ # 命令处理器
350
- │ ├── activate.ts # 激活命令
351
- │ ├── deactivate.ts # 停用命令
352
- │ ├── import.ts # 导入命令
353
- │ ├── pull.ts # 拉取命令
354
- │ ├── locate.ts # 定位命令
355
- │ ├── status.ts # 状态命令
356
- │ ├── list.ts # 列表命令
357
- │ ├── all-list.ts # 全部列表命令
358
- │ ├── set-repo.ts # 设置仓库命令
359
- │ └── config.ts # 配置命令
360
- ├── lib/ # 核心业务逻辑
361
- │ ├── config-manager.ts # 配置管理
362
- │ ├── link-handler.ts # 软链接处理
363
- │ ├── pull-handler.ts # 拉取处理逻辑
364
- │ └── skill-manager.ts # Skill 管理
365
- ├── utils/ # 工具函数
366
- │ ├── output.ts # 彩色输出
367
- │ ├── errors.ts # 错误类型
368
- │ ├── platform.ts # 平台检测
369
- │ ├── downloader.ts # 下载工具
370
- │ ├── archive-extractor.ts # 解压工具
371
- │ ├── skill-validator.ts # Skill 验证
372
- │ ├── github-parser.ts # GitHub URL 解析
373
- │ └── url-validator.ts # URL 验证
374
- └── types/ # TypeScript 类型定义
375
- └── index.ts
376
- ```
377
-
378
- ## 📄 许可证
379
-
380
- MIT License © 2026 hrjlab
381
-
382
- ## 📝 变更日志
383
-
384
- 查看 [CHANGELOG.md](CHANGELOG.md) 了解版本更新历史。
385
-
386
- ## 🔗 相关链接
387
-
388
- - [npm 包](https://www.npmjs.com/package/@dayinxisheng/skillctl)
389
- - [问题反馈](<your-repo-issues>)
1
+ # @dayinxisheng/skillctl
2
+
3
+ > Claude Skills 管理工具 - 轻松管理你的 Claude Skills
4
+
5
+ 管理 Claude Skills 的激活状态和项目归档,通过软链接实现 skills 的灵活切换。
6
+
7
+ ## 📦 安装
8
+
9
+ ```bash
10
+ npm install -g @dayinxisheng/skillctl
11
+ ```
12
+
13
+ ## 更新
14
+
15
+ ```bash
16
+ npm update -g @dayinxisheng/skillctl
17
+ ```
18
+
19
+ 安装完成后,可以在任何目录使用 `skillctl` 命令。
20
+
21
+ ## 🚀 快速开始
22
+
23
+ ### 第一步:设置仓库路径
24
+
25
+ 告诉 skillctl 你的 skills 仓库在哪里(存储所有 skill 文件的目录):
26
+
27
+ ```bash
28
+ skillctl config set-repo ~/my-skills
29
+ ```
30
+
31
+ ### 第二步:查看可用的 skills
32
+
33
+ ```bash
34
+ skillctl ls-all
35
+ ```
36
+
37
+ 输出示例:
38
+ ```
39
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
40
+ 项目中所有可用的 Skills
41
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
42
+
43
+ Name Description
44
+ ─────────────────────────────────────────────────────────────
45
+ brainstorming Turn ideas into validated designs...
46
+ frontend-design Generate frontend code from UI...
47
+ pdf-tools PDF manipulation tools...
48
+
49
+ ℹ 共找到 3 个 skills
50
+ 位置: ~/my-skills
51
+ ```
52
+
53
+ ### 第三步:激活 skill
54
+
55
+ ```bash
56
+ skillctl activate brainstorming
57
+ ```
58
+
59
+ 输出:
60
+ ```
61
+ ✓ 已激活: brainstorming (user)
62
+ ```
63
+
64
+ ## 📚 核心概念
65
+
66
+ ### User vs Project 两级作用域
67
+
68
+ skillctl 支持两个作用域:
69
+
70
+ | 作用域 | 路径 | 说明 |
71
+ |--------|------|------|
72
+ | **User** | `~/.claude/skills/` | 全局可用,所有项目共享 |
73
+ | **Project** | `./.claude/skills/` | 仅当前项目可用 |
74
+
75
+ **示例场景:**
76
+ - 团队共享的技能 → 用 Project 级别
77
+ - 个人常用技能 → 用 User 级别
78
+
79
+ ## 🎯 常用命令
80
+
81
+ ### 1. 激活 Skill
82
+
83
+ ```bash
84
+ # 激活到 user 级别(默认)- 全局可用
85
+ skillctl activate brainstorming
86
+
87
+ # 激活到 project 级别 - 仅当前项目
88
+ skillctl activate -p brainstorming
89
+
90
+ # 批量激活所有 skills
91
+ skillctl activate --all
92
+ skillctl activate -u --all # 明确指定 user 级别
93
+ skillctl activate -p --all # 明确指定 project 级别
94
+ ```
95
+
96
+ ### 2. 停用 Skill
97
+
98
+ ```bash
99
+ # 停用 user 级别的 skill
100
+ skillctl deactivate brainstorming
101
+
102
+ # 停用 project 级别的 skill
103
+ skillctl deactivate -p brainstorming
104
+
105
+ # 批量停用所有
106
+ skillctl deactivate --all
107
+ ```
108
+
109
+ ### 3. 查看状态
110
+
111
+ ```bash
112
+ # 查看所有 skills 的激活状态(表格形式)
113
+ skillctl status
114
+ ```
115
+
116
+ 输出示例:
117
+ ```
118
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
+ Skills 激活状态
120
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
+
122
+ Skill User Project
123
+ ──────────────────────────── ────────── ───────────
124
+ brainstorming ✓ ✗
125
+ frontend-design ✗ ✓
126
+ pdf-tools ✓ ✓
127
+
128
+ ℹ 共 3 个 skills
129
+ ✓ = 已激活 ✗ = 未激活
130
+ ```
131
+
132
+ ```bash
133
+ # 只看已激活的 skills
134
+ skillctl list
135
+ ```
136
+
137
+ 输出示例:
138
+ ```
139
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140
+ 当前激活的 Skills
141
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
+
143
+ 全局 (~/.claude/skills):
144
+ brainstorming → ~/my-skills/brainstorming
145
+ pdf-tools → ~/my-skills/pdf-tools
146
+ ℹ 共 2 个
147
+
148
+ 本地 (./.claude/skills):
149
+ frontend-design → ~/my-skills/frontend-design
150
+ ℹ 共 1 个
151
+ ```
152
+
153
+ ### 4. 导入 Skill
154
+
155
+ 将外部开发的 skill 导入到你的项目仓库:
156
+
157
+ ```bash
158
+ # 假设你有一个 skill 在 ~/.claude/skills/my-new-skill
159
+ # 将其导入到项目仓库
160
+ skillctl import my-new-skill
161
+ ```
162
+
163
+ 这会:
164
+ 1. 将 skill 移动到你的项目仓库
165
+ 2. 在原位置创建软链接
166
+
167
+ ### 5. 拉取 Skill
168
+
169
+ 从 Git 仓库(如 GitHub)拉取 skill 到本地:
170
+
171
+ ```bash
172
+ # 拉取单个 skill
173
+ skillctl pull https://github.com/owner/repo path/to/skill
174
+
175
+ # 拉取多个 skills
176
+ skillctl pull https://github.com/owner/repo \
177
+ path/to/skill1 \
178
+ path/to/skill2
179
+
180
+ # 强制覆盖已存在的 skill(自动备份)
181
+ skillctl pull <repo-url> <path> --force
182
+ ```
183
+
184
+ **使用仓库别名:**
185
+
186
+ ```bash
187
+ # 添加别名
188
+ skillctl config add-repo anthropic https://github.com/anthropics/anthropic-quickstarts
189
+
190
+ # 使用别名拉取
191
+ skillctl pull anthropic typescript/search
192
+
193
+ # 查看所有别名
194
+ skillctl config show
195
+ ```
196
+
197
+ **配置镜像加速:**
198
+
199
+ ```bash
200
+ # 设置镜像(用于加速访问 GitHub)
201
+ skillctl config set-mirror https://ghfast.top
202
+
203
+ # 之后所有 pull 命令都会自动使用镜像
204
+ skillctl pull https://github.com/owner/repo path/to/skill
205
+
206
+ # 取消镜像设置
207
+ skillctl config unset-mirror
208
+ ```
209
+
210
+ **特性:**
211
+ - 支持从 GitHub 仓库提取指定目录作为 skill
212
+ - 严格验证 SKILL.md 文件及 name 字段
213
+ - 下载进度显示
214
+ - 跨平台支持(Linux/macOS 使用 tar.gz,Windows 使用 zip)
215
+ - 支持仓库别名,简化常用仓库的拉取
216
+ - 支持镜像加速配置
217
+
218
+ ### 6. 定位 Skill
219
+
220
+ 查找 skill 的实际存储位置:
221
+
222
+ ```bash
223
+ skillctl locate brainstorming
224
+ ```
225
+
226
+ 输出示例:
227
+ ```
228
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
+ Skill 定位: brainstorming
230
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
231
+
232
+ 全局: ~/.claude/skills/brainstorming → ~/my-skills/brainstorming (软链接)
233
+ ```
234
+
235
+ ## ⚙️ 配置管理
236
+
237
+ ```bash
238
+ # 查看所有配置
239
+ skillctl config
240
+ # 或
241
+ skillctl config show
242
+ ```
243
+
244
+ 输出示例:
245
+ ```
246
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
+ 配置信息
248
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+
250
+ 配置文件: ~/.config/skillctl/config.json
251
+
252
+ 仓库路径: ~/my-skills
253
+ 镜像加速: https://ghfast.top
254
+
255
+ 仓库别名:
256
+ anthropic → https://github.com/anthropics/anthropic-quickstarts
257
+ my-skills → https://github.com/dayinxisheng/skills
258
+ ```
259
+
260
+ ```bash
261
+ # 设置仓库路径
262
+ skillctl config set-repo /new/path/to/skills
263
+
264
+ # 添加仓库别名
265
+ skillctl config add-repo <别名名称> <仓库URL>
266
+
267
+ # 删除仓库别名
268
+ skillctl config remove-repo <别名名称>
269
+
270
+ # 设置镜像加速
271
+ skillctl config set-mirror https://ghfast.top
272
+
273
+ # 取消镜像设置
274
+ skillctl config unset-mirror
275
+ ```
276
+
277
+ ## 💡 实用场景
278
+
279
+ ### 场景 1:新项目设置
280
+
281
+ ```bash
282
+ # 1. 进入项目目录
283
+ cd ~/my-project
284
+
285
+ # 2. 激活项目需要的 skills
286
+ skillctl activate -p frontend-design
287
+ skillctl activate -p brainstorming
288
+
289
+ # 3. 验证
290
+ skillctl list
291
+ ```
292
+
293
+ ### 场景 2:切换技能集
294
+
295
+ ```bash
296
+ # 停用当前所有 skills
297
+ skillctl deactivate --all
298
+
299
+ # 激活新的技能集
300
+ skillctl activate pdf-tools
301
+ skillctl activate docx-tools
302
+ ```
303
+
304
+ ### 场景 3:分享你的 skill
305
+
306
+ ```bash
307
+ # 1. 导入你的 skill 到项目仓库
308
+ skillctl import my-awesome-skill
309
+
310
+ # 2. 提交到 git
311
+ cd ~/my-skills
312
+ git add skills/my-awesome-skill
313
+ git commit -m "Add my-awesome-skill"
314
+ git push
315
+ ```
316
+
317
+ ## 🛠️ 开发
318
+
319
+ ```bash
320
+ # 克隆项目
321
+ git clone <repo-url>
322
+ cd skillctl
323
+
324
+ # 安装依赖
325
+ npm install
326
+
327
+ # 开发模式(监听文件变化)
328
+ npm run dev
329
+
330
+ # 构建
331
+ npm run build
332
+
333
+ # 本地测试
334
+ npm link
335
+
336
+ # 运行测试
337
+ npm test
338
+
339
+ # 代码检查
340
+ npm run lint
341
+ npm run lint:fix
342
+ ```
343
+
344
+ ## 📁 项目结构
345
+
346
+ ```
347
+ src/
348
+ ├── index.ts # CLI 入口
349
+ ├── commands/ # 命令处理器
350
+ │ ├── activate.ts # 激活命令
351
+ │ ├── deactivate.ts # 停用命令
352
+ │ ├── import.ts # 导入命令
353
+ │ ├── pull.ts # 拉取命令
354
+ │ ├── locate.ts # 定位命令
355
+ │ ├── status.ts # 状态命令
356
+ │ ├── list.ts # 列表命令
357
+ │ ├── all-list.ts # 全部列表命令
358
+ │ ├── set-repo.ts # 设置仓库命令
359
+ │ └── config.ts # 配置命令
360
+ ├── lib/ # 核心业务逻辑
361
+ │ ├── config-manager.ts # 配置管理
362
+ │ ├── link-handler.ts # 软链接处理
363
+ │ ├── pull-handler.ts # 拉取处理逻辑
364
+ │ └── skill-manager.ts # Skill 管理
365
+ ├── utils/ # 工具函数
366
+ │ ├── output.ts # 彩色输出
367
+ │ ├── errors.ts # 错误类型
368
+ │ ├── platform.ts # 平台检测
369
+ │ ├── downloader.ts # 下载工具
370
+ │ ├── archive-extractor.ts # 解压工具
371
+ │ ├── skill-validator.ts # Skill 验证
372
+ │ ├── github-parser.ts # GitHub URL 解析
373
+ │ └── url-validator.ts # URL 验证
374
+ └── types/ # TypeScript 类型定义
375
+ └── index.ts
376
+ ```
377
+
378
+ ## 📄 许可证
379
+
380
+ MIT License © 2026 hrjlab
381
+
382
+ ## 📝 变更日志
383
+
384
+ 查看 [CHANGELOG.md](CHANGELOG.md) 了解版本更新历史。
385
+
386
+ ## 🔗 相关链接
387
+
388
+ - [npm 包](https://www.npmjs.com/package/@dayinxisheng/skillctl)
389
+ - [问题反馈](<your-repo-issues>)