name: nav-release description: 验证并发布Navigator插件到市场。当用户说“发布插件”、“发布导航器”、“创建发布”或“部署新版本”时自动调用。 allowed-tools: 读取,Bash,Grep,Glob,AskUserQuestion version: 1.0.0
Navigator发布技能
验证插件完整性并安全发布到市场。
为什么存在
在v5.1.0事件之后,nav-profile在plugin.json中被引用但从未提交,导致安装失败。这个技能确保:
- 所有引用的技能存在并已提交
- 所有文件中的版本一致性
- 在所有提交之后创建标签
- 发布后验证
何时调用
自动调用时:
- 用户说“发布插件”、“发布导航器”
- 用户说“创建发布”、“部署新版本”
- 用户说“发布vX.Y.Z”
不要调用如果:
- 只是提交更改(不发布)
- 仅更新文档
- 本地测试
执行步骤
第1步:发布前验证[关键]
运行验证脚本:
python3 functions/release_validator.py --check-all
这验证:
- plugin.json中的所有技能存在
- 所有技能文件已提交(未跟踪)
- 文件中的版本一致性
- skills/中没有未提交的更改
如果验证失败:停止并在继续之前解决问题。
第2步:显示验证结果
显示验证摘要:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NAVIGATOR RELEASE VALIDATION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
技能检查:
[x] nav-loop ✓ 存在,已提交
[x] nav-profile ✓ 存在,已提交
[x] nav-diagnose ✓ 存在,已提交
...
版本检查:
plugin.json: 5.1.0 ✓
marketplace.json: 5.1.0 ✓
CLAUDE.md: 5.1.0 ✓
README.md: 5.1.0 ✓
Git状态:
未提交的技能:0 ✓
未跟踪的技能:0 ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VALIDATION: PASSED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第3步:确认版本
询问用户确认版本:
准备发布Navigator vX.Y.Z
这将:
1. 提交任何待处理的更改
2. 推送到origin/main
3. 创建git标签vX.Y.Z
4. 创建GitHub发布
继续吗?[Y/n]
第4步:执行发布
如果确认,运行发布序列:
# 1. 如果需要,提交
git add .
git commit -m "chore(release): prepare vX.Y.Z" || true
# 2. 推送到origin
git push origin main
# 3. 创建标签(推送后)
git tag -a vX.Y.Z -m "Navigator vX.Y.Z: [description]"
git push origin vX.Y.Z
# 4. 创建GitHub发布
gh release create vX.Y.Z --title "Navigator vX.Y.Z" --notes-file RELEASE-NOTES-vX.Y.Z.md
第5步:发布后验证
验证标签包含所有技能:
python3 functions/release_validator.py --verify-tag vX.Y.Z
清除本地缓存(用于测试):
rm -rf ~/.claude/plugins/cache/navigator-marketplace/
指导用户测试:
发布完成!要验证:
1. 运行:/plugin install navigator
2. 检查插件列表显示vX.Y.Z
3. 验证插件详细信息中没有错误
如果出现错误,请参见:.agent/sops/deployment/plugin-release.md
预定义函数
functions/release_validator.py
在发布前验证插件完整性:
# 检查所有技能存在并已提交
python3 functions/release_validator.py --check-all
# 验证特定版本
python3 functions/release_validator.py --check-version 5.1.0
# 验证标签内容
python3 functions/release_validator.py --verify-tag v5.1.0
错误处理
检测到缺失技能:
❌ VALIDATION FAILED
缺失技能:
- skills/nav-profile/ (在plugin.json中引用但未找到)
修复:创建技能或从plugin.json中移除
检测到未提交的技能:
❌ VALIDATION FAILED
未提交的技能:
- skills/nav-loop/ (已修改)
- skills/nav-profile/ (未跟踪)
修复:git add skills/ && git commit -m "Add missing skills"
检测到版本不匹配:
❌ VALIDATION FAILED
版本不匹配:
plugin.json: 5.1.0
marketplace.json: 5.0.0 ← MISMATCH
CLAUDE.md: 5.1.0
修复:将marketplace.json更新为5.1.0
成功标准
发布成功时:
- [ ] 所有技能已验证(存在+已提交)
- [ ] 所有文件中的版本一致
- [ ] 在所有提交后创建了Git标签
- [ ] 发布了GitHub发布
- [ ] 测试安装成功(无错误)
快速参考
# 带验证的完整发布
"发布Navigator v5.2.0"
# 仅验证(不发布)
"验证插件以发布"
# 发布失败后修复
"修复发布标签v5.1.0"
相关
- SOP:
.agent/sops/deployment/plugin-release.md - 配置:
.claude-plugin/plugin.json - 市场:
.claude-plugin/marketplace.json