用途
release 技能用于运行语义化发布(semantic-release),并在发布前执行预检(preflight checks)。它适用于需要自动化版本提升、变更日志生成和发布流程的场景,触发条件包括 npm run release、version bump、changelog、release automation。
该技能的核心设计理念是委托给仓库自身的 mise 发布任务,而非在技能中硬编码发布逻辑。每个仓库应在 .mise/tasks/release/ 中定义自己的发布 DAG(有向无环图)。
主要能力
- 检测仓库是否定义了 mise 发布任务:通过
mise tasks ls 2>/dev/null | grep -i release检查。 - 若存在任务,委托给
mise run release:full(或仓库的等价命令)。 - 若不存在任务,回退到读取 semantic-release 技能获取指引。
- 支持参数:
--dry/-d为干跑模式(预览,不做修改);--status/-s显示当前版本和发布状态。 - 定义四阶段发布流程:preflight(验证前置条件)→ version(提升版本)→ sync(同步产物)→ verify(验证发布产物)。
使用方式
执行命令:
# 完整发布(preflight → version → sync → verify)
mise run release:full
# 干跑(预览将要发布的内容)
mise run release:dry
# 检查当前状态
mise run release:status
参数说明:
| 标志 | 简写 | 描述 |
|---|---|---|
| --dry | -d | 干跑模式(预览,不做修改) |
| --status | -s | 显示当前版本和发布状态 |
期望的 mise 发布任务结构
仓库应遵循 hub-and-spoke 模式:
.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 not found | 安装 mise:`curl https://mise.run |
| No release tasks | 创建 .mise/tasks/release/ 或使用回退技能 |
| Working dir not clean | git stash 或提交更改 |
| Not on main branch | git checkout main |
| No releasable commits | 先创建 feat: 或 fix: 提交 |
| Wrong account | 检查 .mise.toml [env] 中的 GH_TOKEN / GH_ACCOUNT |
适用场景
- 需要自动化语义化发布流程的仓库。
- 已使用 mise 管理任务和环境的项目。
- 需要发布前预检、版本提升、产物同步与验证的完整发布链路。
- 需要干跑预览或查看当前发布状态的场景。
限制
- 依赖 mise 工具;若未安装需先安装。
- 若仓库未定义 mise 发布任务,则需回退到 semantic-release 技能,功能可能受限。
- 发布前要求工作目录干净、位于 main 分支、存在可发布提交(feat: 或 fix:)。
- 账户配置依赖 .mise.toml [env] 中的 GH_TOKEN / GH_ACCOUNT。
- 该技能为自进化技能,仅在遇到真实、可复现的问题时才更新自身文件。