用途:在本地检出中执行发布准备流程,包括更新版本与变更日志文件、运行本地验证、提交、打标签,并且只有在用户明确要求或仓库文档规定时才执行发布。
优先级:仓库自身的发布说明优先于本技能。执行前应检查 AGENTS.md、CLAUDE.md、README.md、CONTRIBUTING.md、CHANGELOG.md、package.json 中的包管理器脚本,以及 docs/release*、.github/* 或维护者说明等项目专属技能或文档。若存在具体说明,应遵循它们,本技能仅用于填补本地发布准备的空白。
主要流程:
- 确定发布类型与目标:确认要发布的包或应用;确定版本递增方式(patch、minor、major、预发布或精确版本);若用户未指定,先询问再改文件。
- 检查当前发布状态:用 git status --short 查看工作区状态;用 git tag --sort=-version:refname | head 查找最新标签;用 git log <last-tag>..HEAD --oneline 查看自上次发布以来的提交;检查包元数据与发布脚本。
- 更新发布文件:尽可能使用仓库的包管理器更新 package.json 与锁文件中的版本;基于自上次标签以来的提交,向 CHANGELOG.md 添加简洁条目,条目面向用户,可按 Added、Changed、Fixed、Removed 分组。
- 验证:打标签前运行仓库常规检查,如 lint、测试、构建/类型检查;优先使用已有包脚本而非自创命令;若某项检查无法运行,记录原因。
- 提交、打标签与推送:以清晰信息提交发布变更,例如 chore: release v1.2.3;用 v 前缀版本号给发布提交打标签,例如 v1.2.3;推送代码与标签。
- 仅在要求或文档规定时发布:除非用户明确要求或仓库说明要求,不要发布到 npm、应用商店或其他注册表;若发布,使用文档规定的发布脚本/CLI,并在之后验证已发布版本。
限制与护栏:除非用户要求,否则不创建分支;不覆盖项目专属发布自动化;不静默跳过失败的检查,应停止并报告失败;除非仓库说明另有规定,不在发布文件提交且检查通过前打标签;发布期间避免改动无关文件。
交付物:结束时给出简短总结,包含已发布版本、添加/更新的变更日志条目、运行的检查及结果、提交哈希与标签、是否执行了发布。