implement-spec 是一个技能,用于在用户希望将 /to-spec 和 /to-tickets 的结果实现为代码时使用。它假定已提供规格说明,并且该规格有关联的工单,描述如何实现规格。如果未提供问题跟踪器,技能会提示用户运行 /setup-matt-pocock-skills。
主要能力:在单一集成分支上实现整个规格,并按照问题跟踪器关闭工作的方式解决每个工单。工单被视为带有阻塞关系的任务图,因此始终存在可抓取的工单前沿。技能通过实现子代理在独立 worktree 和分支上并行实现工单,并在完成后合并到集成分支。
使用方式:首先读取规格和工单以理解任务图。可选地使用探索子代理进行必要的代码库或外部文档探索,并将笔记保存在仓库外目录供后续子代理访问。创建集成分支并记录其基础提交;仅在用户要求时,在第一次合并后打开草稿 PR。然后使用实现子代理实现每个工单,每个子代理确认其 worktree 基于集成分支,调用 tdd 技能构建工单,并在报告完成前将集成分支最新提交合并到自己的分支。实现子代理在本地运行完整测试套件时,同一工作站最多两个同时运行,并各自在下一个开始前提交其切片。子代理完成后,验证合并基础,然后合并其工作到集成分支;当工单尖端从集成分支下降时自行快进,仅在合并有冲突时使用合并子代理。如果这改变了可用工单前沿,则启动更多实现子代理以最大化并发。依赖仍在运行的兄弟工单前置条件的工单,堆叠在该兄弟分支上而不是集成分支上。
所有工单完成后,在集成分支上调用 code-review 技能,并在单个实现子代理中修复所有问题。然后读取仓库的 CI 入口点(CI 工作流、make ci 或等效物),在本地运行每个步骤,或列出跳过的步骤及原因。对于容器化目标,从 git clone --branch <integration> 运行,并通过同一容器用户删除克隆。如果 PR 关闭多个工单,每个工单写一个关闭关键字,并用 gh pr view --json closingIssuesReferences 确认。然后,如果存在草稿 PR,标记为准备审查;否则打开 PR,或按照问题跟踪器关闭工作的方式解决每个工单,并报告集成分支。对于有面向用户 UI 的产品,完成报告说明是否完成视觉设计并展示一张截图。最后清理所有实现子代理 worktree,仅在 git merge-base --is-ancestor <branch> <integration> 成功后删除工单分支,然后使用 git branch -D。
适用场景:已生成规格和工单,需要将规格实现为代码,并希望以并发、任务图驱动的方式完成实现、合并、代码审查和 CI 验证。限制:依赖问题跟踪器和规格工单的存在;需要用户环境支持子代理、worktree 和相应技能(如 tdd、code-review);容器化目标从 worktree 运行可能失败,需从克隆运行;分支删除需满足祖先条件。