Writing Plans Skill logo

Writing Plans Skill

打开

Superpowers项目的计划编写Skill,在零背景假设下制定详尽实施方案,拆分为2-5分钟原子步骤,遵循TDD、DRY、YAGNI原则,记录文件变更、测试策略和验证点,确保高质量实施。

分享:

编写计划

来自 Superpowers 项目的计划编写 Skill,用于创建详尽的实施计划,将复杂任务分解为小而可执行的步骤。该 Skill 强调在零背景假设下编写计划,确保任何工程师都能理解和执行,遵循 TDD、DRY、YAGNI 等最佳实践。

核心方法

零上下文假设:编写计划时假设执行工程师对代码库完全陌生。不能假设工程师知道项目的架构、约定或工具链。所有必要信息都必须在计划中明确说明。

熟练但不了解:假设工程师是熟练的开发人员,具备扎实的编程基础,但对我们的特定工具集、框架和代码库一无所知。需要提供足够的上下文和指导。

测试设计指导:不能假设工程师了解良好的测试设计。计划中需要明确说明如何测试、测试什么、预期结果是什么。提供具体的测试用例和验证步骤。

详细记录一切:必须记录所有关键信息,包括要修改哪些文件、如何测试、要检查什么、预期的输出等。不能遗漏任何执行所需的信息。

任务粒度

每个步骤都是一个原子性动作,预计耗时 2-5 分钟:

"编写失败的测试":这是一个独立步骤。明确指定测试文件位置、测试内容、预期失败原因。

"运行它以确保它失败":这是另一个独立步骤。说明如何运行测试、预期的失败输出是什么。

"实现最小代码使测试通过":又是一个独立步骤。指定要修改的文件、要添加的代码、实现的最小范围。

这种细粒度的步骤划分确保每个步骤都清晰、可验证、易于执行。

核心原则

DRY(Don't Repeat Yourself):不要重复自己。避免代码重复,提取共同逻辑到可复用的函数或模块。在计划中明确指出哪些代码可以复用,如何避免重复。

YAGNI(You Aren't Gonna Need It):你不会需要它。只实现当前需要的功能,不要过度设计或添加"可能有用"的功能。保持实现简单和专注。

TDD(Test-Driven Development):测试驱动开发。先写测试,再写实现。这确保代码是可测试的,并且有明确的验收标准。计划中的步骤应该遵循 TDD 流程。

频繁提交:鼓励小而原子性的提交。每完成一个有意义的步骤就提交,而不是等到所有工作完成。这样可以更容易追踪进度和回滚错误。

计划结构

任务概述:简要描述任务的目标和背景,说明为什么要做这个任务。

前置条件:列出执行任务前需要满足的条件,如环境配置、依赖安装等。

详细步骤:将任务分解为 2-5 分钟的原子步骤,每个步骤包括:

  • 要执行的具体操作
  • 涉及的文件和代码位置
  • 如何验证步骤完成
  • 预期的输出或结果

测试策略:说明如何测试实现,包括单元测试、集成测试、手动测试等。

验证检查点:列出关键的验证点,确保实现符合要求。

提交建议:建议在哪些步骤后进行代码提交。

计划存储

计划保存到:docs/plans/YYYY-MM-DD-<feature-name>.md

使用日期和功能名称命名,便于追踪和查找。计划文件本身也是项目文档的一部分,记录了功能的实现过程。

应用场景

新功能开发:为新功能制定详细的实施计划,确保开发过程有序、可追踪。

复杂重构:将复杂的重构任务分解为小步骤,降低风险,便于回滚。

Bug 修复:为复杂 bug 的修复制定系统化的计划,确保彻底��决问题。

团队协作:为团队成员提供清晰的实施指南,即使是新加入的成员也能快速上手。

应用价值

该 Skill 通过强制执行详细的计划编写,确保复杂任务被系统化地分解和执行。零上下文假设使得计划对任何工程师都是可理解和可执行的,大幅降低了知识传递的成本。

遵循 TDD、DRY、YAGNI 等最佳实践,确保实现的代码质量高、可维护性强。细粒度的步骤划分和频繁提交策略使得进度可追踪、问题易定位。对于需要多人协作或长期维护的项目,详细的实施计划是确保项目成功的重要保障。

评论

还没有评论。成为第一个评论的人!