OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  pdd:将初步构思转化为包含实现细节的详细设计文档

pdd:将初步构思转化为包含实现细节的详细设计文档

 
  deep ·  2026-02-07 02:03:23 · 3 次点击  · 0 条评论  

名称: pdd
描述: 将粗略想法转化为包含实施计划的详细设计文档。遵循提示驱动开发流程——迭代式需求澄清、研究、设计和规划。
type: anthropic-skill
版本: "1.1"


提示驱动开发

概述

将粗略想法转化为包含实施计划的详细设计。这是一个迭代过程:澄清需求、研究、设计、规划——可根据需要在各阶段间灵活切换。

重要说明

以下规则适用于所有步骤:

  • 用户驱动流程: 未经用户明确确认,绝不进入下一步。在每次阶段转换时,询问用户下一步希望做什么。
  • 迭代式: 用户可随时在需求澄清与研究阶段之间切换。在阶段转换时始终提供此选项。
  • 实时记录: 实时将问题、答案和发现追加到项目文件中——不要在最后批量写入。
  • Mermaid 图表: 在研究和设计文档中包含架构、数据流和组件关系的图表。
  • 引用来源: 研究文档中若基于外部材料,需注明参考文献和链接。

参数

  • rough_idea (必填):待开发的初始概念或想法
  • project_dir (可选,默认:specs/{task_name}/):所有产物的基础目录。{task_name} 从想法中派生为 kebab-case 格式(例如,“构建一个速率限制器” → rate-limiter)。与 Ralph 的规范驱动流水线保持一致。

约束:
- 必须在单个提示中一次性询问所有必需参数
- 必须支持多种输入方法:直接文本、文件路径、URL
- 必须从粗略想法中派生 task_name 为 kebab-case 格式
- 禁止覆盖现有项目目录——如果目录已有内容,则询问新路径

步骤

1. 创建项目结构

创建目录和初始文件:
- {project_dir}/rough-idea.md —— 提供的粗略想法
- {project_dir}/requirements.md —— 问答记录(初始为空)
- {project_dir}/research/ —— 研究笔记目录

告知用户此结构将接入 Ralph 的规范驱动预设。

2. 初始流程规划

询问用户偏好的起点:
- 需求澄清(默认)
- 针对特定主题的初步研究
- 先提供额外上下文

3. 需求澄清

通过提问引导用户,将想法细化为全面的规范。

约束:
- 必须一次只问一个问题——不要列出多个问题
- 禁止预填答案或将问答批量写入 requirements.md
- 必须对每个问题遵循以下循环:
1. 将问题格式化并追加到 requirements.md
2. 呈现给用户,等待完整回答
3. 将答案追加到 requirements.md
4. 进入下一个问题
- 在继续之前,必须询问用户需求澄清是否已完成

涵盖边界情况、用户体验、技术约束和成功标准。当用户不确定时,提供选项建议。

4. 研究

对技术、库或现有代码进行研究,为设计提供信息。

约束:
- 必须向用户提出研究计划并采纳其建议
- 必须将研究发现记录在 {project_dir}/research/ 的独立主题文件中
- 必须定期与用户核对,分享发现并确认方向
- 在继续之前,必须总结关键发现

5. 迭代检查点

总结当前需求和研究的状况,然后询问用户:
- 继续进入设计?
- 返回需求澄清?
- 进行额外研究?

6. 创建详细设计

创建 {project_dir}/design.md 作为独立文档,包含以下部分:
- 概述
- 详细需求(从 requirements.md 整合而来)
- 架构概述
- 组件与接口
- 数据模型
- 错误处理
- 验收标准(采用 Given-When-Then 格式,便于机器验证)
- 测试策略
- 附录(技术选型、研究发现、替代方案)

约束:
- 必须将设计写成独立的——无需阅读其他文件即可理解
- 必须整合 requirements.md 中的所有需求
- 必须包含总结研究的附录(技术选型、替代方案、局限性)
- 必须与用户一起评审设计并根据反馈进行迭代

7. 制定实施计划

创建 {project_dir}/plan.md —— 一系列编号的增量实施步骤。

指导原则: 每个步骤都建立在前一步之上,产生可演示的工作功能,并遵循 TDD 实践。没有孤立代码——每个步骤都以集成为终点。核心端到端功能应尽早可用。

约束:
- 必须在 plan.md 顶部包含跟踪每个步骤的检查清单
- 必须格式化为“步骤 N:”,包含:目标、实施指导、测试要求、集成说明和演示描述
- 必须确保计划涵盖设计的所有方面,且不重复设计细节

8. 总结并呈现结果

创建 {project_dir}/summary.md,列出所有产物、简要概述和建议的后续步骤。在对话中呈现此总结。

9. 提供 Ralph 集成选项

询问:“您希望我设置 Ralph 来自主实施此项目吗?”

如果同意,创建一个简洁的 PROMPT.md(少于 100 行),包含:
- 目标声明
- 关键需求
- 验收标准(Given-When-Then)
- 对 specs/{task_name}/ 的引用

建议合适的命令:
- 完整流水线:ralph run --config presets/pdd-to-code-assist.yml
- 简化流程:ralph run --config presets/spec-driven.yml

示例

输入: “我想为我们的内部工具构建一个模板管理功能——创建、编辑、分享模板,使用自定义字段生成文档。”

输出: 一个 specs/template-management/ 目录,包含 rough-idea.md、requirements.md、research/、design.md、plan.md 和 summary.md——以及可选的用于自主实施的 PROMPT.md。

故障排除

需求停滞: 建议切换到不同方面,提供示例,或转向研究以解除决策阻塞。

研究限制: 记录缺失内容,根据现有信息建议替代方案,向用户请求额外上下文。不要阻塞进度。

设计复杂: 分解为更小组件,首先关注核心功能,建议分阶段实施,返回需求以重新确定优先级。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor