agentsclimarketplace

Writing plans

Skill dxc-danny/superpowers-cn/skills/writing-plans

Use when you have a spec or requirements for a multi-step task, before touching codeFrom its SKILL.md

Install
npx -y skills add dxc-danny/superpowers-cn --skill writing-plans

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.7 KB, as published. Nobody here has run it

编写计划

概述

编写全面的实施计划,假设工程师对我们的代码库一无所知且品味可疑。记录他们需要知道的一切:每个任务要修改哪些文件、代码、可能需要检查的文档、如何测试。将整个计划以细粒度任务的形式给出。DRY。YAGNI。TDD。频繁提交。

假设他们是熟练的开发者,但对我们的工具集或问题领域几乎一无所知。假设他们不太了解好的测试设计。

开始时宣布: "我正在使用 writing-plans 技能来创建实施计划。"

上下文: 这应该在专用 worktree 中运行(由 brainstorming 技能创建)。

保存计划到: docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md -(用户对计划位置的偏好覆盖此默认值)

范围检查

如果规格涵盖多个独立子系统,它应该在 brainstorming 期间被分解为子项目规格。如果没有,建议将其分解为单独的计划 —— 每个子系统一个。每个计划应该自行产生可工作、可测试的软件。

文件结构

在定义任务之前,先规划哪些文件将被创建或修改,以及每个文件的职责。这是分解决策被锁定的地方。

  • 设计具有清晰边界和良好定义接口的单元。每个文件应该有一个清晰的职责。
  • 你对能同时掌握上下文的代码推理得最好,当文件专注时你的编辑更可靠。偏爱更小、更专注的文件,而非做太多事的大文件。
  • 一起更改的文件应该放在一起。按职责拆分,而非按技术层。
  • 在现有代码库中,遵循既定模式。如果代码库使用大文件,不要单方面重构 —— 但如果你正在修改的文件变得笨重,在计划中包含拆分是合理的。

这个结构为任务分解提供依据。每个任务应该产生独立有意义的自包含更改。

细粒度任务粒度

每个步骤是一个动作(2-5 分钟):

  • "写失败的测试" —— 步骤
  • "运行它确保它失败" —— 步骤
  • "写最少的代码让测试通过" —— 步骤
  • "运行测试确保它们通过" —— 步骤
  • "提交" —— 步骤

计划文档头部

每个计划必须以此头部开始:

# [功能名称] 实施计划

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**目标:** [一句话描述构建内容]

**架构:** [2-3 句关于方法的描述]

**技术栈:** [关键技术/库]

---

任务结构

### 任务 N:[组件名称]

**文件:**
- 创建:`exact/path/to/file.py`
- 修改:`exact/path/to/existing.py:123-145`
- 测试:`tests/exact/path/to/test.py`

- [ ] **步骤 1:编写失败的测试**

```python
def test_specific_behavior():
    result = function(input)
    assert result == expected
```

- [ ] **步骤 2:运行测试验证它失败**

运行:`pytest tests/path/test.py::test_name -v`
预期:FAIL with "function not defined"

- [ ] **步骤 3:写最少的实现**

```python
def function(input):
    return expected
```

- [ ] **步骤 4:运行测试验证它通过**

运行:`pytest tests/path/test.py::test_name -v`
预期:PASS

- [ ] **步骤 5:提交**

```bash
git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"
```

无占位符

每个步骤必须包含工程师需要的实际内容。以下是计划失败 —— 永远不要写:

  • "TBD"、"TODO"、"稍后实现"、"填写细节"
  • "添加适当的错误处理" / "添加验证" / "处理边缘情况"
  • "为上述写测试"(没有实际测试代码)
  • "类似于任务 N"(重复代码 —— 工程师可能乱序阅读任务)
  • 描述要做什么但不展示如何做的步骤(代码步骤需要代码块)
  • 引用在任何任务中未定义的类型、函数或方法

记住

  • 始终使用精确的文件路径
  • 每个步骤都有完整代码 —— 如果步骤更改了代码,展示代码
  • 带预期输出的精确命令
  • DRY、YAGNI、TDD、频繁提交

自我审查

写完完整计划后,用新的眼光看规格并对照计划检查。这是你自己运行的检查清单 —— 不是子代理调度。

1. 规格覆盖: 浏览规格的每个部分/需求。你能指出实现它的任务吗?列出任何差距。

2. 占位符扫描: 在你的计划中搜索红旗 —— 上述"无占位符"部分的任何模式。修复它们。

3. 类型一致性: 你在后面的任务中使用的类型、方法签名和属性名与前面定义的一致吗?任务 3 中的 clearLayers() 但任务 7 中的 clearFullLayers() 是一个 bug。

如果发现问题,inline 修复。不需要重新审查 —— 直接修复然后继续。如果发现规格需求没有对应任务,添加任务。

执行交接

保存计划后,提供执行选择:

"计划完成并保存到 docs/superpowers/plans/<filename>.md。两种执行选项:

1. Subagent-Driven(推荐) —— 我为每个任务调度一个新子代理,任务间审查,快速迭代

2. 内联执行 —— 使用 executing-plans 在此会话中执行任务,批次执行带检查点

选择哪个?"

如果选择了 Subagent-Driven:

  • 必需的子技能: 使用 superpowers:subagent-driven-development
  • 每个任务新子代理 + 两阶段审查

如果选择了内联执行:

  • 必需的子技能: 使用 superpowers:executing-plans
  • 批次执行带审查检查点

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.