Communitygithub.com

AhmedMerza/claude-skills

名称:scout —— 当你不确定如何开始或去向何方时,用于探索问题空间并规划路线的技能。

claude-skills 是什么?

此技能专为AI助手(如Claude Code、Cursor等)设计,用于处理“目标未知”的场景。当用户面临一个模糊的问题或想法,尚未形成明确计划或解决方案路径时,`/scout` 会执行广度优先的探索,帮助厘清目标、识别关键问题,最终输出一个清晰的行动计划。它强调先“勘察地形”再“选择路线”,避免过早陷入细节。该技能支持跨会话操作(通过 `/handover-save` 和 `/handover-resume`),并包含严格的约束条件:如果问题实际上已经清晰,它会立即指出无需探索。其核心流程分为五个阶段:命名目标、广度展开、问题分桶(锐利/模糊/范围外)、逐一解决、在路线清晰时停止。该技能与 `grill-me`(深度审查已有计划)、`explain`(解释现有代码)等其他技能互补,位于工作流程的上游。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add AhmedMerza/claude-skills

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

/scout —— 我到底要去哪里,以及如何到达那里?

你有一个问题或一个想法,但诚实的状态是你不知道如何处理它。不是“三种方法中选哪个” —— 你还无法看清终点,以至于无法提出三种方法。此集合中的所有其他技能都假设目标已存在。而这个技能就是去寻找目标。

它的工作是勘察地形,然后选择路线 —— 不是冲向目的地,也不是开始构建第一个看起来可构建的东西。

这不是什么 —— 以便你正确调用:

  • 不是 grill-me —— 那是针对你已有的计划进行采访,深度优先地走一条决策树。此技能在计划存在之前运行,并特意进行广度优先。当 scout 结束时,grill-me 是一个合理的下一步。
  • 不是 explain —— 那是映射已存在的代码。此技能映射尚不存在的工作。
  • 不是 root-cause —— 那是针对已知症状的损坏事物。如果某物失败,请先使用那个;如果修复不明显,再之后用 scout 来应对响应。
  • 不是 validate-plan / ship-check —— 那些是评判一个计划和差异。Scout 在两者之前运行,并产生它们所要评判的内容。

克制之门 —— 请先阅读。 失败的模式是编造一段旅程。如果初始阶段显示你已经可以陈述目标和到达它的步骤,请说出来并停止:“这不需要 scouting —— 这是计划,去做吧。”大多数问题都是这样。在清晰的路径上搞仪式纯粹是成本。同样,如果你自己使用了这个技能而非用户输入 /scout,请在开始前确认 —— 一个未经请求的20个问题面试是一个糟糕的惊喜。

阶段

1. 命名目标 —— 在任何其他问题之前

询问完成是什么样子,并将其归纳为一两句话。它可能是一个锁定的决策、一个要移交的规格说明、一个就地完成的迁移、一个端到端工作的功能。不同的目标产生完全不同的路线,所以这一点首先要确定,并且永远不要假设。

目标固定了范围 —— 下面的每个问题都与此目标对比衡量。如果用户还不能命名它,那就是首先要解决的问题,在命名之前什么都不会开始。

2. 展开 —— 广度优先,并抵制回答

扫描整个空间在“这里”和“目标”之间,并收集开放性问题。暂时不要解决任何一个。立即回答第一个问题的冲动是这个阶段旨在克服的:你注意到的第一个问题很少是决定形状的那个,过早回答它意味着非常仔细地规划错误的事情。

走宽,不深入。目标是找出你不知道存在的问题。

事实你去查;决策你去问。 如果某物是可以查证的 —— schema、调用者、真实数据、库的文档、代码今天实际做了什么 —— 去查它,不要浪费一个问题。只有真正的决策才交给用户。

3. 分类到三个桶中

桶测试你做什么
锐利你现在就能精确地陈述问题处理它(阶段 4)
模糊你感觉到有问题存在但还无法表述它写一行松散的描述,然后搁置
范围外它位于目标之后写下来;它不再回来

锐利/模糊的测试是你是否能陈述它,而不是你是否能回答它。 一个难以回答或答案未知的问题,如果你能精确地表述它,仍然是锐利的 —— 那些通常是最重要的问题。

范围外使用一个不同的测试 —— 范围,而非锐利度。 某物可以非常锐利但仍然在范围外,因为它位于目标之后。明确排除它并说明原因;只有当目标本身变动时它才会回来,那将是一次全新的 scout。

