SuperAPI AI 工具集

ship-loop

编程与开发

查看项目

更新于 10-15 17:29

技能介绍

用途:ship-loop 是一个 PR 交付技能,用于把单个连贯弧(一个可关闭的 bead,或同一界面的小型 epic 切片,最多 5 个子 bead,且带配套测试)走完从认领到合并的完整循环。适用于提交到自有主分支的内部 PR;基于 fork 的开源贡献应改用 /pr-* 系列,大型 epic(15+ 子 bead)或多波次工作应使用 /crank。

九步循环:1) 认领,用 bd ready 选最高严重度未被阻塞项,或读 .agents/rpi/next-work.jsonl,再用 bd update <id> --claim 原子认领;2) 从最新 main 开分支,git checkout main && git pull --rebase,然后 git checkout -b <type>/<slug>-<bead-id>,不要基于兄弟分支堆叠;3) 先写失败测试,行为用 BDD(Gherkin)场景,不变量用单元测试,且必须因正确原因失败;4) 做最小实现让测试变绿,避免范围蔓延;5) 推送前检查,推荐 scripts/ship.sh,它会自动检测涉及清单的变更并预先运行重生成清扫;CI 中的 .github/workflows/validate.yml 是唯一权威推送门禁,旧的本地 pre-push-gate.sh 已退役,按 diff 触及内容运行 cd cli && make test、bats tests/scripts/<file>.bats、scripts/regen-codex-hashes.sh;若发现预先存在的阻塞且不在改动内容中,先单独提原子修复 PR,不要捆绑;对改变门禁/校验器/CI 行为的 PR,需把目标输出行原文作为 Evidence: 放进 PR 正文,validate-pr-evidence-claims 作业会逐条核验;6) 用约定式提交提交,feat(<scope>): 等,正文说明测试复现的失败模式及修复如何消除;7) 推送并 gh pr create,正文引用 bead、验证结果与学习锚点;8) 立即执行 gh pr merge <num> --squash --auto;9) 合并后用 bd close <id> --reason "Merged via PR #<num>" 关闭 bead。

机器人配对:claude-review(.github/workflows/claude.yml)在 pull_request opened/synchronize 时自动触发,无需 @claude 提及;评审 IN_PROGRESS 时等待即可,机器人不响应自身评论;若 PR 打开后无响应,可能是工作流权限不足,上报操作者而非重试。

失败模式与防护:F1 脚本重写残留死变量,用对暂存 .sh 无条件 shellcheck 防护;F2 预先存在的阻塞在并发分支间叠加,规则是先提原子 side-quest PR;F3 --auto 不自动变基 BEHIND 分支,用 scripts/gh-merge-chain.sh;F4 机器人触发文档错误已更正;F5 过期 KILL 文件静默阻塞,用 EVOLVE_KILL_TTL_DAYS=7 自动过期。

会话范围:默认每个自主会话 2-4 个 PR;单个会话达 5 个及以上 PR 时必须做强制事后复盘。时长、具体收益等资料暂未提供。