一键导入
pybump
升级 Python 项目版本号,更新 pyproject.toml,提交代码并打 tag
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
升级 Python 项目版本号,更新 pyproject.toml,提交代码并打 tag
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
按照 git 规则自动分析变更并提交代码
提交前的自动 review 迭代环:委派子 agent 跑 CC 自带 /code-review(默认 sonnet × medium,并发/难复现等硬 diff 升 opus × high),发现高置信正确性问题就修、跑测试+happy-path 验证、复审,迭代到「运行验证通过 + 无高置信 correctness 问题」才放行。收敛靠运行验证+置信过滤,非 reviewer 挑不出为止。三条硬规则:永远显式传档位、永远委派子 agent、只用两个合法的模型×档位组合。由 /commit 在生成 commit 前自动调用,也可手动跑
为空项目搭建文档骨架(README.md / CLAUDE.md / DEVTREE.md),仅在项目首次开发前调用一次
依据 docs/DEVTREE.md 中作者维护的 Epic 结构,重新生成可视化图表和节点索引
完成当前开发项:撰写 SUMMARY.md,反思跨项目可沉淀流程并可向 claude-code-global 提 issue,关联并关闭 issue(GitHub / GitLab,如有),提交代码
诊断本地分支分叉并按清单引导完成 rebase,历史保持 FF 直线
| name | pybump |
| description | 升级 Python 项目版本号,更新 pyproject.toml,提交代码并打 tag |
| disable-model-invocation | false |
用户调用此 skill 表示要发布 Python 项目的新版本。
调用时可附带参数(args),支持以下几种形式:
| 参数 | 含义 | 示例 |
|---|---|---|
| (无) | patch +1 | 1.2.3 → 1.2.4 |
X.Y.Z 等显式版本号 | 直接作为新版本号 | /pybump 2.0.0 |
alpha / beta [+ 修饰符] | 生成预发布版本 | 见下文 |
fix | 生成 post-release 修正版 | 1.2.3 → 1.2.3.post1 |
PEP 440 中 X.Y.ZaN / X.Y.ZbN 表示"某个正式版 X.Y.Z 的预发布",排序上 X.Y.ZaN < X.Y.ZbN < X.Y.Z。因此生成预发布时,要先确定"目标正式版"。
当前是正式版(如 0.5.2)时,根据修饰符确定目标:
| 参数 | 目标正式版 | 新版本 |
|---|---|---|
alpha 或 alpha patch | 下一个 patch | 0.5.2 → 0.5.3a1 |
alpha minor | 下一个 minor | 0.5.2 → 0.6.0a1 |
alpha major | 下一个 major | 0.5.2 → 1.0.0a1 |
alpha 0.6.0 | 显式目标版本 | 0.5.2 → 0.6.0a1 |
beta ... | 同上,换成 bN | 0.5.2 → 0.5.3b1 等 |
当前已是预发布(如 0.6.0a2)时,不接受 patch / minor / major / 显式目标,只做序号或级别变更:
| 当前 | 参数 | 新版本 |
|---|---|---|
0.6.0a2 | alpha | 0.6.0a3 |
0.6.0a2 | beta | 0.6.0b1 |
0.6.0b1 | beta | 0.6.0b2 |
0.6.0b1 | alpha | ❌ 报错(不允许从 beta 降级回 alpha) |
如需切换目标正式版,请改用显式版本号,例如 /pybump 1.0.0a1。
.postN 用于已发布版本的小修正(如文档、打包问题),不含功能变更,排序上 X.Y.Z < X.Y.Z.post1 < X.Y.Z.post2 < X.Y.(Z+1)。
| 当前 | 参数 | 新版本 |
|---|---|---|
1.2.3 | fix | 1.2.3.post1 |
1.2.3.post1 | fix | 1.2.3.post2 |
1.2.3a1 | fix | ❌ 报错(预发布版不应使用 post) |
执行以下步骤:
读取项目根目录下 pyproject.toml 的 version 字段,解析出当前版本号。
按"参数说明"一节的规则推导新版本号。建议用 uv run python + packaging.version.Version 来解析和比较,避免自己写正则:
from packaging.version import Version
v = Version("0.6.0a2")
v.is_prerelease # True
v.pre # ('a', 2)
v.is_postrelease # False
v.release # (0, 6, 0)
如果项目没安装 packaging,临时在 skill 执行期用 uv run --with packaging python ... 即可,不要污染 pyproject.toml。
新版本号必须满足以下条件,任一不满足则中止并告知用户:
Version("...") 能成功解析)Version 比较,自动遵循 PEP 440 排序规则)使用 Edit 工具将 pyproject.toml 中的 version = "旧版本号" 替换为 version = "新版本号"。
运行 uv sync 确保锁文件和环境与新版本号一致。
/commit skill 提交所有变更(commit message 应体现版本升级,如 release: 升级版本至 X.Y.Z)git tag v<新版本号>(tag 带 v 前缀,例如 v0.6.0a1、v1.2.3.post1)git pushgit push origin v<新版本号>