skills/release-workflow/SKILL.md
本技能应在 GitHub 项目发布新版本时使用,覆盖版本号管理、CHANGELOG 同步、Release Notes 撰写、tag 创建、CI 构建监控、发布验证和历史清理全流程。适用于桌面应用、CLI 工具、Web 应用、库/SDK 等任何基于 GitHub 的软件项目。当用户提到"发布"、"release"、"打 tag"、"新版本"、"更新版本号"、"写 release notes"、"发布失败了"、"CI 挂了"时触发。不要用于非 GitHub 项目(如纯 GitLab / Gitea 项目)或无需 CI 的手动发布场景。
npx skillsauth add cat-xierluo/legal-skills release-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
软件项目的全流程发布工作流。适用于 GitHub 上的任何类型项目。
GitHub 项目的完整发布周期:从版本号确定到 CI 构建验证。CI 故障排查(references/ci-troubleshooting.md)和特定项目类型指南(references/ 下各文档)作为发布流程的补充参考。
config/projects.yaml 集中管理各项目的发布配置(仓库、平台、自动更新、排除产物等)。发布时先读取对应项目配置,按配置决定构建矩阵和预期产物。模板见 config/projects.example.yaml。
| 检查项 | 说明 |
|--------|------|
| 工作区干净 | git status 无未提交变更 |
| 版本号一致 | 所有版本号文件(package.json / Cargo.toml / pyproject.toml 等)与 CHANGELOG.md 最新条目一致 |
| CHANGELOG 已更新 | 包含目标版本的结构化条目 |
| CI 工作流存在 | .github/workflows/ 中有 release 相关工作流且 tag 触发配置正确 |
任一条件不满足,先修复再继续。
从用户处获取或从 CHANGELOG.md 读取目标版本号。
统一所有版本号文件(按项目类型选取):
package.json → versionCargo.toml → versionpyproject.toml → versiontauri.conf.json)## [x.y.z] 条目版本号规则(SemVer):
| 类型 | 示例 | 适用场景 | |------|------|----------| | PATCH | 0.3.7 → 0.3.8 | Bug 修复、小改进 | | MINOR | 0.3.x → 0.4.0 | 新功能、向后兼容 | | MAJOR | 0.x → 1.0.0 | 重大架构变更、破坏性改动 |
信息来源有两个,必须综合使用:
来源 1 — CHANGELOG.md:结构化的变更分类(Added / Changed / Fixed 等)
来源 2 — git log:两个 tag 之间的 commit 历史,补充上下文和细节
# 获取上一个 tag
PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
# 查看 commit 历史
git log ${PREV_TAG}..HEAD --oneline
# 查看详细变更(含 PR 链接)
git log ${PREV_TAG}..HEAD --format="- %s (%h)"
综合两个来源,按模板组织 Release Notes。模板和格式指南见 references/release-notes-guide.md。如果 config/projects.yaml 中存在 release_notes.profile,优先使用项目配置指定的结构;未配置时按项目类型选择默认结构。
# 确保所有变更已提交
git status
# 打 tag
git tag "vX.Y.Z"
# 推送 tag 触发 CI
git push origin "vX.Y.Z"
如果有同名旧 tag(如发布失败后重试):
git push origin :refs/tags/vX.Y.Z
git tag -d vX.Y.Z 2>/dev/null
git tag vX.Y.Z
git push origin vX.Y.Z
# 查看构建状态
gh run list --limit 3
# 各平台 job 状态
gh run view <RUN_ID> --json jobs --jq '.jobs[] | "\(.name): \(.conclusion)"'
# 失败日志
gh run view <RUN_ID> --log-failed
项目类型的特定构建产物和验证方法,见 references/ 下对应文档。
CI 构建成功后,用第 2 步准备的草稿更新 GitHub Release:
gh release edit vX.Y.Z --repo <owner>/<repo> --notes "$(cat <<'EOF'
<Release Notes 内容>
EOF
)"
Release Notes 正文不要再写 # <项目名> vX.Y.Z 或其他重复版本标题;GitHub Release 页面自身已经显示标题,正文应直接从摘要、升级提示或 Highlights 开始。
# 检查产物是否完整
gh release view vX.Y.Z --json assets --jq '.assets[].name'
对照 config/projects.yaml 中该项目的配置检查:
platforms 和 auto_update 推导)exclude_assets 中列出的产物是否意外出现release_notes.required_sections 和 release_notes.always_include 约束gh run delete <ID>| 项目类型 | 参考文档 |
|----------|----------|
| Tauri 桌面应用 | references/tauri-release.md |
发布完成后确认:
data-ai
当用户要求你并行推进多个任务、一次性开多个 worker/agent 同时工作、用 tmux 启动多个独立 session、防止 PM 直接实现逃逸、或者你作为 PM 需要拆解并派发任务给多个独立 worker 时使用。触发词包括"并行推进""开多个""同时推进""派 worker""多 agent 并行""开 worker""tmux 启动""独立 session""防逃逸""分派任务""一起做"。不要用于单个短任务、跨平台任务状态管理、或 Git 分支/提交/PR/merge 安全规则。
content-media
本技能应在用户需要 OCR、扫描识别、图片文字识别、文档识别,或将 PDF、图片、Office 文档、URL 转换为 Markdown 时使用。检测到法律材料时可进行保守的法律术语与文书结构优化。不要用于法律事实判断、补写缺失内容、语义改写、印章深度识别或图表实体分析。
tools
将 monorepo 中的子目录通过 git subtree 推送到独立 GitHub 仓库。支持注册清单、变更自动检测、增量推送。本技能应在用户提交涉及已注册子项目的变更后,或手动请求推送到独立仓库时使用。不要用于初次创建 monorepo 或管理 git submodule。
documentation
--- name: contract-copilot version: 1.5.2 description: 合同起草与审查助手。基于分层分析与四步流程,输出可执行的风险清单、起草骨架、修改建议、推荐措辞和审查意见书,支持批注与修订两种文档处理方式。用户通过飞书或其他 IM 对话发送合同文件并要求审查或起草时,也应使用本 skill,并优先沿原会话回传修订版和审查报告。 license: CC BY-NC 4.0 homepage: https://github.com/cat-xierluo/legal-skills author: 杨卫薪律师(微信ywxlaw) # Contract Copilot(合同助手) ## 一、定位 调用时,先按本文件确定运行流程。 ### 1.1 强制文件交付规则 当用户提供或通过会话传入 DOCX 合同文件,并提出“审查、审核、修改、批注、修订、出审查意见、帮我看合同”等合同审查类请求时,默认必须走文件交付链路: 1. 先完成必要澄清与分层审查。 2. 将审查结论整理为 `review-plan.json`。 3. 运行 `scripts