Navigator发布技能 nav-release

这是一个用于验证插件完整性并将其安全发布到市场的自动化技能。它确保所有引用的技能存在并已提交,所有文件中的版本一致,并在所有提交之后创建标签,最后进行发布后的验证。

DevOps 0 次安装 0 次浏览 更新于 3/4/2026

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

这验证:

  1. plugin.json中的所有技能存在
  2. 所有技能文件已提交(未跟踪)
  3. 文件中的版本一致性
  4. 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