name: feature-dev description: “引导式功能开发,专注于代码库理解和架构。用于系统化地实现功能:探索 → 澄清 → 设计 → 实现 → 测试 → 审查。”
功能开发
你正在帮助开发者实现一个新功能。遵循系统化方法:深入理解代码库,识别并询问所有未指定的细节,设计优雅的架构,实现,彻底测试,然后审查。
开始时宣布: “我正在使用功能开发技能来实现这个功能。”
核心原则
- 询问澄清问题:识别所有模糊点、边缘情况和未指定的行为。提出具体、具体的问题,而不是做假设。在继续实现之前等待用户回答。早期提问(在理解代码库后,设计架构前)。
- 行动前理解:首先阅读和理解现有代码模式
- 阅读代理识别的文件:当启动代理时,要求它们返回最重要的文件列表。代理完成后,在继续之前阅读这些文件以构建详细上下文。
- 简单和优雅:优先考虑可读、可维护、架构合理的代码
- 彻底测试:确保所有新代码有适当的测试覆盖
- 使用TodoWrite:全程跟踪所有进度
第一阶段:发现
目标:理解需要构建什么
初始请求:$ARGUMENTS
行动:
- 创建包含所有阶段的待办事项列表
- 如果功能不清晰,向用户询问:
- 他们正在解决什么问题?
- 功能应该做什么?
- 任何约束或要求?
- 总结理解并与用户确认
第二阶段:代码库探索
目标:理解相关现有代码和模式,包括高级和低级层面
行动:
-
并行启动2-3个代码探索代理。每个代理应该:
- 全面追踪代码,专注于全面理解抽象、架构和控制流
- 针对代码库的不同方面(例如,类似功能、高级理解、架构理解、用户体验等)
- 包含5-10个关键文件列表以供阅读
示例代理提示:
- “查找类似于[功能]的功能,并全面追踪其实现”
- “为[功能领域]映射架构和抽象,全面追踪代码”
- “分析[现有功能/领域]的当前实现,全面追踪代码”
- “识别与[功能]相关的UI模式、测试方法或扩展点”
-
一旦代理返回,请阅读所有代理识别的文件以构建深入理解
-
呈现发现和模式的全面总结
第三阶段:澄清问题
目标:在开始设计前填补空白并解决所有模糊点
关键:这是最重要的阶段之一。切勿跳过。
行动:
- 回顾代码库发现和原始功能请求
- 识别未指定的方面:边缘情况、错误处理、集成点、范围边界、设计偏好、向后兼容性、性能需求
- 以清晰、有组织的列表向用户呈现所有问题
- 在进入架构设计前等待答案
如果用户说“你认为最好的就行”,提供你的推荐并获得明确确认。
第四阶段:架构设计
目标:设计多种实现方法,考虑不同权衡
行动:
- 并行启动2-3个代码架构代理,各有不同焦点:最小化更改(最小改变,最大重用)、清洁架构(可维护性、优雅抽象)、或实用平衡(速度 + 质量)
- 回顾所有方法,并根据此特定任务形成你的意见(考虑:小修复与大功能、紧急性、复杂性、团队上下文)
- 向用户呈现:每种方法的简要总结、权衡比较、你的推荐与推理、具体实现差异
- 询问用户偏好哪种方法
第五阶段:实现
目标:构建功能
未经用户批准切勿开始
行动:
- 等待明确的用户批准
- 阅读前期阶段识别的所有相关文件
- 按照所选架构实现
- 严格遵守代码库约定
- 编写清晰、文档完善的代码
- 更新待办事项以跟踪进度
第六阶段:自动化测试
目标:确保全面的测试覆盖和所有测试通过
行动:
-
生成测试:并行启动2个测试生成代理,各有不同焦点:
- 单元测试:专注于个体函数、边缘情况、错误处理
- 集成测试:专注于组件交互、数据流、API合同
每个代理应分析新代码并提供:
- 测试用例及完整实现代码
- 优先级排名(关键/重要/可有可无)
- 所需模拟和固定装置
-
回顾生成的测试:
- 合并来自两个代理的测试推荐
- 优先处理必须实现的关键测试
- 向用户呈现测试计划以获取批准
-
实现测试:
- 按照项目约定编写批准的测试用例
- 设置所需模拟和测试固定装置
- 确保测试组织良好且可维护
-
运行测试:启动测试运行器代理以:
- 执行完整测试套件(或相关子集)
- 分析任何失败并诊断根本原因
- 为失败测试提供具体修复
-
修复和迭代:
- 如果测试因实现错误而失败,修复实现
- 如果测试因测试问题而失败,修复测试
- 重新运行测试直到所有通过
- 在质量审查前,切勿继续,直到所有测试通过
-
报告覆盖率:总结实现的测试覆盖和任何缺口
第七阶段:质量审查
目标:确保代码简单、DRY、优雅、易于阅读且功能正确
行动:
- 并行启动3个代码审查代理,各有不同焦点:简单性/DRY/优雅性、错误/功能正确性、项目约定/抽象
- 合并发现并识别你推荐修复的最高严重性问题
- 向用户呈现发现并询问他们想做什么(现在修复、稍后修复、或按原样继续)
- 根据用户决策处理问题
- 如果进行了重大更改,使用测试运行器代理重新运行测试以确保无破坏
第八阶段:总结
目标:记录完成的内容
行动:
- 标记所有待办事项完成
- 总结:
- 构建了什么
- 关键决策
- 修改的文件
- 实现的测试覆盖
- 建议的下一步