关于 release
此发布技能将工作交给各仓库自定义的 mise 发布任务,按仓库配置执行任务序列。若未找到相关任务,则回退到 semantic-release 技能的说明。
主要功能
- 01检测仓库发布任务
- 02执行完整发布或试运行
- 03查看发布状态
- 04回退至 semantic-release 指引
- 05将可复现的问题修正写入技能
适用场景
- 01运行仓库配置的发布工作流
- 02无修改地预览发布
- 03查看当前版本与发布状态
- 04处理没有 mise 发布任务的仓库
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill release安装后在 Claude Code 中输入/release确认已加载。
附带文件references/evolution-log.md
详细介绍
/itp:release
委派给仓库的 mise 发布任务。每个仓库都应在 .mise/tasks/release/ 中定义自己的发布 DAG。
自我迭代技能:此技能会在使用过程中不断改进。如果说明有误、参数发生变化,或需要采用变通方法,请立即修复此文件,不要拖延。仅针对真实且可复现的问题进行更新。
首要操作:检测仓库的发布任务
# Check if the repo has mise release tasks
mise tasks ls 2>/dev/null | grep -i release
- 如果存在任务:委派给
mise run release:full(或仓库中的等效任务) - 如果不存在任务:改为阅读 semantic-release 技能以获取指导
参数
| 标志 | 简写 | 说明 |
|---|---|---|
--dry | -d | 演练模式(预览,不做任何修改) |
--status | -s | 显示当前版本和发布状态 |
执行
# Full release (preflight → version → sync → verify)
mise run release:full
# Dry-run (preview what would be released)
mise run release:dry
# Check current state
mise run release:status
为什么选择 mise 任务而不是规定性技能
| 考量 | 规定性技能 | mise 任务委派 |
|---|---|---|
| 仓库特定逻辑 | 在技能中重复维护 | 存放在 .mise/tasks/ |
| DAG 执行保障 | 手动排序 | 强制执行 depends 数组 |
| 可维护性 | 同时更新技能和任务 | 任务是唯一信息源 |
| 可移植性 | 假设使用 npm/bun | 使用仓库配置的工具 |
| 密钥 | 硬编码模式 | .mise.toml 中的 [env] |
预期的 mise 发布任务结构
仓库应遵循中心辐射式模式:
.mise.toml # Hub: [env] + [tools] + task docs
.mise/tasks/
└── release/
├── _default # Help / navigation
├── preflight # Phase 1: Validate prerequisites
├── version # Phase 2: Bump version (semantic-release)
├── sync # Phase 3: Sync artifacts (marketplace, cache)
├── verify # Phase 4: Verify release artifacts
├── full # Orchestrator: depends on all phases
├── dry # Dry-run preview
└── status # Current version info
任务 DAG
┌──────────┐
│ preflight│
└─────┬────┘
│ depends
┌─────▼────┐
│ version │
└─────┬────┘
│ sequential
┌─────▼────┐
│ sync │
└─────┬────┘
│ sequential
┌─────▼────┐
│ verify │
└──────────┘
关键模式
# .mise/tasks/release/full (orchestrator)
depends = ["release:preflight"]
# Chains: preflight → version → sync → verify
# .mise/tasks/release/preflight (guard)
# Checks: clean dir, auth, plugins, releasable commits
# .mise/tasks/release/version (core)
depends = ["release:preflight"]
# Runs: semantic-release (or language-specific versioning)
后备方案:没有 mise 任务
如果仓库没有 mise 发布任务,请阅读 semantic-release 技能:
Read: ${CLAUDE_PLUGIN_ROOT}/skills/semantic-release/SKILL.md
Read: ${CLAUDE_PLUGIN_ROOT}/skills/semantic-release/references/local-release-workflow.md
然后按照其中记录的 4 阶段工作流执行。
错误恢复
| 错误 | 解决方法 |
|---|---|
未找到 mise tasks | 安装 mise:curl https://mise.run | sh |
| 没有发布任务 | 创建 .mise/tasks/release/,或使用后备技能 |
| 工作目录不干净 | git stash,或提交更改 |
| 当前不在 main 分支 | git checkout main |
| 没有可发布的提交 | 先创建一个 feat: 或 fix: 提交 |
| 账户错误 | 检查 .mise.toml [env] 中的 GH_TOKEN / GH_ACCOUNT |
参考
执行后复盘
此技能执行完毕后,请在结束前检查:
- 命令是否成功? — 如果没有,请修复导致失败的说明或错误表。
- 参数或输出是否发生变化? — 如果底层工具的接口发生变化,请相应更新用法示例和参数表。
- 是否需要采用变通方法? — 如果你不得不临时变通(使用不同标志、增加额外步骤),请更新此 SKILL.md,避免下次调用时重复采用相同的变通方法。
仅当问题真实且可复现时才进行更新,不要基于猜测更新。
评论
支持 Markdown