sumulige-claude 1.0.6 → 1.0.8
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/.claude/.kickoff-hint.txt +51 -0
- package/.claude/ANCHORS.md +40 -0
- package/.claude/MEMORY.md +34 -0
- package/.claude/PROJECT_LOG.md +101 -0
- package/.claude/THINKING_CHAIN_GUIDE.md +287 -0
- package/.claude/commands/commit-push-pr.md +59 -0
- package/.claude/commands/commit.md +53 -0
- package/.claude/commands/pr.md +76 -0
- package/.claude/commands/review.md +61 -0
- package/.claude/commands/sessions.md +62 -0
- package/.claude/commands/skill-create.md +131 -0
- package/.claude/commands/test.md +56 -0
- package/.claude/commands/todos.md +99 -0
- package/.claude/commands/verify-work.md +63 -0
- package/.claude/hooks/code-formatter.cjs +187 -0
- package/.claude/hooks/code-tracer.cjs +331 -0
- package/.claude/hooks/conversation-recorder.cjs +340 -0
- package/.claude/hooks/decision-tracker.cjs +398 -0
- package/.claude/hooks/export.cjs +329 -0
- package/.claude/hooks/multi-session.cjs +181 -0
- package/.claude/hooks/privacy-filter.js +224 -0
- package/.claude/hooks/project-kickoff.cjs +114 -0
- package/.claude/hooks/rag-skill-loader.cjs +159 -0
- package/.claude/hooks/session-end.sh +61 -0
- package/.claude/hooks/sync-to-log.sh +83 -0
- package/.claude/hooks/thinking-silent.cjs +145 -0
- package/.claude/hooks/tl-summary.sh +54 -0
- package/.claude/hooks/todo-manager.cjs +248 -0
- package/.claude/hooks/verify-work.cjs +134 -0
- package/.claude/sessions/active-sessions.json +359 -0
- package/.claude/settings.local.json +43 -2
- package/.claude/thinking-routes/.last-sync +1 -0
- package/.claude/thinking-routes/QUICKREF.md +98 -0
- package/.claude-plugin/marketplace.json +71 -0
- package/.github/workflows/sync-skills.yml +74 -0
- package/AGENTS.md +81 -22
- package/DEV_TOOLS_GUIDE.md +190 -0
- package/PROJECT_STRUCTURE.md +10 -1
- package/README.md +142 -708
- package/cli.js +116 -822
- package/config/defaults.json +34 -0
- package/config/skill-categories.json +40 -0
- package/development/todos/INDEX.md +14 -58
- package/docs/DEVELOPMENT.md +423 -0
- package/docs/MARKETPLACE.md +352 -0
- package/lib/commands.js +698 -0
- package/lib/config.js +71 -0
- package/lib/marketplace.js +486 -0
- package/lib/utils.js +62 -0
- package/package.json +11 -5
- package/scripts/sync-external.mjs +298 -0
- package/scripts/update-registry.mjs +325 -0
- package/sources.yaml +83 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.7",
|
|
3
|
+
"model": "claude-opus-4.5",
|
|
4
|
+
"agents": {
|
|
5
|
+
"conductor": {
|
|
6
|
+
"role": "Task coordination and decomposition"
|
|
7
|
+
},
|
|
8
|
+
"architect": {
|
|
9
|
+
"role": "Architecture design and decisions"
|
|
10
|
+
},
|
|
11
|
+
"builder": {
|
|
12
|
+
"role": "Code implementation and testing"
|
|
13
|
+
},
|
|
14
|
+
"reviewer": {
|
|
15
|
+
"role": "Code review and quality check"
|
|
16
|
+
},
|
|
17
|
+
"librarian": {
|
|
18
|
+
"role": "Documentation and knowledge"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"skills": [
|
|
22
|
+
"anthropics/skills",
|
|
23
|
+
"numman-ali/n-skills"
|
|
24
|
+
],
|
|
25
|
+
"hooks": {
|
|
26
|
+
"preTask": [],
|
|
27
|
+
"postTask": []
|
|
28
|
+
},
|
|
29
|
+
"thinkingLens": {
|
|
30
|
+
"enabled": true,
|
|
31
|
+
"autoSync": true,
|
|
32
|
+
"syncInterval": 20
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"categories": {
|
|
4
|
+
"tools": {
|
|
5
|
+
"name": "CLI 工具",
|
|
6
|
+
"description": "命令行工具和实用程序",
|
|
7
|
+
"icon": "🔧"
|
|
8
|
+
},
|
|
9
|
+
"development": {
|
|
10
|
+
"name": "开发辅助",
|
|
11
|
+
"description": "语言特定的开发辅助工具",
|
|
12
|
+
"icon": "💻"
|
|
13
|
+
},
|
|
14
|
+
"productivity": {
|
|
15
|
+
"name": "效率工具",
|
|
16
|
+
"description": "工作流自动化和效率提升",
|
|
17
|
+
"icon": "⚡"
|
|
18
|
+
},
|
|
19
|
+
"automation": {
|
|
20
|
+
"name": "自动化",
|
|
21
|
+
"description": "浏览器、CI/CD、系统自动化",
|
|
22
|
+
"icon": "🤖"
|
|
23
|
+
},
|
|
24
|
+
"data": {
|
|
25
|
+
"name": "数据处理",
|
|
26
|
+
"description": "数据库、数据处理和分析",
|
|
27
|
+
"icon": "📊"
|
|
28
|
+
},
|
|
29
|
+
"documentation": {
|
|
30
|
+
"name": "文档",
|
|
31
|
+
"description": "文档、图表、规范生成",
|
|
32
|
+
"icon": "📚"
|
|
33
|
+
},
|
|
34
|
+
"workflow": {
|
|
35
|
+
"name": "工作流编排",
|
|
36
|
+
"description": "多代理编排和协调",
|
|
37
|
+
"icon": "🎼"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -2,62 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
> 本目录由 AI 自动维护,记录项目开发任务和进度
|
|
4
4
|
|
|
5
|
-
**最后更新**: 2026-01-
|
|
5
|
+
**最后更新**: 2026-01-14
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
@version: 1.0.0
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 目录结构
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
development/todos/
|
|
13
|
+
├── INDEX.md # 本文件 - 任务总览
|
|
14
|
+
├── active/ # 进行中的任务 (1)
|
|
15
|
+
├── completed/ # 已完成的任务 (1)
|
|
16
|
+
├── backlog/ # 待规划的任务 (1)
|
|
17
|
+
└── archived/ # 已归档的任务 (0)
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## 📁 按状态查看
|
|
23
|
-
|
|
24
|
-
| 状态 | 目录 | 数量 |
|
|
25
|
-
|------|------|------|
|
|
26
|
-
| 🚧 进行中 | `active/` | 1 |
|
|
27
|
-
| ✅ 已完成 | `completed/` | 1 |
|
|
28
|
-
| 📋 待办 | `backlog/` | 1 |
|
|
29
|
-
| 📦 已归档 | `archived/` | 0 |
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## 🎯 按优先级查看
|
|
34
|
-
|
|
35
|
-
### P0 - 关键任务 `0/0`
|
|
36
|
-
|
|
37
|
-
> 阻塞发布,必须完成
|
|
38
|
-
|
|
39
|
-
*暂无 P0 任务*
|
|
40
|
-
|
|
41
|
-
### P1 - 高优先级 `1/2`
|
|
42
|
-
|
|
43
|
-
> 重要功能,下个里程碑
|
|
44
|
-
|
|
45
|
-
- 🚧 [TODO 任务管理系统](./active/todo-system.md) `branch: feature/todo-system`
|
|
46
|
-
- ✅ [Boris 最佳实践集成](./completed/boris-optimizations.md) `branch: feature/boris-optimizations`
|
|
47
|
-
|
|
48
|
-
### P2 - 中优先级 `0/1`
|
|
49
|
-
|
|
50
|
-
> 正常功能开发
|
|
51
|
-
|
|
52
|
-
- 📋 [MCP 集成增强](./backlog/mcp-integration.md) `branch: feature/mcp-integration`
|
|
53
|
-
|
|
54
|
-
### P3 - 低优先级 `0/0`
|
|
55
|
-
|
|
56
|
-
> 改进优化,有空再做
|
|
57
|
-
|
|
58
|
-
*暂无 P3 任务*
|
|
59
|
-
|
|
60
|
-
---
|
|
20
|
+
## 快速跳转
|
|
61
21
|
|
|
62
22
|
## 🚧 进行中的任务 (1)
|
|
63
23
|
|
|
@@ -65,23 +25,19 @@ P3 (低优先级): `░░░░░░░░░░░░░░░░░░░
|
|
|
65
25
|
|
|
66
26
|
## ✅ 最近完成的任务
|
|
67
27
|
|
|
68
|
-
- [
|
|
28
|
+
- [Boris 最佳实践集成](./completed/boris-optimizations.md)
|
|
69
29
|
|
|
70
30
|
## 📋 待办任务 (1)
|
|
71
31
|
|
|
72
32
|
- [P2] [MCP 集成增强](./backlog/mcp-integration.md)
|
|
73
33
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
## 📂 全部目录
|
|
34
|
+
## 全部目录
|
|
77
35
|
|
|
78
36
|
- [🚧 所有进行中的任务](./active/) - 当前开发重点
|
|
79
37
|
- [✅ 所有已完成的任务](./completed/) - 完整历史
|
|
80
38
|
- [📋 所有待办任务](./backlog/) - 待规划
|
|
81
39
|
- [📦 所有已归档任务](./archived/) - 历史记录
|
|
82
40
|
|
|
83
|
-
---
|
|
84
|
-
|
|
85
41
|
## 使用方式
|
|
86
42
|
|
|
87
43
|
### 查看任务
|
|
@@ -97,7 +53,7 @@ cat development/todos/active/feature-name.md
|
|
|
97
53
|
### 创建新任务
|
|
98
54
|
在 Claude Code 中:
|
|
99
55
|
```
|
|
100
|
-
|
|
56
|
+
创建一个新任务:实现用户登录功能
|
|
101
57
|
```
|
|
102
58
|
|
|
103
59
|
AI 会自动在 `active/` 目录创建对应的任务文件。
|
|
@@ -111,4 +67,4 @@ AI 会自动将任务移动到 `completed/` 目录。
|
|
|
111
67
|
|
|
112
68
|
---
|
|
113
69
|
|
|
114
|
-
> **维护说明**: 本系统由 AI
|
|
70
|
+
> **维护说明**: 本系统由 AI 自动维护,请勿手动编辑(除非你知道自己在做什么)
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
# Development Guide - SMC Marketplace
|
|
2
|
+
|
|
3
|
+
本文档详细说明了 SMC 技能市场和自动同步系统的开发细节。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- [架构概述](#架构概述)
|
|
8
|
+
- [项目结构](#项目结构)
|
|
9
|
+
- [添加新技能](#添加新技能)
|
|
10
|
+
- [同步机制原理](#同步机制原理)
|
|
11
|
+
- [命令开发](#命令开发)
|
|
12
|
+
- [调试指南](#调试指南)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 架构概述
|
|
17
|
+
|
|
18
|
+
### 核心组件
|
|
19
|
+
|
|
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
|
+
```
|
|
41
|
+
|
|
42
|
+
### 数据流
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
sources.yaml ──► sync-external.mjs ──► template/.claude/skills/
|
|
46
|
+
│ │
|
|
47
|
+
│ ▼
|
|
48
|
+
└──────────────────► update-registry.mjs ──► marketplace.json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 项目结构
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
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)
|
|
68
|
+
│ ├── config.js # 配置管理
|
|
69
|
+
│ ├── marketplace.js # 市场命令 (CommonJS)
|
|
70
|
+
│ └── utils.js # 工具函数
|
|
71
|
+
├── template/.claude/skills/
|
|
72
|
+
│ ├── manus-kickoff/ # 本地技能
|
|
73
|
+
│ └── ...
|
|
74
|
+
├── sources.yaml # 外部技能清单
|
|
75
|
+
├── cli.js # 入口文件
|
|
76
|
+
└── package.json # 项目配置
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 添加新技能
|
|
82
|
+
|
|
83
|
+
### 1. 本地技能 (Native Skill)
|
|
84
|
+
|
|
85
|
+
直接在 `template/.claude/skills/` 下创建目录:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
mkdir -p template/.claude/skills/my-skill
|
|
89
|
+
cd template/.claude/skills/my-skill
|
|
90
|
+
|
|
91
|
+
# 创建 SKILL.md
|
|
92
|
+
cat > SKILL.md << 'EOF'
|
|
93
|
+
# My Skill
|
|
94
|
+
|
|
95
|
+
> A brief description of what this skill does
|
|
96
|
+
|
|
97
|
+
## Usage
|
|
98
|
+
|
|
99
|
+
When to use this skill...
|
|
100
|
+
|
|
101
|
+
EOF
|
|
102
|
+
|
|
103
|
+
# 创建 metadata.yaml
|
|
104
|
+
cat > metadata.yaml << 'EOF'
|
|
105
|
+
name: my-skill
|
|
106
|
+
description: A brief description
|
|
107
|
+
version: 1.0.0
|
|
108
|
+
category: tools
|
|
109
|
+
keywords:
|
|
110
|
+
- my-skill
|
|
111
|
+
- example
|
|
112
|
+
dependencies: []
|
|
113
|
+
author:
|
|
114
|
+
name: Your Name
|
|
115
|
+
github: yourusername
|
|
116
|
+
license: MIT
|
|
117
|
+
EOF
|
|
118
|
+
```
|
|
119
|
+
|
|
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)
|
|
137
|
+
|
|
138
|
+
编辑 `sources.yaml` 添加外部技能:
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
- name: external-skill
|
|
142
|
+
description: "Skill from external repository"
|
|
143
|
+
source:
|
|
144
|
+
repo: owner/repo
|
|
145
|
+
path: skills/external-skill
|
|
146
|
+
ref: main
|
|
147
|
+
target:
|
|
148
|
+
category: automation
|
|
149
|
+
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
|
+
sync:
|
|
157
|
+
include:
|
|
158
|
+
- SKILL.md
|
|
159
|
+
- src/
|
|
160
|
+
exclude:
|
|
161
|
+
- node_modules/
|
|
162
|
+
- "*.lock"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 3. 更新注册表
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# 同步外部技能
|
|
169
|
+
npm run sync
|
|
170
|
+
|
|
171
|
+
# 更新市场注册表
|
|
172
|
+
npm run update-registry
|
|
173
|
+
|
|
174
|
+
# 或一次性执行
|
|
175
|
+
npm run sync:all
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 同步机制原理
|
|
181
|
+
|
|
182
|
+
### sync-external.mjs 工作流程
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
186
|
+
│ 1. 解析 sources.yaml │
|
|
187
|
+
│ - 读取技能清单 │
|
|
188
|
+
│ - 区分 native 和 external 技能 │
|
|
189
|
+
└─────────────────────────────────────────────────────────────┘
|
|
190
|
+
│
|
|
191
|
+
▼
|
|
192
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
193
|
+
│ 2. 遍历每个技能 │
|
|
194
|
+
│ - 跳过 native 技能 │
|
|
195
|
+
│ - 验证 external 技能配置 │
|
|
196
|
+
└─────────────────────────────────────────────────────────────┘
|
|
197
|
+
│
|
|
198
|
+
▼
|
|
199
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
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
|
+
▼
|
|
213
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
214
|
+
│ 5. 生成源信息文件 │
|
|
215
|
+
│ - 写入 .source.json │
|
|
216
|
+
│ - 记录同步时间和来源 │
|
|
217
|
+
└─────────────────────────────────────────────────────────────┘
|
|
218
|
+
│
|
|
219
|
+
▼
|
|
220
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
221
|
+
│ 6. 清理临时文件 │
|
|
222
|
+
│ - 删除克隆的临时目录 │
|
|
223
|
+
└─────────────────────────────────────────────────────────────┘
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### update-registry.mjs 工作流程
|
|
227
|
+
|
|
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
|
+
└─────────────────────────────────────────────────────────────┘
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 命令开发
|
|
267
|
+
|
|
268
|
+
### 添加新命令
|
|
269
|
+
|
|
270
|
+
#### 1. 在 `lib/commands.js` 或 `lib/marketplace.js` 添加处理函数
|
|
271
|
+
|
|
272
|
+
```javascript
|
|
273
|
+
const commands = {
|
|
274
|
+
// ...existing commands...
|
|
275
|
+
|
|
276
|
+
// 新命令
|
|
277
|
+
'my:command': (arg1, arg2) => {
|
|
278
|
+
console.log('Executing my:command with:', arg1, arg2);
|
|
279
|
+
// 命令逻辑
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
```
|
|
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
|
+
};
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### 3. 添加帮助示例
|
|
298
|
+
|
|
299
|
+
```javascript
|
|
300
|
+
// 在 showHelp() 函数的 Examples 部分
|
|
301
|
+
console.log(' smc my:command value1 value2');
|
|
302
|
+
```
|
|
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
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### 检查配置
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# 查看市场状态
|
|
325
|
+
smc marketplace:status
|
|
326
|
+
|
|
327
|
+
# 列出所有技能
|
|
328
|
+
smc marketplace:list
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### 常见问题
|
|
332
|
+
|
|
333
|
+
#### 1. YAML 解析错误
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# 验证 YAML 语法
|
|
337
|
+
node -e "const yaml = require('yaml'); console.log(yaml.parse(require('fs').readFileSync('sources.yaml', 'utf8')))"
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### 2. Git 克隆失败
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
# 手动测试克隆
|
|
344
|
+
git clone --depth 1 https://github.com/owner/repo /tmp/test-repo
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
#### 3. 权限问题
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# 检查目录权限
|
|
351
|
+
ls -la template/.claude/skills/
|
|
352
|
+
|
|
353
|
+
# 修复权限
|
|
354
|
+
chmod -R u+rwX template/.claude/skills/
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### 调试日志
|
|
358
|
+
|
|
359
|
+
同步脚本会在 `.tmp/` 目录存储临时克隆的仓库。如果同步失败,检查此目录:
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
ls -la .tmp/
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 测试
|
|
368
|
+
|
|
369
|
+
### 手动测试
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
# 测试同步
|
|
373
|
+
npm run sync
|
|
374
|
+
|
|
375
|
+
# 测试注册表生成
|
|
376
|
+
npm run update-registry
|
|
377
|
+
|
|
378
|
+
# 测试完整流程
|
|
379
|
+
npm run sync:all
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### CI/CD 测试
|
|
383
|
+
|
|
384
|
+
推送更改到 GitHub,自动触发工作流:
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
git add .
|
|
388
|
+
git commit -m "test: update sources.yaml"
|
|
389
|
+
git push
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
手动触发工作流:
|
|
393
|
+
1. 进入 GitHub 仓库页面
|
|
394
|
+
2. 点击 "Actions" 标签
|
|
395
|
+
3. 选择 "Sync External Skills" 工作流
|
|
396
|
+
4. 点击 "Run workflow"
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## 发布
|
|
401
|
+
|
|
402
|
+
### 更新版本号
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
# 更新 package.json
|
|
406
|
+
npm version patch # 或 minor, major
|
|
407
|
+
|
|
408
|
+
# 更新 marketplace.json 中的版本
|
|
409
|
+
npm run update-registry
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### 发布到 npm
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
npm publish
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### 创建 Git 标签
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
git tag v$(node -p "require('./package.json').version")
|
|
422
|
+
git push --tags
|
|
423
|
+
```
|