implement-spec 是一个面向开发流程的技能,旨在将规格说明(spec)及其关联工单(tickets)转化为实际代码。其核心目标是在单个集成分支上完成整个规格的实现,并按照问题跟踪器(issue tracker)关闭工作的方式解决每个工单。
用途
该技能用于执行由 /to-spec 和 /to-tickets 生成的成果。它假设用户已经提供了规格说明和关联工单,并且问题跟踪器已配置妥当。如果未配置,技能会提示用户运行 /setup-matt-pocock-skills。
主要能力
- 任务图驱动:工单不是简单的步骤列表,而是带有阻塞关系的任务图。技能会识别当前可执行的工单前沿(frontier),并动态调度实现子代理。
- 并行实现:通过实现子代理(implementer subagents)在各自的工作树(worktree)和分支上并行工作,最大化并发度。每个子代理基于集成分支创建,调用 TDD 技能构建工单,并在报告完成前将集成分支的最新提交合并到自己的分支。
- 稀疏沟通:子代理之间主要通过上下文指针(指向 spec、工单、研究笔记和先前提交)进行沟通,避免重复信息。
- 探索支持:可选地使用探索子代理进行代码库或外部文档的调研,并将笔记保存在仓库外的目录中,供后续子代理使用。
- 集成与合并:每个实现子代理完成后,由合并子代理(merger subagent)将其工作合并到集成分支。若合并改变了可用工单前沿,则启动更多实现子代理。
- 代码审查:所有工单完成后,在集成分支上调用代码审查技能(code-review),并由单个实现子代理修复所有问题。
- PR 与收尾:如果问题跟踪器通过 PR 关闭工作,或用户要求,则在第一次合并后创建草稿 PR(标记为关闭 spec 和工单)。全部完成后,若存在草稿 PR 则标记为可审查,否则按问题跟踪器的方式解决每个工单,并报告集成分支。最后清理所有实现子代理的工作树。
使用方式
- 阅读规格和工单,理解任务图。
- (可选)使用探索子代理进行必要调研,保存笔记到仓库外目录。
- 创建集成分支。若问题跟踪器通过 PR 关闭工作或用户要求,在第一次合并后打开草稿 PR。
- 为每个就绪工单启动实现子代理,每个在独立工作树和分支上工作,基于集成分支,调用 TDD 技能,合并集成分支最新提交后报告完成。
- 使用合并子代理将完成的工作合并到集成分支,并根据新的工单前沿启动更多实现子代理。
- 所有工单完成后,在集成分支上调用代码审查技能,并修复问题。
- 若存在草稿 PR 则标记为可审查,否则按问题跟踪器方式解决工单并报告集成分支。
- 清理所有实现子代理的工作树。
适用场景
该技能适用于已有明确规格说明和工单分解的软件开发任务,尤其适合需要并行处理多个相互依赖任务的复杂项目。它要求用户具备多代理环境、Git 工作流和问题跟踪器配置。
限制
- 使用前必须已配置问题跟踪器,否则无法继续。
- 技能依赖子代理和 TDD、代码审查等外部技能,需确保环境支持。
- 工单之间的阻塞关系必须正确设置,否则任务图调度可能不准确。
- 该技能不涉及收费、价格或具体平台信息(资料未提供)。
- 具体实现细节和效果取决于实际代码库和工单质量,资料未提供更多保证。