بنقرة واحدة
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<新版本号>