第七章:打包与发布¶
打包流程¶
使用打包脚本¶
# 基本用法
python scripts/package_skill.py path/to/skill-folder
# 指定输出目录
python scripts/package_skill.py path/to/skill-folder ./dist
打包过程¶
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 验证 Skill │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ - 检查 YAML frontmatter 格式 │ │
│ │ - 验证必需字段 │ │
│ │ - 检查命名规范 │ │
│ │ - 验证目录结构 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 2. 创建 .skill 文件 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ - 收集所有文件 │ │
│ │ - 创建 ZIP 压缩包 │ │
│ │ - 重命名为 .skill 扩展名 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 3. 输出结果 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ skill-name.skill → 输出目录 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
验证失败处理¶
# 验证失败示例
$ python scripts/package_skill.py my-skill
验证失败:
✗ description 太短(< 20 字符)
✗ 缺少 references/ 目录引用
✗ 发现禁止文件: README.md
请修复以上问题后重试。
.skill 文件格式¶
文件结构¶
skill-name.skill (ZIP 格式)
├── SKILL.md
├── references/
│ └── ...
├── scripts/
│ └── ...
└── assets/
└── ...
查看内容¶
发布渠道¶
ClawHub 技能市场¶
# 发布到 ClawHub
clawhub publish skill-name.skill
# 或使用 API
curl -X POST https://api.clawhub.ai/skills \
-H "Authorization: Bearer $TOKEN" \
-F "skill=@skill-name.skill"
Git 仓库¶
# 发布到 Git 仓库
cd skill-name
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/user/skill-name.git
git push -u origin main
本地安装¶
# 从本地目录安装
cp -r skill-name ~/.openclaw/skills/
# 或从 .skill 文件安装
unzip skill-name.skill -d ~/.openclaw/skills/
版本管理¶
版本号规范¶
版本更新流程¶
# 1. 更新内容
vim SKILL.md
# 2. 测试验证
pytest tests/
# 3. 重新打包
python scripts/package_skill.py skill-name
# 4. 发布更新
clawhub publish skill-name.skill --version 1.1.0
变更日志¶
虽然不在 Skill 中包含 CHANGELOG.md,但发布时应记录变更:
# 发布说明
## v1.1.0 (2024-01-15)
### 新增
- 支持批量处理功能
- 新增 watermark.py 脚本
### 修复
- 修复大文件处理内存问题
### 变更
- 优化 description 触发条件
发布检查清单¶
release-checklist:
pre-release:
- [ ] 所有测试通过
- [ ] 文档更新完成
- [ ] 版本号已更新
- [ ] 变更记录已准备
packaging:
- [ ] 验证通过
- [ ] .skill 文件生成成功
- [ ] 文件大小合理(< 10MB)
publishing:
- [ ] 发布渠道已选择
- [ ] 发布说明已编写
- [ ] 用户通知已发送
安装验证¶
用户安装后验证¶
安装后测试¶
# 测试 Skill 功能
1. 测试触发
用户: "帮我处理这个 PDF"
预期: Skill 被触发
2. 测试基本功能
用户: "提取这个 PDF 的文本"
预期: 正确提取文本
3. 测试高级功能
用户: "给这个 PDF 加水印"
预期: 正确添加水印
小结¶
本章介绍了打包与发布:
- 使用打包脚本创建 .skill 文件
- 理解打包验证流程
- 选择发布渠道
- 版本管理规范
- 发布检查清单
下一章将介绍最佳实践。