基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pkulijing/claude-code-global --skill pybump命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
按照 git 规则自动分析变更并提交代码
提交前的自动 review 迭代环——委派独立 context 的子 agent 编队 review、修、跑验证、复审,迭代到「运行验证通过 + 无高置信 correctness 问题」才放行;2 轮不收敛留痕放行,全程无人在环。由 /commit 自动调用,也可手动跑
云端 routine 的真逻辑:扫本仓 open issue,把够格自动做的分诊出来(纯文档类自动收;打了 auto:take 的由 owner 背书强制收,可改 skills / templates / scripts / hooks)、合批、逐条走 /quick 做掉,每批出一个 PR(PR 即审批闸,打 ff-merge label 或评论 /ff 即 FF 合入)。由 claude.ai Routines 每周一 / 三 / 五定时调用,也可本机手动跑(支持 --dry-run)
| 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<新版本号>