SuperAPI AI 工具集

release

部署与运维

查看项目

更新于 10-16 02:12

技能介绍

用途

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。
  • 该技能为自进化技能,仅在遇到真实、可复现的问题时才更新自身文件。