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.
Files changed (48) hide show
  1. package/.github/workflows/publish-npm.yml +59 -0
  2. package/.github/workflows/publish-skill.yml +72 -0
  3. package/5e51cb7aa8b8e60d49d86f4689f5d4d1.png +0 -0
  4. package/CHANGELOG.md +255 -0
  5. package/DEVELOPMENT.md +376 -0
  6. package/README.md +75 -6
  7. package/SKILLMARKET-GUIDE.md +288 -0
  8. package/dist/index.js +579 -181
  9. package/docs/WEEKLY-UPDATE-2026-04-23.md +43 -0
  10. package/docs/plans/2026-04-01-skillmarket-design.md +267 -0
  11. package/docs/plans/2026-04-01-skillmarket-implementation.md +1031 -0
  12. package/docs/plans/2026-04-15-cross-platform-adapter-design.md +416 -0
  13. package/docs/plans/2026-04-15-cross-platform-adapter-plan.md +833 -0
  14. package/docs/plans/2026-04-16-keyword-search-design.md +143 -0
  15. package/package.json +1 -6
  16. package/skills/README.md +54 -0
  17. package/skills/test-skill/SKILL.md +25 -0
  18. package/skills/test-skill/index.js +66 -0
  19. package/skills/test-skill/metadata.json +9 -0
  20. package/skills/test-skill/package.json +19 -0
  21. package/skills/test-skill-1/SKILL.md +24 -0
  22. package/skills/test-skill-1/index.js +13 -0
  23. package/skills/test-skill-1/metadata.json +9 -0
  24. package/skills/test-skill-1/package.json +16 -0
  25. package/skills/test-skill-2/SKILL.md +25 -0
  26. package/skills/test-skill-2/index.js +13 -0
  27. package/skills/test-skill-2/metadata.json +9 -0
  28. package/skills/test-skill-2/package.json +16 -0
  29. package/src/adapters/base.ts +87 -0
  30. package/src/adapters/claude.ts +31 -0
  31. package/src/adapters/index.ts +9 -0
  32. package/src/adapters/opencode.ts +40 -0
  33. package/src/adapters/registry.ts +77 -0
  34. package/src/adapters/vscode.ts +62 -0
  35. package/src/cli.ts +152 -49
  36. package/src/commands/info.ts +4 -15
  37. package/src/commands/install.ts +93 -54
  38. package/src/commands/ls.ts +182 -17
  39. package/src/commands/npm.ts +118 -16
  40. package/src/commands/search.ts +103 -0
  41. package/src/commands/sync.ts +6 -27
  42. package/src/commands/uninstall.ts +60 -7
  43. package/src/commands/update.ts +2 -2
  44. package/src/index.ts +27 -0
  45. package/src/types.ts +35 -0
  46. package/tsconfig.json +10 -0
  47. package/tsup.config.ts +22 -0
  48. 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 }}
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)