惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
IT之家
IT之家
腾讯CDC
博客园 - 【当耐特】
博客园 - 聂微东
月光博客
月光博客
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
博客园 - 叶小钗
S
Security @ Cisco Blogs
雷峰网
雷峰网
N
News and Events Feed by Topic
Attack and Defense Labs
Attack and Defense Labs
Forbes - Security
Forbes - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
L
Lohrmann on Cybersecurity
Project Zero
Project Zero
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
The Last Watchdog
The Last Watchdog
Apple Machine Learning Research
Apple Machine Learning Research
W
WeLiveSecurity
C
Cisco Blogs
T
Tenable Blog
Schneier on Security
Schneier on Security
爱范儿
爱范儿
美团技术团队
V2EX - 技术
V2EX - 技术
V
V2EX
Google Online Security Blog
Google Online Security Blog
Last Week in AI
Last Week in AI
Security Archives - TechRepublic
Security Archives - TechRepublic
The Hacker News
The Hacker News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
博客园_首页
H
Hacker News: Front Page
量子位
N
News | PayPal Newsroom
大猫的无限游戏
大猫的无限游戏

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第10章:导入导出、命令行与自动化 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第17章:与 Qt VTK Python pythonOCC 生态集成 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw 第07章:参数化表达式与Spreadsheet 第08章:装配设计Assembly 第06章:Part工作台与几何内核 第05章:PartDesign实体特征建模 第04章:草图Sketcher约束建模 第02章:安装版本与工作环境配置 第03章:界面工作台与基础操作 第01章:项目全景与学习路线 第十二章:插件开发、研究功能与最佳实践 第十章:定时任务与自动化(Cron) 第七章:技能、记忆与自学习闭环 第八章:MCP 集成与上下文文件 第六章:工具系统与终端后端 第五章:模型供应商与配置体系 Hermes Agent 教程目录 第十一章:语音、视觉、浏览器与子代理协作 第四章:CLI/TUI 与会话管理 第十二章:学习路线、实战方案与最佳实践 第十一章:源码结构、开发调试与插件开发 第十章:自动化、远程访问、日志与排障 第九章:Control UI、节点、Canvas 与语音能力 第七章:工具、技能、插件与能力扩展 第八章:安全模型、访问控制与沙箱实践 第六章:Agent 工作区、会话与多智能体路由 第五章:多通道消息接入与聊天平台配置 第四章:配置体系、模型接入与认证管理 第三章:Gateway 架构、协议与运行机制 第二章:安装、环境准备与快速上手 第一章:OpenClaw 项目概览与核心定位 oh-my-openagent 教程目录 09-命令模型回退与配置参考 10-实战案例最佳实践与故障排除 05-工作模式-Ultrawork-Prometheus-Atlas 08-Hooks与MCP系统 06-Category与Skill系统 07-核心工具链 04-智能体全景详解 03-安装与环境配置 02-整体架构与多模型编排机制 01-项目简介与核心理念 01-项目概览与学习路线 02-安装部署与工具适配 03-Skill机制与using-superpowers 05-TDD系统化调试与完成前验证 07-并行智能体子智能体与Git-Worktree 第六章:代码审查、反馈处理与分支收尾 08-中国特色Skills与本土团队落地 09-MCP构建工作流执行与自定义Skill 第23章:FreeCAD-Python-API Clipper2 C# 源码解读教程 第19章:PolyTree 多边形树结构 第20章:实际应用与最佳实践 第18章:Minkowski 和与差 第17章:RectClip 矩形裁剪优化 第16章:ClipperOffset 偏移类详解 第15章:填充规则详解 第14章:布尔运算执行流程 第13章:ClipperD 浮点裁剪类 第11章:OutRec 与 OutPt 输出结构 第9章:Active 活动边结构 第10章:Vertex 顶点与 LocalMinima 局部极小值 第12章:Clipper64 裁剪类详解 第7章:高精度运算与128位整数 第8章:ClipperBase 基类详解 第5章:枚举类型与常量定义 第6章:InternalClipper 内部工具类 第2章:核心数据结构 - Point64、PointD 第3章:路径与多边形表示 - Path64、PathD、Paths64、PathsD 第4章:矩形边界 - Rect64、RectD
04-需求澄清方案设计与计划编写
我才是银古 · 2026-05-04 · via 博客园 - 我才是银古

