sumulige-claude 1.1.1 → 1.1.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.
@@ -1,115 +1,192 @@
1
- # Development Guide - SMC Marketplace
1
+ # Development Guide - 开发指南
2
2
 
3
- 本文档详细说明了 SMC 技能市场和自动同步系统的开发细节。
4
-
5
- ## 目录
6
-
7
- - [架构概述](#架构概述)
8
- - [项目结构](#项目结构)
9
- - [添加新技能](#添加新技能)
10
- - [同步机制原理](#同步机制原理)
11
- - [命令开发](#命令开发)
12
- - [调试指南](#调试指南)
3
+ > 从零开始理解项目架构,逐步深入开发细节
13
4
 
14
5
  ---
15
6
 
16
- ## 架构概述
7
+ ## Level 1: 项目概述 (5 分钟)
17
8
 
18
- ### 核心组件
9
+ ### 这是一个什么项目?
19
10
 
20
- ```
21
- ┌─────────────────────────────────────────────────────────────┐
22
- │ SMC CLI │
23
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
24
- │ │ Commands │ │ Marketplace │ │ Config │ │
25
- │ │ │ │ Commands │ │ │ │
26
- │ └──────────────┘ └──────────────┘ └──────────────────┘ │
27
- └─────────────────────────────────────────────────────────────┘
28
- │ │ │
29
- ▼ ▼ ▼
30
- ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
31
- │ sources.yaml │ │ sync-external.mjs│ │ update-registry │
32
- │ │ │ │ │ .mjs │
33
- └──────────────────┘ └──────────────────┘ └──────────────────┘
34
- │ │ │
35
- ▼ ▼ ▼
36
- ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
37
- │ External Repos │ │ Template Skills │ │ marketplace.json │
38
- │ (GitHub) │ │ │ │ │
39
- └──────────────────┘ └──────────────────┘ └──────────────────┘
40
- ```
11
+ **一句话**:为 Claude Code 添加多 Agent 编排能力的 CLI 工具。
12
+
13
+ **核心功能**:
14
+ 1. **多 Agent 协作** - 5 个专业 AI Agent 配合工作
15
+ 2. **技能管理** - 发现、安装、管理可复用的 AI 技能
16
+ 3. **项目模板** - 一键部署配置好的 AI 开发环境
17
+ 4. **质量门禁** - 自动代码质量检查
41
18
 
42
- ### 数据流
19
+ ### 技术栈
43
20
 
44
21
  ```
45
- sources.yaml ──► sync-external.mjs ──► template/.claude/skills/
46
- │ │
47
- │ ▼
48
- └──────────────────► update-registry.mjs ──► marketplace.json
22
+ 语言: JavaScript (CommonJS + ES Modules)
23
+ 运行时: Node.js >= 16.0
24
+ 测试: Jest
25
+ 发布: npm
26
+ 依赖: ajv, ajv-formats (配置验证)
49
27
  ```
50
28
 
51
29
  ---
52
30
 
53
- ## 项目结构
31
+ ## Level 2: 项目结构 (10 分钟)
32
+
33
+ ### 目录树
54
34
 
55
35
  ```
56
36
  sumulige-claude/
57
- ├── .claude-plugin/
58
- └── marketplace.json # Claude Code 插件注册表
59
- ├── .github/workflows/
60
- └── sync-skills.yml # 自动同步工作流
61
- ├── scripts/
62
- │ ├── sync-external.mjs # 同步引擎 (ES Module)
63
- │ └── update-registry.mjs # 注册表生成器 (ES Module)
64
- ├── config/
65
- │ └── skill-categories.json # 技能分类配置
66
- ├── lib/
67
- │ ├── commands.js # 基础命令 (CommonJS)
37
+ ├── cli.js # 入口文件
38
+
39
+ ├── lib/ # 核心代码 (CommonJS)
40
+ ├── commands.js # 命令实现
68
41
  │ ├── config.js # 配置管理
69
- │ ├── marketplace.js # 市场命令 (CommonJS)
42
+ │ ├── marketplace.js # 技能市场
43
+ │ ├── config-schema.js # 配置 Schema
44
+ │ ├── config-validator.js # 配置验证
45
+ │ ├── config-manager.js # 配置管理器
46
+ │ ├── quality-rules.js # 质量规则
47
+ │ ├── quality-gate.js # 质量门禁
48
+ │ ├── errors.js # 错误类型
70
49
  │ └── utils.js # 工具函数
71
- ├── template/.claude/skills/
72
- ├── manus-kickoff/ # 本地技能
73
- └── ...
50
+
51
+ ├── template/.claude/ # 项目模板
52
+ ├── commands/ # 斜杠命令
53
+ │ ├── skills/ # 技能库
54
+ │ ├── hooks/ # 自动化钩子
55
+ │ └── settings.json # 默认配置
56
+
57
+ ├── scripts/ # 工具脚本 (ES Modules)
58
+ │ ├── sync-external.mjs # 同步外部技能
59
+ │ └── update-registry.mjs # 更新技能注册表
60
+
61
+ ├── config/ # 配置文件
62
+ │ ├── defaults.json # 默认配置
63
+ │ ├── quality-gate.json # 质量门禁配置
64
+ │ └── skill-categories.json # 技能分类
65
+
74
66
  ├── sources.yaml # 外部技能清单
75
- ├── cli.js # 入口文件
67
+ ├── .claude-plugin/ # Claude Code 插件
68
+ │ └── marketplace.json # 技能注册表
69
+
76
70
  └── package.json # 项目配置
77
71
  ```
78
72
 
73
+ ### 模块职责
74
+
75
+ | 模块 | 职责 | 类型 |
76
+ |------|------|------|
77
+ | `cli.js` | 命令入口、分发 | CommonJS |
78
+ | `lib/commands.js` | 核心命令实现 | CommonJS |
79
+ | `lib/marketplace.js` | 技能市场命令 | CommonJS |
80
+ | `lib/config*.js` | 配置系统 | CommonJS |
81
+ | `lib/quality*.js` | 质量门禁系统 | CommonJS |
82
+ | `scripts/*.mjs` | 工具脚本 | ES Module |
83
+
79
84
  ---
80
85
 
81
- ## 添加新技能
86
+ ## Level 3: 命令系统 (15 分钟)
82
87
 
83
- ### 1. 本地技能 (Native Skill)
88
+ ### 命令分发的数据流
84
89
 
85
- 直接在 `template/.claude/skills/` 下创建目录:
90
+ ```
91
+ 用户输入
92
+
93
+
94
+ ┌─────────────┐
95
+ │ cli.js │ 解析命令
96
+ └──────┬──────┘
97
+
98
+
99
+ ┌─────────────────────────────────┐
100
+ │ COMMANDS 注册表 │
101
+ │ { │
102
+ │ 'init': { help, args }, │
103
+ │ 'sync': { help, args }, │
104
+ │ ... │
105
+ │ } │
106
+ └────────────┬────────────────────┘
107
+
108
+
109
+ ┌─────────────────────────────────┐
110
+ │ runCommand(cmd, args) │
111
+ │ ├─ 核心命令 → lib/commands.js │
112
+ │ ├─ 市场命令 → lib/marketplace.js│
113
+ │ └─ 技能命令 → lib/commands.js │
114
+ └─────────────────────────────────┘
115
+ ```
116
+
117
+ ### 添加新命令
118
+
119
+ **Step 1**: 在 `lib/commands.js` 添加实现
120
+
121
+ ```javascript
122
+ const commands = {
123
+ // 新命令
124
+ 'my:command': (arg1) => {
125
+ console.log('执行命令,参数:', arg1);
126
+ // 你的逻辑
127
+ }
128
+ };
129
+ ```
130
+
131
+ **Step 2**: 在 `cli.js` 注册
132
+
133
+ ```javascript
134
+ const COMMANDS = {
135
+ 'my:command': {
136
+ help: '命令描述',
137
+ args: '<arg1>'
138
+ }
139
+ };
140
+ ```
141
+
142
+ **Step 3**: 测试
86
143
 
87
144
  ```bash
145
+ node cli.js my:command test
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Level 4: 技能系统 (20 分钟)
151
+
152
+ ### 什么是技能?
153
+
154
+ **技能 = 知识 + 指令 + 资源**
155
+
156
+ ```
157
+ my-skill/
158
+ ├── SKILL.md # 知识和指令
159
+ ├── metadata.yaml # 技能元数据
160
+ ├── scripts/ # 可执行脚本 (资源)
161
+ └── templates/ # 模板文件 (资源)
162
+ ```
163
+
164
+ ### 添加本地技能
165
+
166
+ ```bash
167
+ # 1. 创建技能目录
88
168
  mkdir -p template/.claude/skills/my-skill
89
- cd template/.claude/skills/my-skill
90
169
 
91
- # 创建 SKILL.md
92
- cat > SKILL.md << 'EOF'
170
+ # 2. 创建 SKILL.md
171
+ cat > template/.claude/skills/my-skill/SKILL.md << 'EOF'
93
172
  # My Skill
94
173
 
95
- > A brief description of what this skill does
174
+ > 技能描述
96
175
 
97
- ## Usage
176
+ ## 使用场景
98
177
 
99
- When to use this skill...
178
+ 当用户需要...时使用此技能。
100
179
 
101
180
  EOF
102
181
 
103
- # 创建 metadata.yaml
104
- cat > metadata.yaml << 'EOF'
182
+ # 3. 创建 metadata.yaml
183
+ cat > template/.claude/skills/my-skill/metadata.yaml << 'EOF'
105
184
  name: my-skill
106
- description: A brief description
185
+ description: 技能描述
107
186
  version: 1.0.0
108
187
  category: tools
109
188
  keywords:
110
189
  - my-skill
111
- - example
112
- dependencies: []
113
190
  author:
114
191
  name: Your Name
115
192
  github: yourusername
@@ -117,29 +194,13 @@ license: MIT
117
194
  EOF
118
195
  ```
119
196
 
120
- `sources.yaml` 中声明为 native:
121
-
122
- ```yaml
123
- - name: my-skill
124
- description: "A brief description"
125
- native: true
126
- target:
127
- category: tools
128
- path: template/.claude/skills/my-skill
129
- author:
130
- name: Your Name
131
- github: yourusername
132
- license: MIT
133
- homepage: https://github.com/yourusername/your-repo
134
- ```
135
-
136
- ### 2. 外部技能 (External Skill)
197
+ ### 添加外部技能
137
198
 
138
- 编辑 `sources.yaml` 添加外部技能:
199
+ 编辑 `sources.yaml`:
139
200
 
140
201
  ```yaml
141
202
  - name: external-skill
142
- description: "Skill from external repository"
203
+ description: "来自外部仓库的技能"
143
204
  source:
144
205
  repo: owner/repo
145
206
  path: skills/external-skill
@@ -147,277 +208,254 @@ EOF
147
208
  target:
148
209
  category: automation
149
210
  path: template/.claude/skills/automation/external-skill
150
- author:
151
- name: Owner Name
152
- github: owner
153
- license: MIT
154
- homepage: https://github.com/owner/repo
155
- verified: false
156
211
  sync:
157
212
  include:
158
213
  - SKILL.md
159
214
  - src/
160
215
  exclude:
161
216
  - node_modules/
162
- - "*.lock"
163
217
  ```
164
218
 
165
- ### 3. 更新注册表
219
+ 运行同步:
166
220
 
167
221
  ```bash
168
- # 同步外部技能
169
- npm run sync
170
-
171
- # 更新市场注册表
172
- npm run update-registry
173
-
174
- # 或一次性执行
175
222
  npm run sync:all
176
223
  ```
177
224
 
178
225
  ---
179
226
 
180
- ## 同步机制原理
227
+ ## Level 5: 同步机制 (25 分钟)
181
228
 
182
- ### sync-external.mjs 工作流程
229
+ ### 自动同步工作流
183
230
 
184
231
  ```
185
232
  ┌─────────────────────────────────────────────────────────────┐
186
- 1. 解析 sources.yaml
187
- - 读取技能清单
188
- - 区分 native 和 external 技能
189
- └─────────────────────────────────────────────────────────────┘
190
-
191
-
233
+ sources.yaml
234
+ ├─ native 技能 (本地)
235
+ └─ external 技能 (GitHub)
236
+ └──────────────┬──────────────────────────────────────────────┘
237
+
238
+
192
239
  ┌─────────────────────────────────────────────────────────────┐
193
- 2. 遍历每个技能
194
- - 跳过 native 技能
195
- - 验证 external 技能配置
196
- └─────────────────────────────────────────────────────────────┘
197
-
198
-
240
+ sync-external.mjs
241
+ ├─ 克隆外部仓库
242
+ ├─ 过滤文件 (include/exclude)
243
+ │ └─ 复制到 template/.claude/skills/ │
244
+ └──────────────┬──────────────────────────────────────────────┘
245
+
246
+
199
247
  ┌─────────────────────────────────────────────────────────────┐
200
- 3. 克隆外部仓库
201
- - git clone --depth 1
202
- - 使用指定的 ref (branch/tag)
203
- └─────────────────────────────────────────────────────────────┘
204
-
205
-
206
- ┌─────────────────────────────────────────────────────────────┐
207
- │ 4. 复制文件到目标目录 │
208
- │ - 根据 sync.include 过滤文件 │
209
- │ - 根据 sync.exclude 排除文件 │
210
- └─────────────────────────────────────────────────────────────┘
211
-
212
-
248
+ update-registry.mjs
249
+ ├─ 扫描技能目录
250
+ ├─ 提取元数据
251
+ │ └─ 生成 marketplace.json │
252
+ └──────────────┬──────────────────────────────────────────────┘
253
+
254
+
213
255
  ┌─────────────────────────────────────────────────────────────┐
214
- 5. 生成源信息文件
215
- - 写入 .source.json
216
- │ - 记录同步时间和来源 │
217
- └─────────────────────────────────────────────────────────────┘
218
-
219
-
220
- ┌─────────────────────────────────────────────────────────────┐
221
- │ 6. 清理临时文件 │
222
- │ - 删除克隆的临时目录 │
256
+ .claude-plugin/marketplace.json
257
+ (Claude Code 读取的注册表)
223
258
  └─────────────────────────────────────────────────────────────┘
224
259
  ```
225
260
 
226
- ### update-registry.mjs 工作流程
261
+ ### GitHub Actions 自动同步
227
262
 
228
- ```
229
- ┌─────────────────────────────────────────────────────────────┐
230
- │ 1. 扫描技能目录 │
231
- │ - 递归查找所有包含 SKILL.md 或 .source.json 的目录 │
232
- └─────────────────────────────────────────────────────────────┘
233
-
234
-
235
- ┌─────────────────────────────────────────────────────────────┐
236
- │ 2. 提取技能元数据 │
237
- │ - 读取 metadata.yaml │
238
- - 读取 .source.json │
239
- - 从 SKILL.md 提取描述 │
240
- └─────────────────────────────────────────────────────────────┘
241
-
242
-
243
- ┌─────────────────────────────────────────────────────────────┐
244
- 3. 确定技能分类 │
245
- - 根据 metadata.category │
246
- - 或根据路径推断 │
247
- └─────────────────────────────────────────────────────────────┘
248
-
249
-
250
- ┌─────────────────────────────────────────────────────────────┐
251
- │ 4. 构建插件注册表 │
252
- │ - 按分类组织技能 │
253
- │ - 添加元数据 (版本、时间戳、数量) │
254
- └─────────────────────────────────────────────────────────────┘
255
-
256
-
257
- ┌─────────────────────────────────────────────────────────────┐
258
- │ 5. 写入 marketplace.json │
259
- │ - 格式化为 JSON │
260
- │ - 符合 Claude Code 插件规范 │
261
- └─────────────────────────────────────────────────────────────┘
263
+ `.github/workflows/sync-skills.yml`:
264
+
265
+ ```yaml
266
+ name: Sync External Skills
267
+ on:
268
+ schedule:
269
+ - cron: '0 0 * * *' # 每天运行
270
+ workflow_dispatch: # 手动触发
271
+ jobs:
272
+ sync:
273
+ runs-on: ubuntu-latest
274
+ steps:
275
+ - uses: actions/checkout@v3
276
+ - run: npm install
277
+ - run: npm run sync:all
278
+ - run: git config user.name "github-actions[bot]"
279
+ - run: git add .claude-plugin/
280
+ - run: git commit -m "chore: sync skills"
281
+ - run: git push
262
282
  ```
263
283
 
264
284
  ---
265
285
 
266
- ## 命令开发
286
+ ## Level 6: 配置系统 (30 分钟)
267
287
 
268
- ### 添加新命令
269
-
270
- #### 1. 在 `lib/commands.js` 或 `lib/marketplace.js` 添加处理函数
271
-
272
- ```javascript
273
- const commands = {
274
- // ...existing commands...
288
+ ### 三层配置
275
289
 
276
- // 新命令
277
- 'my:command': (arg1, arg2) => {
278
- console.log('Executing my:command with:', arg1, arg2);
279
- // 命令逻辑
280
- }
281
- };
282
290
  ```
283
-
284
- #### 2. 在 `cli.js` 的 COMMANDS 注册表添加
285
-
286
- ```javascript
287
- const COMMANDS = {
288
- // ...existing commands...
289
-
290
- 'my:command': {
291
- help: 'Command description',
292
- args: '<arg1> <arg2>'
293
- }
294
- };
291
+ ┌─────────────────────────────────────────────────────────────┐
292
+ │ 全局配置 (~/.claude/config.json) │
293
+ │ ├─ Agent 定义 │
294
+ │ ├─ 默认模型 │
295
+ │ └─ 技能列表 │
296
+ ├─────────────────────────────────────────────────────────────┤
297
+ │ 项目配置 (./.claude/settings.json) │
298
+ ├─ Hook 配置 │
299
+ │ └─ 项目覆盖设置 │
300
+ ├─────────────────────────────────────────────────────────────┤
301
+ 质量配置 (./.claude/quality-gate.json) │
302
+ │ ├─ 规则启用设置 │
303
+ │ └─ 门禁触发条件 │
304
+ └─────────────────────────────────────────────────────────────┘
295
305
  ```
296
306
 
297
- #### 3. 添加帮助示例
307
+ ### 配置验证流程
298
308
 
299
- ```javascript
300
- // 在 showHelp() 函数的 Examples 部分
301
- console.log(' smc my:command value1 value2');
302
309
  ```
303
-
304
- ### 命令分类
305
-
306
- - **核心命令**: 直接在 `lib/commands.js` 实现
307
- - **市场命令**: 在 `lib/marketplace.js` 实现
308
- - **技能命令**: 在 `lib/commands.js` 的 `skill:*` 组
309
-
310
- ---
311
-
312
- ## 调试指南
313
-
314
- ### 启用详细输出
315
-
316
- ```bash
317
- # 运行同步脚本并查看完整输出
318
- node --trace-warnings scripts/sync-external.mjs
310
+ ┌─────────────────────────────────────────────────────────────┐
311
+ │ config-schema.js │
312
+ │ ├─ CONFIG_SCHEMA (JSON Schema) │
313
+ │ ├─ SETTINGS_SCHEMA │
314
+ │ └─ QUALITY_GATE_SCHEMA │
315
+ └──────────────┬──────────────────────────────────────────────┘
316
+
317
+
318
+ ┌─────────────────────────────────────────────────────────────┐
319
+ │ config-validator.js │
320
+ │ ├─ AJV 验证器 │
321
+ │ ├─ validate(config, schema) │
322
+ │ └─ validateFile(path, schema) │
323
+ └──────────────┬──────────────────────────────────────────────┘
324
+
325
+
326
+ ┌─────────────────────────────────────────────────────────────┐
327
+ │ config-manager.js │
328
+ │ ├─ backup() - 创建备份 │
329
+ │ ├─ rollback() - 回滚配置 │
330
+ │ ├─ diff() - 配置对比 │
331
+ │ └─ _expandEnvVars() - 环境变量展开 │
332
+ └─────────────────────────────────────────────────────────────┘
319
333
  ```
320
334
 
321
- ### 检查配置
335
+ ### 环境变量展开
322
336
 
323
- ```bash
324
- # 查看市场状态
325
- smc marketplace:status
337
+ 配置支持环境变量语法:
326
338
 
327
- # 列出所有技能
328
- smc marketplace:list
339
+ ```json
340
+ {
341
+ "apiKey": "${API_KEY:default-key}",
342
+ "endpoint": "${ENDPOINT:-https://api.example.com}"
343
+ }
329
344
  ```
330
345
 
331
- ### 常见问题
346
+ ---
332
347
 
333
- #### 1. YAML 解析错误
348
+ ## Level 7: 质量门禁 (35 分钟)
334
349
 
335
- ```bash
336
- # 验证 YAML 语法
337
- node -e "const yaml = require('yaml'); console.log(yaml.parse(require('fs').readFileSync('sources.yaml', 'utf8')))"
338
- ```
350
+ ### 质量检查流程
339
351
 
340
- #### 2. Git 克隆失败
341
-
342
- ```bash
343
- # 手动测试克隆
344
- git clone --depth 1 https://github.com/owner/repo /tmp/test-repo
345
352
  ```
346
-
347
- #### 3. 权限问题
348
-
349
- ```bash
350
- # 检查目录权限
351
- ls -la template/.claude/skills/
352
-
353
- # 修复权限
354
- chmod -R u+rwX template/.claude/skills/
353
+ git commit
354
+
355
+
356
+ ┌─────────────────────────────────────────────────────────────┐
357
+ │ pre-commit hook │
358
+ │ ├─ 读取 .claude/quality-gate.json │
359
+ │ └─ 调用 quality-gate.js │
360
+ └──────────────┬──────────────────────────────────────────────┘
361
+
362
+
363
+ ┌─────────────────────────────────────────────────────────────┐
364
+ │ quality-gate.js │
365
+ │ ├─ 加载启用的规则 │
366
+ │ ├─ 遍历暂存的文件 │
367
+ │ └─ 执行每个规则的 check() │
368
+ └──────────────┬──────────────────────────────────────────────┘
369
+
370
+
371
+ ┌─────────────────────────────────────────────────────────────┐
372
+ │ quality-rules.js │
373
+ │ ├─ file-size-limit (文件大小) │
374
+ │ ├─ line-count-limit (行数) │
375
+ │ ├─ no-console-logs (无 console) │
376
+ │ ├─ todo-comments (TODO 检查) │
377
+ │ ├─ directory-depth (目录深度) │
378
+ │ ├─ no-empty-files (无空文件) │
379
+ │ ├─ no-trailing-whitespace (无尾随空格) │
380
+ │ └─ function-length (函数长度) │
381
+ └──────────────┬──────────────────────────────────────────────┘
382
+
383
+ ┌───────┴────────┐
384
+ ▼ ▼
385
+ 通过 ✅ 失败 ❌
386
+ │ │
387
+ ▼ ▼
388
+ 允许提交 阻止提交
355
389
  ```
356
390
 
357
- ### 调试日志
391
+ ### 添加自定义规则
358
392
 
359
- 同步脚本会在 `.tmp/` 目录存储临时克隆的仓库。如果同步失败,检查此目录:
393
+ 编辑 `lib/quality-rules.js`:
360
394
 
361
- ```bash
362
- ls -la .tmp/
395
+ ```javascript
396
+ RuleRegistry.register('my-rule', {
397
+ name: 'My Custom Rule',
398
+ description: '规则描述',
399
+ severity: 'warn',
400
+
401
+ check(file, config) {
402
+ const content = fs.readFileSync(file, 'utf8');
403
+ const issues = [];
404
+
405
+ // 你的检查逻辑
406
+ if (content.includes('TODO')) {
407
+ issues.push({
408
+ line: 1,
409
+ message: 'Found TODO',
410
+ fix: 'Resolve TODOs'
411
+ });
412
+ }
413
+
414
+ return issues;
415
+ }
416
+ });
363
417
  ```
364
418
 
365
419
  ---
366
420
 
367
- ## 测试
421
+ ## 快速参考
368
422
 
369
- ### 手动测试
423
+ ### 开发工作流
370
424
 
371
425
  ```bash
372
- # 测试同步
373
- npm run sync
426
+ # 1. 修改代码
427
+ vim lib/commands.js
374
428
 
375
- # 测试注册表生成
376
- npm run update-registry
429
+ # 2. 运行测试
430
+ npm test
377
431
 
378
- # 测试完整流程
379
- npm run sync:all
380
- ```
381
-
382
- ### CI/CD 测试
432
+ # 3. 本地测试
433
+ node cli.js my-command
383
434
 
384
- 推送更改到 GitHub,自动触发工作流:
435
+ # 4. 更新版本
436
+ npm version patch
385
437
 
386
- ```bash
438
+ # 5. 发布
439
+ npm run sync:all
387
440
  git add .
388
- git commit -m "test: update sources.yaml"
389
- git push
441
+ git commit -m "chore: release"
442
+ git push --follow-tags
443
+ npm publish
390
444
  ```
391
445
 
392
- 手动触发工作流:
393
- 1. 进入 GitHub 仓库页面
394
- 2. 点击 "Actions" 标签
395
- 3. 选择 "Sync External Skills" 工作流
396
- 4. 点击 "Run workflow"
397
-
398
- ---
399
-
400
- ## 发布
401
-
402
- ### 更新版本号
446
+ ### 调试技巧
403
447
 
404
448
  ```bash
405
- # 更新 package.json
406
- npm version patch # 或 minor, major
407
-
408
- # 更新 marketplace.json 中的版本
409
- npm run update-registry
410
- ```
449
+ # 详细输出
450
+ node --trace-warnings cli.js my-command
411
451
 
412
- ### 发布到 npm
452
+ # 检查配置
453
+ node cli.js config:validate
413
454
 
414
- ```bash
415
- npm publish
455
+ # 质量检查
456
+ node cli.js qg:check
416
457
  ```
417
458
 
418
- ### 创建 Git 标签
459
+ ---
419
460
 
420
- ```bash
421
- git tag v$(node -p "require('./package.json').version")
422
- git push --tags
423
- ```
461
+ *更多细节查看 [README.md](../README.md) | [Q&A.md](../Q&A.md) | [AGENTS.md](../AGENTS.md)*