Epic Planner
当前任务是史诗战略寻路:把不清楚的目标、现状和取舍变成可推进的决策票。启动时地图数量、边界和并发关系都是 Unknown;代码问题的分类不能直接变成候选地图,即使冠以「初步」「暂定」或「不是最终计划」。
本 Skill 拥有史诗层的目标、深模块、共享 Interface 和拆分决定。它们经寻路解决后,才形成多地图 epic-plan,支持多个 Wayfinder 会话继续各自内部的寻路,并按 Seam 集成。
史诗索引 Issue 是跨会话入口,默认标签 epic:plan。索引从寻路开始就存在,阶段先是「寻路中」;标签不代表最终规划已完成。决策与证据由各自的寻路票拥有,索引只存摘要和指针。规划、研究、图与交接材料都存远程,产品代码保持只读。
按输入选择模式
- 模糊需求或史诗方向,包括「先分析」「诊断架构」: 启动寻路,建立索引和当前能提出的问题。用户怀疑需要史诗重构,是待验证假设。明确只要普通诊断、不做寻路时,改用 investigate。
- 史诗索引 URL 或编号,可附票名: 续接寻路,推进一个当前可处理的决定。
- 已有最终计划,或下游地图带回合同冲突: 先读回索引;把失效的共享决定重新纳入寻路,只复核受影响部分。
读取目标项目的术语、约定和 tracker 配置。位置、标签、归属、发布与读回遵循 Issue 合同。依赖 Skill 按用户提供的路径或当前运行时目录定位;缺失时报告路径和受阻票,保持未解决。
史诗迷雾与循环
史诗索引是一张逐步揭开的战略迷雾地图。范围由终点固定,视野随证据与沟通扩展;开始时保持不完整,不能把未知提前切成看似确定的地图。
| 概念 | 在史诗层的含义 |
|---|---|
| Destination | 清楚的史诗战略与多地图 epic-plan:目标、范围、Module Ownership、共享 Interface、并发关系和集成验收已对齐 |
| Fog of war | 范围内已察觉、但暂时还不能精确提问的未知。记在索引「待明确」,例如“授权模型也许会改变地图拆分” |
| 决策票 | 已能精确表述的问题,例如“组织角色是否包含项目读取权”。答案未知或被前置票阻塞,都不妨碍建票 |
| Frontier | open、unblocked、unclaimed 的寻路票,是当前能推进的已知边缘;不是全部未完成工作 |
| 已决事项 | 已有有效 resolution 的决定,只保留摘要和来源指针;新证据可使决定重新打开 |
| 范围外 | 明确不属于史诗终点的工作,单独记录理由。只有用户改变范围时才重新纳入 |
迷雾循环:恢复索引 → 选 frontier 票 → 取证或真实沟通 → 写 resolution → 重画已知边缘 → 继续。 每次 resolution 后,复核目标、架构、地图依赖与接合处:哪些迷雾现在能问清,哪些新迷雾出现,哪些旧决定已失效?
能问清的迷雾毕业为一张或多张票并连依赖,从「待明确」移除;仍问不清的继续保留。毕业记录归新票,「待明确」不留已毕业票的历史清单。一块迷雾也可能因新证据而消失,此时记录证据与原因。不能把迷雾草率预切成固定票数,也不能静默搬到「范围外」或下游地图以宣称已清除。
循环直到全部范围内的史诗战略迷雾清除、相关决策票解决且用户确认对齐,不设固定轮数。单轮结束、当前 frontier 为空、票都已分派,都不是这个终点。下游只接收已证明不影响史诗战略或跨地图合同的内部决定,并明确其归属。
启动寻路
- 澄清终点。 读取
grill-with-docs/SKILL.md,按其路由用 grilling 与 domain-modeling 澄清业务结果、范围和成功标准;产物遵循票型与结论的远程覆盖。先问会改变方向的真实取舍,可查事实交给调研。痛点回答只确认痛点,不代表用户批准重构范围、共享语义或拆分。尚无答案的目标保持 proposed,并留下拷问票。 - 探到 frontier。 浅读目标代码路径、当前 Interface、状态 owner、测试和已有决定,找出会改变史诗拆分的问题。先覆盖整个决策空间,再深入单点。需要图时读取 show-me,用可嵌入 Issue 的调用树或 Mermaid 显示已知关系。此步完成于问题可表述,不要求一次完成架构分析。
- 建立索引和票。 按 票型与结论 为已能精确提问的问题建子票;即使被阻塞,只要问题清楚也建票。暂时问不清的内容留在「待明确」,范围外单列。先取得真实票 ID,再按项目 tracker 约定连阻塞边;索引阶段保持「寻路中」。没有发布授权或 tracker 不可用时,仍在对话交付同样的索引与决策票草稿,注明未发布;不退化为架构建议报告。
- 启动独立取证并收口。 可并发的内部调研和外部研究票,在授权及宿主能力允许时交后台 agent;先认领,再交问题和证据指针。缺少后台能力时保留在 frontier。HITL 票留给真实用户参与,不能在本轮代答后宣布完成。
完成条件: 有史诗索引、带类型/解决条件/依赖的决策票、剩余迷雾,以及下一项取证或真实待答问题;已发布则读回,否则交付可发布草稿。启动到此结束,不输出候选地图、拆分数量或并发分工。初查发现与推荐只作票的输入,研究数量和测试通过都不证明战略已清楚。
续接寻路
- 恢复现场。 先读索引,再查询属于该史诗的寻路票及阻塞状态。frontier 是 open、unblocked、unclaimed 的寻路票;只按需展开相关票正文与 resolution。核对代码基线和已决合同是否变化。
- 选票并认领。 用户指定票时先核对归属、阻塞与 claim;否则取 frontier 中按项目顺序的第一张。按 tracker 的 claim 机制认领并读回后,才读取票型 Skill、运行该票的调研、测试或原型;不能先取证后补认领。被阻塞或他人认领的票不抢做;当前没有 frontier 时报告具体阻塞或待回复,不把它当作规划完成。
- 按票型处理。 读取票的类型标签,再按 票型与结论 调用对应 Skill。事实由 agent 取证,取舍由用户裁决。prototype 与拷问票没有真实用户反馈就保持 open,记录等待点;研究结论也不自动授权产品决定。
- 结案并重画迷雾。 达到该票解决条件后,写 resolution comment,读回成功再 close;索引追加名称链接与一句结论。按「史诗迷雾与循环」复核并更新迷雾、毕业票与阻塞边。决定推翻旧结论时,重开或新增受影响票并重连依赖。越界票记录原因后关闭,只进入「范围外」。
- 检查是否可形成计划。 按下节检查全部史诗层待决项。未通过则保持「寻路中」,留下可续接的 frontier 或等待点;通过才读取 形成 epic-plan 并更新同一个索引。
每个会话最多解决一张非调研票;独立的 investigate、research 票可后台并发处理。跨票通信使用 Issue、resolution 和证据链接。索引由史诗 owner 汇总,worker 只写自己的票和交回结果指针。
完成条件: 本轮解决或等待的票有远程记录,claim 状态可恢复,索引反映当前决定与迷雾;下一会话能从索引继续。
epic-plan 的形成门槛
以下条件全部成立,才将索引阶段改为「规划就绪」:
- 史诗层所有范围内的寻路票都有有效 resolution 并已关闭;「待明确」为空。frontier 为空而仍有 blocked、claimed 或待用户回复的票不满足条件。
- 目标、关键术语、Module Ownership、跨地图 Interface、共享状态和迁移取舍都有证据;用户的真实确认覆盖当前拆分与共享合同。已有确认可引用,尚未对齐则继续拷问票。
- 已解决会改变拆分或共享合同的未知。属于各候选地图内部、且不影响其他地图的决定明确移交下游,未决内容及归属可见。
- 拆分决定有已解决的拷问票,能追溯各边界、共享合同和并发判断依据。不能把尚待裁决的战略问题转交下游以通过门槛。
通过门槛后才读取形成 epic-plan,整理多张候选地图;准备交接时读取交接与续接。规划就绪、下游地图路线清楚、实现完成、集成验证分别记录;不因规划完成自动关闭史诗索引。
维护验证
修改寻路生命周期、票型、完成门槛或远程产物规则时,运行 前向验证案例。格式校验只证明可加载,不能证明寻路不会提前结束。


