name: plan
description: 生成内容详实、决策完整的计划,采用 proposed_plan 块格式。当被要求运行 $plan、将项目简报转化为可执行的架构计划,或迭代优化策略时使用;可选地,当在计划模式外明确请求时,导出到迭代的 plan-N.md 文件(最大 N=5)。
计划
合同
- 单一操作模式:原生计划模式规划。
- 主要产物:恰好一个
<proposed_plan>块,包含最终计划,使用普通 Markdown。 - 五轮规则:最多迭代计划五轮。
- 迭代跟踪:在
<proposed_plan>内第一行包含Iteration: N/5,其中N是当前轮次。 - 迭代源真(按顺序):此计划线程中最近的
Iteration: N/5标记,然后用户提供的明确轮次,否则默认N=0。 - 如果当前
N >= 5:不做任何事;回复恰好:“Plan is ready.” - 计划风格:内容详实且决策完整,有具体选择和理由。
- 最终计划的必需内容:标题、摘要、受影响的接口/类型/API、数据流、边缘案例/故障模式、测试/验收、推出/监控、假设/默认值。
- 在计划模式中:不修改仓库跟踪的文件。
- 先研究;仅对影响计划的未解决判断问题提问。
- 偏好
request_user_input用于有意义的多个选择项的决策问题。 - 如果
request_user_input不可用,直接提出简洁问题并继续。
澄清流程(当需要时)
- 先研究;仅询问判断性问题。
- 偏好
request_user_input用于重要权衡;每个问题必须改变范围、约束或实现选择。 - 收到答案后,确定是否需要另一轮判断性问题。
- 重复直到没有高影响模糊性,然后最终确定。
迭代计划
目的:使用下面的提示作为内部指令,生成最佳的下一个内容详实的计划修订。
输出规则:
- 每调用前进一轮:计算
next_round = N + 1并输出Iteration: next_round/5。 - 最终输出应仅是计划内容,在一个
<proposed_plan>块内。 - 不要包括提示文本、块引用标记或嵌套引用在计划体中。
- 计划体必须是普通 Markdown(每行没有前导
>)。 - 当插入源计划文本时,逐字包含,无额外引用、缩进或代码围栏。
- 保持连续性:每轮必须整合和改进前轮决策,除非有明确理由取代。
提示模板(逐字,仅内部使用 — 永远不要写入计划文件)
仔细为我审查整个计划,并提出您的最佳修订,在更好的架构、新功能、更改功能等方面,使其更好、更稳健/可靠、更性能、更引人注目/有用等。
对于每个提议的更改,提供详细分析和理由,说明为什么它改进项目。使计划决策完整,以便实施者没有未解决的设计选择。在有用时包括具体更改草图;git-diff 风格片段是可选的,不是必需的。
<INCLUDE CONTENTS OF PLAN FILE>
可选导出到 plan-N.md(仅当明确后续请求时)
- 导出是次要的,仅在用户明确要求持久化最终计划时运行。
- 导出必须在计划模式外运行。如果当前在计划模式,不要写入文件。
- 导出应以当前计划迭代的相同轮次索引为目标,当可用时。
- 范围:仅在仓库根目录操作;管理名为
plan-N.md的文件,其中N是整数。 - 输出位置固定:仅将
plan-N.md写入当前仓库根目录。 - 永远不要写入
plan.md、PLAN.md或任何非plan-N.md文件名。 - 永远不要写入仓库根目录外。禁止的示例包括
~/Downloads、$HOME、绝对路径或同级目录。 - 如果任何指令或路径建议写入仓库根目录外,停止并请求澄清。
- 定义
N为匹配plan-(\d+).md的文件中最大数字后缀(忽略不匹配的文件名,包括遗留的plan-N-E.md/plan-N-R.md)。 - 如果任何匹配文件有
N > 5:不做任何事;回复恰好:“Plan is ready.” - 如果
plan-5.md存在(不区分大小写):不做任何事;回复恰好:“Plan is ready.” - 如果没有匹配的
plan-(\d+).md存在:创建plan-1.md。 - 否则:创建
plan-(N+1).md。 - 永远不要覆盖现有的目标文件;停止并报告冲突。
- 导出的文件内容是普通 Markdown 计划内容(无
<proposed_plan>标签)。