用途:为单包仓库或工作区 monorepo 创建发布,包括版本提升、变更日志、提交与标签;支持稳定版、beta 预发布和 dry-run。
主要能力:通过 plan-release.mjs 做只读发现,输出 schemaVersion:2 的 JSON,包含包身份、完整 changedFiles、工作区边与声明范围、先前标签事实、选中目标和工作树状态;changeHints 仅为基于文件名的非权威导航提示,不得用于判断发布相关性或变更日志收录。finalize-release-plan.py 执行 beta 与显式版本转换、稳定预发布提升、npm 范围满足、简单依赖范围建议和依赖排序,并报告复杂范围、peer 范围、依赖环和未由代理提供的稳定版本为未决项。validate-changelog.py 校验变更日志的确定性结构。
使用方式:用 node "<skill-dir>/scripts/plan-release.mjs" [--cwd <repo>] [--beta] [--dry-run] [--version <semver>] [--package <name-or-dir>]... 运行发现;退出码 2 表示非可发布 Git/包仓库,64 表示输入无效,均需停止。要求工作树干净。选定稳定版本后,将发现 JSON 写入临时文件并运行 uv run "<skill-dir>/scripts/finalize-release-plan.py" --discovery <discovery.json> [--version <package>=<semver>]...。每次稳定变更日志用 uv run "<skill-dir>/scripts/validate-changelog.py" --file <CHANGELOG.md> --version <semver> --date <YYYY-MM-DD> [--tag <tag>] 校验。
流程与限制:从先前标签检查净差异决定是否发布,代理决定补丁/次要/主要版本;beta 的机械转换由 finalizer 计算。按依赖顺序先提交打标签依赖项。提交格式:单包 docs: release <version>;monorepo docs: release <package> <version>。不推送;成功后建议精确的 git push origin <tag>... 命令,不使用 --tags。可在用户批准后通过 $cli-gh 创建 GitHub release。dry-run 零写入。不写完整代码示例。