itismyskillmarket 1.2.10 → 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/.github/workflows/publish-npm.yml +59 -0
- package/.github/workflows/publish-skill.yml +72 -0
- package/5e51cb7aa8b8e60d49d86f4689f5d4d1.png +0 -0
- package/CHANGELOG.md +255 -0
- package/DEVELOPMENT.md +376 -0
- package/README.md +75 -6
- package/SKILLMARKET-GUIDE.md +288 -0
- package/dist/index.js +579 -181
- package/docs/WEEKLY-UPDATE-2026-04-23.md +43 -0
- package/docs/plans/2026-04-01-skillmarket-design.md +267 -0
- package/docs/plans/2026-04-01-skillmarket-implementation.md +1031 -0
- package/docs/plans/2026-04-15-cross-platform-adapter-design.md +416 -0
- package/docs/plans/2026-04-15-cross-platform-adapter-plan.md +833 -0
- package/docs/plans/2026-04-16-keyword-search-design.md +143 -0
- package/package.json +1 -6
- package/skills/README.md +54 -0
- package/skills/test-skill/SKILL.md +25 -0
- package/skills/test-skill/index.js +66 -0
- package/skills/test-skill/metadata.json +9 -0
- package/skills/test-skill/package.json +19 -0
- package/skills/test-skill-1/SKILL.md +24 -0
- package/skills/test-skill-1/index.js +13 -0
- package/skills/test-skill-1/metadata.json +9 -0
- package/skills/test-skill-1/package.json +16 -0
- package/skills/test-skill-2/SKILL.md +25 -0
- package/skills/test-skill-2/index.js +13 -0
- package/skills/test-skill-2/metadata.json +9 -0
- package/skills/test-skill-2/package.json +16 -0
- package/src/adapters/base.ts +87 -0
- package/src/adapters/claude.ts +31 -0
- package/src/adapters/index.ts +9 -0
- package/src/adapters/opencode.ts +40 -0
- package/src/adapters/registry.ts +77 -0
- package/src/adapters/vscode.ts +62 -0
- package/src/cli.ts +152 -49
- package/src/commands/info.ts +4 -15
- package/src/commands/install.ts +93 -54
- package/src/commands/ls.ts +182 -17
- package/src/commands/npm.ts +118 -16
- package/src/commands/search.ts +103 -0
- package/src/commands/sync.ts +6 -27
- package/src/commands/uninstall.ts +60 -7
- package/src/commands/update.ts +2 -2
- package/src/index.ts +27 -0
- package/src/types.ts +35 -0
- package/tsconfig.json +10 -0
- package/tsup.config.ts +22 -0
- package/wanxuchen-skillmarket-1.0.1.tgz +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish to npm
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [created]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
version:
|
|
9
|
+
description: 'Version to publish (e.g., 1.0.6)'
|
|
10
|
+
required: true
|
|
11
|
+
type: string
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
publish:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Update version
|
|
21
|
+
if: github.event_name == 'workflow_dispatch'
|
|
22
|
+
run: |
|
|
23
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
24
|
+
if [ "$CURRENT_VERSION" != "${{ github.event.inputs.version }}" ]; then
|
|
25
|
+
npm version ${{ github.event.inputs.version }} --no-git-tag-version
|
|
26
|
+
else
|
|
27
|
+
echo "Version already set to ${{ github.event.inputs.version }}, skipping version update"
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
- name: Setup Node
|
|
31
|
+
uses: actions/setup-node@v4
|
|
32
|
+
with:
|
|
33
|
+
node-version: '20'
|
|
34
|
+
registry-url: 'https://registry.npmjs.org'
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: npm install
|
|
38
|
+
|
|
39
|
+
- name: Build
|
|
40
|
+
run: npm run build
|
|
41
|
+
|
|
42
|
+
- name: Publish to npm
|
|
43
|
+
run: npm publish --access=public
|
|
44
|
+
env:
|
|
45
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
46
|
+
|
|
47
|
+
release:
|
|
48
|
+
needs: publish
|
|
49
|
+
if: github.event_name == 'workflow_dispatch'
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
permissions:
|
|
52
|
+
contents: write
|
|
53
|
+
steps:
|
|
54
|
+
- name: Create GitHub Release
|
|
55
|
+
uses: softprops/action-gh-release@v2
|
|
56
|
+
with:
|
|
57
|
+
tag_name: v${{ github.event.inputs.version }}
|
|
58
|
+
name: Release v${{ github.event.inputs.version }}
|
|
59
|
+
generate_release_notes: true
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Publish Skill
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
skill_name:
|
|
7
|
+
description: 'Skill name (from skills/ directory)'
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
version:
|
|
11
|
+
description: 'Version (optional, defaults to patch)'
|
|
12
|
+
required: false
|
|
13
|
+
type: string
|
|
14
|
+
default: ''
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
publish:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
with:
|
|
23
|
+
fetch-depth: 0
|
|
24
|
+
|
|
25
|
+
- name: Debug inputs
|
|
26
|
+
run: |
|
|
27
|
+
echo "skill_name input: '${{ github.event.inputs.skill_name }}'"
|
|
28
|
+
echo "version input: '${{ github.event.inputs.version }}'"
|
|
29
|
+
ls -la skills/
|
|
30
|
+
|
|
31
|
+
- name: Validate skill exists
|
|
32
|
+
run: |
|
|
33
|
+
SKILL_NAME="${{ github.event.inputs.skill_name }}"
|
|
34
|
+
echo "Skill name: $SKILL_NAME"
|
|
35
|
+
if [ -z "$SKILL_NAME" ]; then
|
|
36
|
+
echo "Error: skill_name is empty!"
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
if [ ! -d "skills/$SKILL_NAME" ]; then
|
|
40
|
+
echo "Error: Skill '$SKILL_NAME' not found in skills/ directory"
|
|
41
|
+
ls -la skills/
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
echo "Skill directory contents:"
|
|
45
|
+
ls -la "skills/$SKILL_NAME/"
|
|
46
|
+
|
|
47
|
+
- name: Setup Node
|
|
48
|
+
uses: actions/setup-node@v4
|
|
49
|
+
with:
|
|
50
|
+
node-version: '20'
|
|
51
|
+
registry-url: 'https://registry.npmjs.org'
|
|
52
|
+
|
|
53
|
+
- name: Install dependencies
|
|
54
|
+
run: |
|
|
55
|
+
cd "skills/${{ github.event.inputs.skill_name }}"
|
|
56
|
+
npm install
|
|
57
|
+
|
|
58
|
+
- name: Update version
|
|
59
|
+
run: |
|
|
60
|
+
cd "skills/${{ github.event.inputs.skill_name }}"
|
|
61
|
+
if [ -n "${{ github.event.inputs.version }}" ]; then
|
|
62
|
+
npm version ${{ github.event.inputs.version }} --no-git-tag-version
|
|
63
|
+
else
|
|
64
|
+
npm version minor --no-git-tag-version
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
- name: Publish to npm
|
|
68
|
+
run: |
|
|
69
|
+
cd "skills/${{ github.event.inputs.skill_name }}"
|
|
70
|
+
npm publish --access=public
|
|
71
|
+
env:
|
|
72
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
Binary file
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# SkillMarket v1.2.6 更新日志
|
|
2
|
+
|
|
3
|
+
**日期**: 2026-04-22
|
|
4
|
+
**版本**: 1.2.6
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔍 新功能:skm ls 搜索支持
|
|
9
|
+
|
|
10
|
+
### 功能说明
|
|
11
|
+
|
|
12
|
+
新增搜索功能,可以通过关键字搜索 skills。
|
|
13
|
+
|
|
14
|
+
### 新增选项
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# 搜索 npm 上的 skills
|
|
18
|
+
skm ls --search brain
|
|
19
|
+
skm ls -s brain
|
|
20
|
+
|
|
21
|
+
# 搜索已安装的 skills
|
|
22
|
+
skm ls --installed --search test
|
|
23
|
+
|
|
24
|
+
# 组合分页和搜索
|
|
25
|
+
skm ls --search brain --page 1 --limit 10
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 搜索字段
|
|
29
|
+
|
|
30
|
+
- skill ID
|
|
31
|
+
- displayName(显示名称)
|
|
32
|
+
- description(描述)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 🎉 新功能:skm ls 分页支持
|
|
37
|
+
|
|
38
|
+
### 功能说明
|
|
39
|
+
|
|
40
|
+
当 skill 数量较多时,现在支持分页浏览。
|
|
41
|
+
|
|
42
|
+
### 新增选项
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# 默认每页 20 个
|
|
46
|
+
skm ls
|
|
47
|
+
|
|
48
|
+
# 指定页码
|
|
49
|
+
skm ls --page 2
|
|
50
|
+
|
|
51
|
+
# 指定每页数量
|
|
52
|
+
skm ls --limit 10
|
|
53
|
+
|
|
54
|
+
# 组合使用
|
|
55
|
+
skm ls --page 2 --limit 10
|
|
56
|
+
|
|
57
|
+
# 已安装的 skills 也支持分页
|
|
58
|
+
skm ls --installed --page 2
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 输出示例
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Found 85 skill(s):
|
|
65
|
+
|
|
66
|
+
📦 @skillmarket/brainstorming@1.2.0
|
|
67
|
+
名称: Brainstorming
|
|
68
|
+
描述: Feature brainstorming skill
|
|
69
|
+
平台: opencode, cursor, vscode, claude
|
|
70
|
+
链接: https://www.npmjs.com/package/@skillmarket/brainstorming
|
|
71
|
+
|
|
72
|
+
Page 1/5 (20 per page) | Use --page N to navigate
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 实现细节
|
|
76
|
+
|
|
77
|
+
- npm search API 使用 `from` 和 `size` 参数实现服务端分页
|
|
78
|
+
- 本地已安装 skills 使用数组 slice 实现客户端分页
|
|
79
|
+
- 默认每页 20 个,可自定义
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 🔧 改进
|
|
84
|
+
|
|
85
|
+
1. **文档更新**
|
|
86
|
+
- 更新 README.md 添加分页使用示例
|
|
87
|
+
- 更新 SKILLMARKET-GUIDE.md 修复安装命令
|
|
88
|
+
- 更新 skills/README.md 添加 test-skill-1/2
|
|
89
|
+
|
|
90
|
+
2. **版本管理优化**
|
|
91
|
+
- 版本号现在从 `package.json` 动态读取
|
|
92
|
+
- 不再需要手动同步版本号
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 📦 完整版本历史
|
|
97
|
+
|
|
98
|
+
| 版本 | 日期 | 描述 |
|
|
99
|
+
|------|------|------|
|
|
100
|
+
| 1.2.6 | 2026-04-16 | 修复版本号动态读取 |
|
|
101
|
+
| 1.2.5 | 2026-04-16 | 文档更新 |
|
|
102
|
+
| 1.2.4 | 2026-04-16 | 修复版本号硬编码问题 |
|
|
103
|
+
| 1.2.3 | 2026-04-15 | 跨平台 Skill 安装支持 |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 贡献者
|
|
108
|
+
|
|
109
|
+
- wxc2004 (wanxuchen)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
# SkillMarket v1.2.3 发布总结
|
|
114
|
+
|
|
115
|
+
**日期**: 2026-04-15
|
|
116
|
+
**版本**: 1.2.3
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 🎉 新功能:跨平台 Skill 安装
|
|
121
|
+
|
|
122
|
+
### 支持的平台
|
|
123
|
+
|
|
124
|
+
| 平台 | Skill 目录 | 状态 |
|
|
125
|
+
|------|-----------|------|
|
|
126
|
+
| OpenCode | `~/.config/opencode/skills/` | ✅ |
|
|
127
|
+
| Claude Code | `~/.claude/skills/` | ✅ |
|
|
128
|
+
| VSCode | `~/.copilot/skills/` | ✅ |
|
|
129
|
+
|
|
130
|
+
### 新增命令
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# 查看可用平台
|
|
134
|
+
skm platforms
|
|
135
|
+
|
|
136
|
+
# 安装到所有检测到的平台
|
|
137
|
+
skm install <skill>
|
|
138
|
+
|
|
139
|
+
# 安装到指定平台
|
|
140
|
+
skm install <skill> --platform opencode
|
|
141
|
+
skm install <skill> --platform opencode,claude,vscode
|
|
142
|
+
|
|
143
|
+
# 卸载
|
|
144
|
+
skm uninstall <skill>
|
|
145
|
+
skm uninstall <skill> --platform claude
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 安装输出示例
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
skm install test-skill-1
|
|
152
|
+
|
|
153
|
+
Installing test-skill-1...
|
|
154
|
+
Downloading package...
|
|
155
|
+
Setting up skill...
|
|
156
|
+
|
|
157
|
+
Installing to 3 platform(s)...
|
|
158
|
+
|
|
159
|
+
OpenCode ✅ Installed successfully
|
|
160
|
+
Claude Code ✅ Installed successfully
|
|
161
|
+
VSCode ✅ Installed successfully
|
|
162
|
+
|
|
163
|
+
📊 Summary: 3 installed, 0 skipped, 0 failed
|
|
164
|
+
|
|
165
|
+
✅ test-skill-1@1.1.0 installed successfully!
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 平台状态查看
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
skm platforms
|
|
172
|
+
|
|
173
|
+
📍 Available Platforms:
|
|
174
|
+
|
|
175
|
+
OpenCode ✅ Available (3 skills installed)
|
|
176
|
+
Claude Code ✅ Available (2 skills installed)
|
|
177
|
+
VSCode ✅ Available (3 skills installed)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 🐛 Bug 修复
|
|
183
|
+
|
|
184
|
+
1. **npm scope 兼容问题**
|
|
185
|
+
- 修复了 `@wanxuchen/`、`@itismyskillmarket/` 等多个 scope 的自动检测
|
|
186
|
+
- 现在安装 `test-skill-1` 会自动查找正确的 npm 包
|
|
187
|
+
|
|
188
|
+
2. **tarball 文件名匹配**
|
|
189
|
+
- 修复了 scoped 包文件名匹配逻辑
|
|
190
|
+
- 之前 `@scope/package` 被错误匹配为 `@scope-package`
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 📦 Skill 包列表
|
|
195
|
+
|
|
196
|
+
| Skill | npm 包名 | 用途 |
|
|
197
|
+
|-------|---------|------|
|
|
198
|
+
| test-skill | @wanxuchen/test-skill | 通用测试 |
|
|
199
|
+
| test-skill-1 | @wanxuchen/test-skill-1 | 测试安装和 info 功能 |
|
|
200
|
+
| test-skill-2 | @wanxuchen/test-skill-2 | 测试卸载和更新功能 |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 🔧 技术实现
|
|
205
|
+
|
|
206
|
+
### 架构
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
src/adapters/
|
|
210
|
+
├── base.ts # 平台适配器基类
|
|
211
|
+
├── opencode.ts # OpenCode 适配器
|
|
212
|
+
├── claude.ts # Claude Code 适配器
|
|
213
|
+
├── vscode.ts # VSCode 适配器
|
|
214
|
+
├── registry.ts # 平台注册和检测
|
|
215
|
+
└── index.ts # 导出
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 平台适配器接口
|
|
219
|
+
|
|
220
|
+
```typescript
|
|
221
|
+
interface PlatformAdapter {
|
|
222
|
+
readonly id: string;
|
|
223
|
+
readonly name: string;
|
|
224
|
+
readonly skillDir: string;
|
|
225
|
+
|
|
226
|
+
isAvailable(): Promise<boolean>;
|
|
227
|
+
isInstalled(skillId: string): Promise<boolean>;
|
|
228
|
+
install(skillId: string, sourceDir: string): Promise<void>;
|
|
229
|
+
uninstall(skillId: string): Promise<void>;
|
|
230
|
+
listInstalled(): Promise<string[]>;
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 📚 文档更新
|
|
237
|
+
|
|
238
|
+
- `README.md` - 更新使用说明
|
|
239
|
+
- `docs/plans/2026-04-15-cross-platform-adapter-design.md` - 设计文档
|
|
240
|
+
- `docs/plans/2026-04-15-cross-platform-adapter-plan.md` - 实现计划
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 🚀 下一步
|
|
245
|
+
|
|
246
|
+
- [ ] 发布到 VSCode Marketplace
|
|
247
|
+
- [ ] 发布 Claude Code 插件市场
|
|
248
|
+
- [ ] 创建 skill 市场网站
|
|
249
|
+
- [ ] 添加 skill 搜索功能
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 贡献者
|
|
254
|
+
|
|
255
|
+
- wxc2004 (wanxuchen)
|