第四章:需求澄清、方案设计与计划编写

4.1 为什么先设计再编码

AI 编程最大的浪费往往发生在需求未澄清阶段。用户说「加一个导出功能」,AI 可能立即写 CSV 导出,但真实需求可能是:

  • 需要 Excel 而不是 CSV。
  • 数据量可能上百万行,需要异步任务。
  • 只有管理员能导出。
  • 需要脱敏手机号和身份证。
  • 需要记录审计日志。
  • 前端要显示进度和下载历史。

如果跳过澄清,后续返工成本远高于前期多问几个问题。brainstorming 的目标就是把模糊想法变成可审查的设计规格。

4.2 brainstorming 的触发场景

只要任务涉及创造性工作或行为变更,就应该先使用:

  • 创建新功能。
  • 构建新组件。
  • 修改现有行为。
  • 新增 API。
  • 重构影响边界。
  • 设计 UI 或交互。
  • 新增自动化流程。

即使任务看起来很小,也不应直接跳过。对于真正简单的任务,设计可以非常短,但仍需要确认意图和成功标准。

4.3 brainstorming 的核心流程

brainstorming 要求按顺序完成以下阶段:

  1. 探索项目上下文。 先阅读现有文件、文档和相关结构,不在不了解项目的情况下提方案。
  2. 提出澄清问题。 每次一个问题,优先选择题,聚焦目的、约束、成功标准。
  3. 提出 2-3 种方案。 每个方案说明权衡,并给出推荐。
  4. 展示设计。 按复杂度分节展示架构、组件、数据流、错误处理、测试策略等。
  5. 获得用户批准。 在批准前不写实现代码。
  6. 写设计文档。 默认位置为 docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md,除非用户另有要求。
  7. 规格自检。 检查占位符、矛盾、范围过大和模糊性。
  8. 过渡到 writing-plans。 设计通过后再写实现计划。

其中最重要的硬门禁是:在展示设计并获得批准前,不要调用实现 Skill、不要写代码、不要搭建项目。

4.4 如何提出好问题

好的澄清问题应该降低用户回答成本。优先使用选择题:

导出功能更倾向哪种模式?
A. 同步导出:适合小数据量,立即返回文件
B. 异步导出:适合大数据量,后台生成后下载
C. 两者都支持:按数据量自动选择

不要一次抛出十几个问题。每次一个问题可以让对话逐步收敛,避免用户被长清单压垮。

问题应围绕:

  • 目标: 为什么要做?解决谁的问题?
  • 范围: 包含什么?明确不包含什么?
  • 约束: 技术栈、兼容性、权限、性能、时间。
  • 成功标准: 如何判断完成?有什么可验证结果?
  • 风险: 安全、数据一致性、迁移、回滚。

4.5 方案设计的结构

设计不需要长篇大论,但要覆盖决策点。推荐结构:

## 背景与目标

说明要解决的问题和成功标准。

## 范围

本次包含什么,不包含什么。

## 推荐方案

描述总体思路和为什么推荐。

## 备选方案

列出 1-2 个替代方案和取舍。

## 组件与边界

说明要新增或修改哪些模块,职责分别是什么。

## 数据流

从用户操作到系统响应,数据如何流动。

## 错误处理

失败、重试、回滚、用户提示、日志。

## 测试策略

单元测试、集成测试、端到端或手动验证。

复杂系统可以加安全、性能、部署、迁移和可观测性章节。简单任务可以压缩为几段,但不能省略关键约束。

