名称: gepetto 描述: 通过研究、利益相关者访谈和多LLM审查,创建详细的、分节的实现计划。在规划需要彻底预实现分析的功能时使用。
Gepetto
编排多步骤规划流程:研究 → 访谈 → 规范合成 → 计划 → 外部审查 → 分节
关键:首先行动
在任何操作之前,按顺序执行以下:
1. 打印介绍
立即打印介绍横幅:
═══════════════════════════════════════════════════════════════
GEPETTO: AI辅助实现计划
═══════════════════════════════════════════════════════════════
研究 → 访谈 → 规范合成 → 计划 → 外部审查 → 分节
注意:GEPETTO将向您传递的规划目录写入许多.md文件
2. 验证规范文件输入
检查用户是否在调用时提供了@file,并且它是一个规范文件(以.md结尾)。
如果没有提供@file,或者路径不以.md结尾,输出以下内容并停止:
═══════════════════════════════════════════════════════════════
GEPETTO: 需要规范文件
═══════════════════════════════════════════════════════════════
此技能需要一个markdown规范文件路径(必须以.md结尾)。
规划目录从规范文件的父目录推断。
启动新计划:
1. 创建一个markdown规范文件,描述您要构建的内容
2. 它可以尽可能详细或模糊
3. 将其放在gepetto可以保存规划文件的目录中
4. 运行:/gepetto @路径/到/您的规范.md
恢复现有计划:
1. 运行:/gepetto @路径/到/您的规范.md
示例:/gepetto @规划/我的功能规范.md
═══════════════════════════════════════════════════════════════
不要继续。等待用户使用.md文件路径重新调用。
3. 设置规划会话
通过检查现有文件确定会话状态:
-
设置
planning_dir= 规范文件的父目录 -
设置
initial_file= 规范文件路径 -
扫描现有规划文件:
claude-research.mdclaude-interview.mdclaude-spec.mdclaude-plan.mdclaude-integration-notes.mdclaude-ralph-loop-prompt.mdclaude-ralphy-prd.mdreviews/目录sections/目录
-
确定模式和恢复点:
| 找到的文件 | 模式 | 恢复自 |
|---|---|---|
| 无 | 新建 | 步骤4 |
| 仅研究 | 恢复 | 步骤6(访谈) |
| 研究+访谈 | 恢复 | 步骤8(规范合成) |
| +规范 | 恢复 | 步骤9(计划) |
| +计划 | 恢复 | 步骤10(外部审查) |
| +审查 | 恢复 | 步骤11(集成) |
| +集成笔记 | 恢复 | 步骤12(用户审查) |
| +sections/index.md | 恢复 | 步骤14(编写分节) |
| 所有分节完成 | 恢复 | 步骤15(执行文件) |
| +claude-ralph-loop-prompt.md + claude-ralphy-prd.md | 完成 | 完成 |
- 基于当前状态使用TodoWrite创建TODO列表
打印状态:
规划目录:{planning_dir}
模式:{mode}
如果恢复:
从步骤{N}恢复
要重新开始,删除规划目录文件。
日志格式
═══════════════════════════════════════════════════════════════
步骤{N}/17:{步骤名称}
═══════════════════════════════════════════════════════════════
{详情}
步骤{N}完成:{摘要}
───────────────────────────────────────────────────────────────
工作流程
4. 研究决策
- 读取规范文件
- 提取潜在研究主题(技术、模式、集成)
- 询问用户代码库研究需求
- 询问用户网络研究需求(以多选形式呈现派生主题)
- 记录在步骤5中要执行的研究类型
5. 执行研究
基于步骤4的决策,启动研究子代理:
- 代码库研究:
Task(subagent_type=Explore) - 网络研究:
Task(subagent_type=Explore)带WebSearch
如果两者都需要,并行启动两个Task工具(单个消息中多个工具调用)。
重要: 子代理返回他们的发现——他们不直接写入文件。收集所有子代理的结果后,合并它们并写入<planning_dir>/claude-research.md。
如果用户在步骤4中选择无研究,则完全跳过此步骤。
6. 详细访谈
在主上下文中运行(AskUserQuestion需要它)。访谈应基于:
- 初始规范
- 研究发现(如果有)
7. 保存访谈记录
将问答写入<planning_dir>/claude-interview.md
8. 编写初始规范(规范合成)
合并为<planning_dir>/claude-spec.md:
- 初始输入(规范文件)
- 研究发现(如果执行了步骤5)
- 访谈答案(来自步骤6)
这将用户的原始需求合成为完整的规范。
9. 生成实施计划
创建详细计划 → <planning_dir>/claude-plan.md
重要: 为不熟悉的读者编写。计划必须完全自包含——工程师或LLM无需先验上下文,仅通过阅读此文档就能理解我们构建什么、为什么以及如何构建。
10. 外部审查
并行启动两个子代理审查计划:
- Gemini 通过Bash
- Codex 通过Bash
两者接收计划内容并返回分析。将结果写入<planning_dir>/reviews/。
11. 集成外部反馈
分析<planning_dir>/reviews/中的建议。
您是决定集成什么或不集成什么的权威。如果您决定不集成任何内容,这是可以的。
步骤1: 写入<planning_dir>/claude-integration-notes.md记录:
- 您集成哪些建议及原因
- 您不集成哪些建议及原因
步骤2: 用集成更改更新<planning_dir>/claude-plan.md。
12. 用户审查集成计划
使用AskUserQuestion:
计划已更新外部反馈。您现在可以审查和编辑claude-plan.md。
如果您需要Claude帮助编辑计划,请打开单独的Claude会话——此会话
处于工作流程中,直到工作流程完成才能协助编辑。
当您完成审查时,选择“完成”继续。
选项:“完成审查”
在继续之前等待用户确认。
13. 创建分节索引
读取claude-plan.md。识别自然分节边界并创建<planning_dir>/sections/index.md。
关键: index.md必须以SECTION_MANIFEST块开头。参见参考格式要求。
在继续分节文件创建之前写入index.md。
14. 编写分节文件——并行子代理
启动并行子代理——每个分节一个Task以实现最大效率:
- 首先,解析
sections/index.md获取SECTION_MANIFEST列表 - 然后在单个消息中启动所有分节Task(并行执行):
# 在一条消息中启动所有以并行执行:
Task(
subagent_type="general-purpose",
prompt="""
编写分节文件:section-01-{名称}
输入:
- <planning_dir>/claude-plan.md
- <planning_dir>/sections/index.md
输出:<planning_dir>/sections/section-01-{名称}.md
分节文件必须完全自包含。包括:
- 背景(为什么存在此分节)
- 要求(完成时必须满足的条件)
- 依赖项(需要/阻塞)
- 实施细节(来自计划)
- 验收标准(复选框)
- 要创建/修改的文件
实施者不应需要参考任何其他文档。
"""
)
Task(
subagent_type="general-purpose",
prompt="编写分节文件:section-02-{名称} ..."
)
Task(
subagent_type="general-purpose",
prompt="编写分节文件:section-03-{名称} ..."
)
# ... 清单中每个分节一个Task
在继续之前等待所有子代理完成。
15. 生成执行文件——子代理
委托给子代理以减少主上下文令牌使用:
Task(
subagent_type="general-purpose",
prompt="""
为自主实施生成两个执行文件。
输入文件:
- <planning_dir>/sections/index.md(有SECTION_MANIFEST)
- <planning_dir>/sections/section-*.md(所有分节文件)
输出1:<planning_dir>/claude-ralph-loop-prompt.md
用于ralph-loop插件。内嵌所有分节内容。
结构:
- 任务声明
- 完整的sections/index.md内容
- 每个分节文件的完整内容(内嵌,不引用)
- 执行规则(依赖顺序,验证验收标准)
- 完成信号:<promise>ALL-SECTIONS-COMPLETE</promise>
输出2:<planning_dir>/claude-ralphy-prd.md
用于Ralphy CLI。引用分节文件(不内嵌)。
结构:
- PRD标题
- 使用方法(ralphy --prd命令)
- 上下文解释
- 复选框任务列表:每个分节一个“- [ ] 分节NN:{名称}”
编写两个文件。
"""
)
在继续之前等待子代理完成。
16. 最终状态
验证所有文件成功创建:
- SECTION_MANIFEST中的所有分节文件
claude-ralph-loop-prompt.mdclaude-ralphy-prd.md
17. 输出摘要
打印生成的文件和下一步:
═══════════════════════════════════════════════════════════════
GEPETTO: 规划完成
═══════════════════════════════════════════════════════════════
生成的文件:
- claude-research.md(研究发现)
- claude-interview.md(问答记录)
- claude-spec.md(合成规范)
- claude-plan.md(实施计划)
- claude-integration-notes.md(反馈决策)
- reviews/(外部LLM反馈)
- sections/(实施单元)
- claude-ralph-loop-prompt.md(用于ralph-loop插件)
- claude-ralphy-prd.md(用于Ralphy CLI)
如何实施:
选项A - 手动(推荐用于学习/控制):
1. 读取sections/index.md了解依赖项
2. 按顺序实施每个分节文件
3. 每个分节自包含有验收标准
选项B - 使用ralph-loop自主(Claude代码插件):
/ralph-loop @<planning_dir>/claude-ralph-loop-prompt.md --completion-promise "COMPLETE" --max-iterations 100
选项C - 使用Ralphy自主(外部CLI):
ralphy --prd <planning_dir>/claude-ralphy-prd.md
# 或:cp <planning_dir>/claude-ralphy-prd.md ./PRD.md && ralphy
═══════════════════════════════════════════════════════════════