wayfinder
规划超出一个 agent 会话容量的大块工作 —— 在 issue tracker 上建立一张调查 tickets 的共享地图,逐个解决它们,直到通往目标的路径清晰可见。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
规划超出一个 agent 会话容量的大块工作 —— 在 issue tracker 上建立一张调查 tickets 的共享地图,逐个解决它们,直到通往目标的路径清晰可见。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | wayfinder |
| description | 规划超出一个 agent 会话容量的大块工作 —— 在 issue tracker 上建立一张调查 tickets 的共享地图,逐个解决它们,直到通往目标的路径清晰可见。 |
| disable-model-invocation | true |
一个模糊的想法出现了 —— 太大而无法放入单个 agent 会话,且笼罩在迷雾中:从当前状态到目标的路径尚不可见。寻路(Wayfinding)就是找到那条路,而非冲向目标。此技能在仓库的 issue tracker 上绘制路径作为一张共享地图,然后逐个处理其 tickets,直到路径变得清晰。
目标因工作而异,命名目标是绘制地图的第一步 —— 它塑造每个 ticket。目标可能是一份待移交和迭代的 spec、一个在规划开始前需锁定的决策、或是一个原地完成的变更(如数据结构迁移)。地图是领域无关的 —— 工程工作、课程内容,任何符合此形态的内容都可以。
Wayfinder 默认进行规划:每个 ticket 解决一个决策,当地图完成时路径就清晰了 —— 在某人动手做事之前没有任何剩余的决策。想要直接动手做事的冲动通常就是信号,表明你已经到达地图的边缘,是时候移交了。一项工作可以通过其Notes覆盖此行为 —— 将执行带入地图本身 —— 但如果没有明确说明,产出决策,而非可交付成果。
每张地图和每个 ticket 都是一个 issue,因此它有一个名称 —— 即其标题。在人类阅读的所有内容中 —— 叙述、地图的 Decisions-so-far —— 使用名称引用它,绝不使用裸 ID、编号或 slug。一堵 #42, #43, #44 的墙是难以阅读的;名称可以一目了然。ID 和 URL 不会消失 —— 名称包裹着其链接 —— 但它们在名称内部,绝不是名称的替代品。
地图是本仓库 issue tracker 上的单个 issue,标记为 wayfinder:map —— 是规范的产物。其 tickets 是地图的子 issues。
地图是一个索引,而非存储。它列出已做出的决策并指向持有其详细信息的 tickets;一个决策只存在于一个地方 —— 其 ticket —— 因此地图从不重述,仅概括并链接。
地图、其子 tickets、阻塞关系和前沿查询的物理存放位置取决于 tracker。 Issue tracker 应已提供给你 —— 如果没有,运行 /setup-matt-pocock-skills。查阅 tracker 文档的"寻路操作"章节,了解此仓库如何表达这些内容。如果未提供 tracker,则默认使用本地 markdown tracker。
整个地图的低分辨率视图,每个会话加载一次。开放的 tickets 不列出 —— 它们是通过查询找到的开放子 issues。
## 目的地
<到达此地图终点时的样子 —— 此工作正在寻路的 spec、决策或变更。一到两行;每个会话在挑选 ticket 之前以其为定位。>
## 说明
<领域;每个会话应咨询的技能;此工作的常设偏好>
## 已做出的决策
<!-- 索引 —— 每个已关闭 ticket 一行:足以判断相关性,然后放大链接查看 ticket 持有的详细信息 -->
- [<已关闭 ticket 标题>](link) —— <答案的一句话概括>
## 尚未明确
<!-- 参见"战争迷雾":范围内但你尚无法做成 ticket 的迷雾;随着前沿推进而升级 -->
## 超出范围
<!-- 参见"超出范围":被裁定在目标之外的工作;已关闭,永不升级 -->
每个 ticket 是地图的子 issue;tracker 的 issue ID 是其标识。其正文是问题,大小适配一个 100K token 的 agent 会话:
## 问题
<此 ticket 要解决的决策或调查>
每个 ticket 携带一个 wayfinder:<type> 标签 —— 以下之一:research、prototype、grilling、task(参见 Ticket 类型)。
一个会话通过将 ticket 分配给驱动地图的开发者来领取它,在开始任何工作之前分配,以便并发会话跳过它。该分配者就是领取标记:一个开放、未分配的 ticket 是未被领取的。
阻塞关系使用 tracker 的原生依赖关系 —— 这很关键,因为它使前沿在 tracker 自己的 UI 中可视化呈现,因此人类无需打开地图就能看到哪些可以被领取。只有缺少原生阻塞功能的 tracker 才退回到正文约定。当一个 ticket 的所有阻塞 tickets 都已关闭时,该 ticket 是未被阻塞的;前沿是开放、未被阻塞、未被领取的子 issues —— 即已知的边界。
答案不是正文的一部分 —— 它在解决时记录(参见遍历地图)。解决 ticket 时创建的资产从 issue 链接,而非粘贴进去。
每个 ticket 要么是 HITL —— 人在回路中,与一个代表自己发言的人类一起工作 —— 要么是 AFK,由 agent 独立驱动。HITL ticket 只能通过实时交流来解决;agent 绝不代替人类一方发言(一个自问自答的质询 agent 已经破坏了这一点)。
地图是刻意不完整的:不要绘制你还看不到的内容。在活跃的 tickets 之外是战争迷雾 —— 你能感觉到即将到来但尚无法确定的决策和调查的模糊视野,因为它们依赖于尚未解决的问题。解决一个 ticket 会清除它前方的迷雾,将任何现在可以明确的内容升级为新的 tickets —— 逐个进行,直到通往目标的路径清晰且没有剩余 tickets。
地图的尚未明确章节记录这些模糊视野:待定的问题、后续重新审视的区域。它是朝向目标方向的未发现前沿 —— 此处的所有内容都在范围内,只是不够清晰以做成 ticket。根据视野允许的范围,尽可能松散或完整地书写;它同时也是协作者阅读工作方向的路标。
迷雾还是 ticket? 判断标准是你是否现在就能精确地陈述问题 —— 而不是你现在是否能回答它。
尚未明确排除已决策的内容(Decisions so far)、已有的活跃 ticket 以及超出范围的内容(下一节)。
迷雾只会向目标方向聚集。目标确定了范围,因此目标之外的工作是超出范围的 —— 它不是迷雾,也不属于尚未明确。它在地图上拥有自己的超出范围章节:你已自觉排除在此工作之外的工作。是范围而非清晰度让它落入此处。
超出范围的工作永不升级 —— 前沿停在目标处 —— 因此只有在目标被重新划定后才会重新考虑,且以一个全新的工作而非恢复旧工作的形式出现。
将某物裁定为超出范围是一个范围界定行为,而非路径上的一步。当已有的一个 ticket 被发现位于目标之外 —— 绘制地图时范围划分错误,或因某个解决方案而暴露 —— 关闭它(一个已关闭的 ticket 明确地不在前沿上),并在超出范围章节留下一行:概括加上为何超出范围,链接已关闭的 ticket。它不会出现在已做出的决策中,该节记录实际走过的路径 —— 范围边界不是路径上的一步。
两种模式。无论哪种,每个会话绝不解决超过一个 ticket。
用户带着模糊的想法调用。
/grilling 和 /domain-modeling 会话,以确定此地图正在寻路的目标 —— spec、决策或变更。目标确定了范围,因此先确定它。wayfinder:map):填写 Destination 和 Notes,Decisions so-far 为空,迷雾草拟进尚未明确。用户带着一张地图(URL 或编号)调用。Ticket 是可选的 —— 不提供时,你选择下一个决策,而非用户。
## Notes 块中指定的技能。如有疑问,使用 /grilling 和 /domain-modeling。用户可以并行运行未被阻塞的 tickets,因此需预期其他会话会并发编辑 tracker。
询问哪种技能或流程适合你的情况。本仓库技能的导航器。
沿两个轴线审查自某个固定点(commit、分支、tag 或合并基准)以来的变更 — 标准(代码是否遵循此仓库已记录的编码规范?)和规范(代码是否匹配原始 issue/PRD 要求的内容?)。以并行子 agent 运行两项审查,并将结果并排呈现。当用户想要审查分支、PR、进行中的变更,或要求"从 X 开始审查"时使用。
设计深层模块的共享词汇。当用户想要设计或改进模块接口、寻找深化机会、决定缝合点放在哪里、使代码更可测试或更适合 AI 导航,或当其他技能需要深层模块词汇时使用。
针对疑难 bug 和性能回归的诊断循环。当用户说"诊断"/"调试这个",或报告有东西损坏/抛出异常/失败/变慢时使用。
构建和精炼项目的领域模型。当用户想要确定领域术语或通用语言、记录架构决策,或当其他技能需要维护领域模型时使用。
一场无情的面试,用于打磨方案或设计。