4.6 writing-plans 的作用

设计规格回答「要做什么、为什么这么做」。实现计划回答「按什么顺序改哪些文件,如何验证每一步」。

writing-plans 假设执行计划的人是有经验的工程师,但对当前代码库没有上下文。因此计划必须写清:

  • 要创建和修改哪些文件。
  • 每个文件的职责。
  • 每个任务的步骤。
  • 每步对应的代码、测试和命令。
  • 预期失败和预期通过的输出。
  • 何时 commit。

它强调小步骤、TDD、DRY、YAGNI 和频繁 commit。

4.7 实现计划的粒度

writing-plans 规定每步应是 2-5 分钟的小操作。例如:

  1. 编写失败测试。
  2. 运行测试确认失败。
  3. 编写最少实现代码。
  4. 运行测试确认通过。
  5. Commit。

这看起来繁琐,但对 AI 很重要。AI 容易在一个大步骤中同时改测试、改实现、重构和修其他问题,导致失败时无法判断原因。小步骤能让每个变化可验证。

4.8 计划文档头部

计划应包含目标、架构和技术栈摘要。典型结构:

# 功能名称 实现计划

> 面向 AI 代理的工作者:必需子技能:使用 superpowers:subagent-driven-development(推荐)或 superpowers:executing-plans 逐任务实现此计划。

**目标:** 一句话描述要构建什么。

**架构:** 2-3 句话描述方案。

**技术栈:** 关键技术/库。

---

这段头部的价值是让后续执行者快速理解整体意图,不必回看完整对话。

4.9 计划中的禁止项

writing-plans 明确禁止含糊占位符:

  • 「TODO」
  • 「后续实现」
  • 「添加适当的错误处理」
  • 「处理边界情况」但不列具体边界
  • 「为上述代码编写测试」但不给测试内容
  • 「类似任务 N」
  • 引用尚未定义的类型和函数

这些写法对人类也许还能理解,对 AI 执行者会造成猜测。计划越具体,执行越稳定。

4.10 从设计到计划的衔接

推荐顺序:

  1. 用户提出需求。
  2. AI 使用 brainstorming 澄清并给设计。
  3. 用户批准设计。
  4. AI 写设计规格并自检。
  5. 用户审查规格。
  6. AI 使用 writing-plans 写实现计划。
  7. 用户选择执行方式:子 Agent 驱动或内联执行。

不要把设计和计划混在一起。设计阶段讨论方案和边界;计划阶段才拆具体文件和步骤。

4.11 计划审查清单

计划写完后,应自查:

  • 规格中的每项需求是否都有任务覆盖?
  • 是否有 TODO、待定、类似任务、适当处理等占位符?
  • 类型名、函数名、文件路径是否前后一致?
  • 每个任务是否有明确验证命令?
  • 是否按依赖顺序排列?
  • 是否避免无关重构?
  • 是否每步都能独立判断成功或失败?

如果发现问题,应直接修正计划,而不是带着模糊计划进入实现。

4.12 实战提示

小功能也写短设计

例如按钮文案调整:

目标:把导出按钮文案从「下载」改为「导出 CSV」,只影响用户列表页。
成功标准:页面按钮显示新文案,现有点击行为不变。
测试:更新对应快照或组件测试。

这就是足够的设计。

大功能先拆子项目

如果需求包含多个独立子系统,例如「聊天、文件存储、计费、分析平台」,应先拆分,而不是写一个巨型规格。每个子项目独立经历规格、计划、实现周期。

设计应服务当前目标

在现有代码库中发现坏味道时,可以在设计中包含与当前目标直接相关的改进。但不要借机做大范围无关重构。

4.13 本章小结

brainstormingwriting-plans 是 superpowers-zh 的前置双门。前者防止需求没想清楚就编码,后者防止设计没拆清楚就执行。真正稳定的 AI 编程不是「提示词更强」,而是让 AI 在每个阶段都有明确产物和门禁。