用途
Ship Spec 用于把"一个已获批准的规格"推进到交付完成。它的核心设计是:父级代理只做编排,实现交由独立的新子代理(implementation subagent)完成,评审交由另一个独立的新子代理完成,以保证实现与评审相互分离。
主要能力
- 两道启动门禁:先检查所需技能是否齐备,再检查仓库配置是否就绪,未通过则停止并给出修复动作。
- 规格与工单解析:从配置的问题追踪器拉取父规格全文与评论,并以"穷尽并集"方式解析子工单(原生父子关系、正文/评论中的显式子引用、反向父级查询),而不是首次命中即止。
- 依赖图与工作前沿(frontier):构建工作项依赖图,拒绝缺失工单、循环、未解决的阻塞项或不明确的父子关系;每次只处理一个已就绪工作项。
- 分支与提交契约:记录基线分支与提交,创建
spec/<spec-id>-<short-slug>分支;每个实现与修复提交遵循 commitlint 兼容的 Conventional Commit 格式。 - 完整验证门禁:从仓库说明、清单、任务运行器、脚本和 CI 配置中盘点全部验证命令,形成验证契约,实现后与每次变更后都要重跑。
- Ponytail 精简门禁:将规格、验收标准、仓库规范、深模块边界等视为约束,在约束内最小化实现,并要求每个改动文件与新抽象都有必要性。
- 独立评审循环:子工单评审与整规格终审都由不同于实现者的新代理执行,分别返回 Standards、Spec、Ponytail 三方面结论。
- 草稿 PR 发布:整规格评审通过后推送分支,通过仓库托管平台原生机制创建草稿状态的拉取请求,并关联父规格与全部子工单。
使用方式
该技能通过调用 $ship-spec 启动。父规格需先由 to-spec 生成,子工单可由 to-tickets 生成(可选)。若技能缺失,技能会列出缺失名称并要求执行:
npx skills@latest add mattpocock/skills
若 Ponytail 技能缺失,Codex 环境被要求执行:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
随后需要审阅并信任 /hooks 中的 Ponytail 钩子,重启 harness 后再次调用 $ship-spec。
适用场景
适用于已经存在一份由 to-spec 产出、包含必需章节与已批准测试接缝的规格,并且希望用可追溯的提交、独立评审与原生追踪器状态流转完成交付的团队或仓库。
限制
- 缺少任一所需技能或仓库配置不完整时,运行会在对应门禁处停止,需用户完成安装或配置后重启。
- 子工单发现需要穷尽所有受支持的来源;原生查询返回零结果不能作为"无子工单"的证明。
- 分支推送或拉取请求创建失败时,父规格保持 In Progress,并保留提交、报告确切重试点;已完成状态的声明有严格前置条件(原文在此处被截断,后续条件内容暂未提供)。
- 该技能依赖外部问题追踪器与仓库托管平台的原生机制;具体支持范围与配置字段的细节,资料中仅给出了 GitHub 的示例,其余平台信息暂未提供。
- 文档未说明收费、价格或性能数据,暂未提供。