然后按最能解锁什么的顺序排列锐利问题 —— 哪个答案能消除最多其他问题就先处理哪个。

4. 逐一解决它们

一次问一个问题然后等待。每个问题都给出你推荐的答案 —— 但这是一个推荐,决策权在用户。永远不要替他们做决策,也永远不要批量提问;五个问题的一堵墙令人困惑,只会得到一个敷衍的回复。

每次回答后,更新桶:

  • 它是否使模糊变锐利,成为一个真正的、可陈述的问题?提升它。
  • 它是否消除了不再重要的其他问题?删除它们。
  • 它是否移动了目标?大声说出来,并针对新目标重新检查其他桶 —— 一切之前都是针对旧标线衡量的。

不要为了看起来高产而将模糊预先切成假问题。模糊是一个路标,而不是待办事项清单。

5. 当路线清晰时停止

完成意味着:没有剩余的锐利问题,并且剩下的模糊部分确实可以推迟或属于范围外。以目标、达到目标所做出的决策以及具体的下一步行动来结束。

然后移交 —— 不要构建。 Scout 生成路线,不生成可交付物。进入计划模式(或如果计划由此产生则使用 /validate-plan),然后实现。如果你发现在 scout 内部编写生产代码,你已经过度使用了这个技能。

唯一的例外是一个一次性原型 —— 当一个问题确实无法在纸面上解决时(“这个状态模型感觉对吗”,“这应该是什么样子”),构建一个能回答它的最小粗糙东西,看看它,保留答案并丢弃代码。

跨会话 —— 仅在确实需要时

默认为单会话,无工件。大多数 scout 都合适,为二十分钟前结束的对话编写的文件只是垃圾。

当 —— 且仅当 —— 以下之一为真时,升级到 /handover-save:

  • 会话变得足够长,你会失去线索,
  • 用户想停下来以后再继续,
  • 某个问题被会话外的某事阻塞(其他人的答案、访问权限、先要收集的数据)。

移交文档包含目标和三个桶。使用 /handover-resume 恢复,该命令在继续之前重新同步漂移。跨会话在这里是一个逃生舱,而不是设计初衷。

输出格式

当结果有实质性变化时显示地图 —— 在目标命名后、展开后,以及每当答案重新排列桶时。不是每一步。

## 侦察:<想法,一行>

**目标:** <完成的样子 —— 下面的一切都以此为衡量标准>

**已决定**
- <问题> → <答案>

**未解决 —— 锐利**
1. <精确陈述的问题>   ← 正在处理这个
2. <...>

**仍然模糊**
- <松散的概要描述> — 一旦 <X> 解决就会变清晰

**范围外**
- <被排除的内容> — <为什么它在目标之外>

结束语:目标、按顺序的决策以及唯一的下一步行动。

护栏

  • 广度优先于深度。 在看到整个空间之前回答第一个问题是这个技能要防止的失败。
  • 去查,不要去问。 一个你可以通过 grep 回答的问题浪费了用户的时间和耐心。
  • 一次一个问题,然后等待。 每次都推荐一个答案;永远不要替他们决定。
  • 锐利 ≠ 可回答性。 模糊测试是“我能陈述它吗”,不是“我能回答它吗”。
  • 模糊不是积压。 保持松散。预先将它切成工单会发明工作,而下一个答案可能会删除这些工作。
  • 范围外是一个范围判断,不是一个步骤。 它进入自己的桶,永远不会进入决策列表。
  • 目标可以移动 —— 当它发生时宣布它。 静默地重新瞄准会使之前所做的所有判断失效。
  • 不要构建。 输出决策,而不是交付物。一次性原型是唯一的例外。
  • 默认无文件。 只有当工作确实超出会话时才使用 /handover-save。
  • 克制之门。 “这里没有模糊 —— 你已经知道怎么做”是一个真实且有价值的结果。永远不要为了证明运行技能的合理性而编造开放性问题。

目标优先框架、广度优先展开、陈述它 vs. 回答它的模糊测试,以及范围 vs. 锐利度的划分改编自 Matt Pocock 的 wayfinder(github.com/mattpocock/skills)。其 issue 跟踪器地图、子工单机制以及每个会话一个工单的规则被有意省略 —— 此集合通过 /handover-save 跨会话持久化。

相关技能