问题描述
在 pt-snap-cli 仓库执行 /release:prep 0.1.0 时,流程在阶段 1 要求读取:
.claude/pypi-release-process.md
.github/workflows/publish.yml
CHANGELOG.md
但目标仓库实际情况是:
.claude/pypi-release-process.md 不存在
.github/workflows/publish.yml 不存在,实际存在的是 .github/workflows/release.yml
CHANGELOG.md 不存在
因此 release:prep 在准备 changelog 前被迫停下,需要用户决定如何适配。
复现方式
在一个没有 .claude/pypi-release-process.md,且 release workflow 文件名为 .github/workflows/release.yml 的 Python 仓库中执行:
实际结果
命令要求读取固定路径 .claude/pypi-release-process.md 和 .github/workflows/publish.yml,文件缺失时无法继续按技能流程完成 release prep。
期望结果
建议 release:prep 对这些文件依赖做更稳健的处理,例如:
- 将
.claude/pypi-release-process.md 视为可选文件:存在则读取并遵守,不存在则使用内置默认发布流程并提示。
- workflow 文件不要硬编码为
.github/workflows/publish.yml,可自动发现包含 tag 发布/PyPI 发布逻辑的 workflow,例如 release.yml。
- 如果
CHANGELOG.md 不存在,支持进入“新建 changelog”的路径,而不是只能依赖既有风格。
- 在缺失关键文件时输出明确的可操作建议,区分“必须停止”的错误和“可以适配继续”的情况。
影响
当前实现会让 release prep 对仓库模板结构有较强假设。对于已经使用 tag-triggered release workflow、但文件名或流程文档不同的仓库,用户需要人工判断并中断流程。
环境备注
触发场景来自 codeasier/pt-snap-cli 仓库,实际 workflow 文件为 .github/workflows/release.yml,其中 release 由 v* tag 触发,并校验 tag 版本与 pyproject.toml 版本一致。
问题描述
在
pt-snap-cli仓库执行/release:prep 0.1.0时,流程在阶段 1 要求读取:.claude/pypi-release-process.md.github/workflows/publish.ymlCHANGELOG.md但目标仓库实际情况是:
.claude/pypi-release-process.md不存在.github/workflows/publish.yml不存在,实际存在的是.github/workflows/release.ymlCHANGELOG.md不存在因此
release:prep在准备 changelog 前被迫停下,需要用户决定如何适配。复现方式
在一个没有
.claude/pypi-release-process.md,且 release workflow 文件名为.github/workflows/release.yml的 Python 仓库中执行:实际结果
命令要求读取固定路径
.claude/pypi-release-process.md和.github/workflows/publish.yml,文件缺失时无法继续按技能流程完成 release prep。期望结果
建议
release:prep对这些文件依赖做更稳健的处理,例如:.claude/pypi-release-process.md视为可选文件:存在则读取并遵守,不存在则使用内置默认发布流程并提示。.github/workflows/publish.yml,可自动发现包含 tag 发布/PyPI 发布逻辑的 workflow,例如release.yml。CHANGELOG.md不存在,支持进入“新建 changelog”的路径,而不是只能依赖既有风格。影响
当前实现会让 release prep 对仓库模板结构有较强假设。对于已经使用 tag-triggered release workflow、但文件名或流程文档不同的仓库,用户需要人工判断并中断流程。
环境备注
触发场景来自
codeasier/pt-snap-cli仓库,实际 workflow 文件为.github/workflows/release.yml,其中 release 由v*tag 触发,并校验 tag 版本与pyproject.toml版本一致。