How this skill is triggered — by the user, by Claude, or both
Slash command
/specpowers:exploringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
将不清晰的想法转化为双方都认可、可执行、可交接到 `proposing` 的理解。探索不是简单追问,也不是提前设计;它是**有边界地发散,再有证据地收敛**。
将不清晰的想法转化为双方都认可、可执行、可交接到 proposing 的理解。探索不是简单追问,也不是提前设计;它是有边界地发散,再有证据地收敛。
探索应尽量短,但不能为了短而过早压缩候选方向。只收集足以避免错误假设、错误范围和错误方案的信息;当问题空间较大时,先把候选方向聚类,再收敛到最小且有价值的第一版。
开始时只说明一次:“我会使用 exploring skill,先确认我们要构建什么。”
在 exploring 阶段,唯一可见输出是对话内容,包括问题、摘要、假设、候选方向、取舍、证据、建议和对齐检查。
代理不得:
proposal.md、规格说明、设计文档、任务清单、工单或实现文件;只有在用户确认探索方向后,才能从 exploring 进入 proposing。
proposing 前解决或明确排除在第一版之外。当出现以下任一情况时,使用 exploring:
不要把 exploring 用在已经明确、具体且边界清晰的实现请求上。此时应直接交给合适的后续 skill。
如果请求很小但仍存在会影响行为的未知信息,使用一次轻量探索即可,不要启动完整探索流程。
先判断本次需要哪种探索强度:
| 探索强度 | 信号 | 行动 |
|---|---|---|
| 轻量探索 | 单一小改动,只有 1 个关键未知 | 问 1 个聚焦问题,或给出 1 个假设让用户确认 |
| 标准探索 | 有明确目标,但交付形态、范围或成功标准不清 | 做范围分类、候选方案和对齐检查 |
| 深度探索 | 多路径、多角色、多子系统,或架构/产品方向不明 | 先发散候选地图,再收敛第一版切片 |
| 调研辅助探索 | 方案依赖代码库事实、集成边界或现有模式 | 启动有边界调研,调研结果只服务探索决策 |
specs/、specs/specs/、docs/、adr/、.codex/、AGENTS.md 等目录。先判断请求属于以下哪一类:
| 范围 | 信号 | 行动 |
|---|---|---|
| 单一功能 | 一个用户目标、一个主流程、边界清楚 | 继续正常探索 |
| 单一工作流 | 多个步骤,但服务同一端到端目标 | 澄清触发条件、输入输出、成功/失败路径 |
| 复合功能 | 一个目标,但包含多个相互依赖的部分 | 澄清依赖关系与最小第一版切片 |
| 多个子系统 | 涉及认证、计费、分析、聊天、存储、后台、集成等独立领域 | 停止细节追问,先拆分子项目 |
| 平台/产品级 | 宽泛产品愿景,涉及多个角色或长期演进 | 定义阶段,选择第一个子项目 |
| 研究/不确定性驱动 | 目标依赖外部约束、技术可行性或未知风险 | 先界定决策点,再做有限调研 |
如果需要拆分,应直接说明:
“这看起来包含多个独立功能。我们先拆成子项目,再细化需求。”
然后帮助用户明确:
当工作流支持 specs/changes/<name>/ 结构时,每个子项目都应有独立的变更周期。
在追问前,先列出当前可用信息和关键假设:
proposing 前必须关闭的问题;proposing 或实现阶段处理的问题。不要把所有未知都拿来问用户。只问当前最能降低错误方向风险的问题。
每条消息只推动一个阻塞决策问题。
好的探索问题应具体、面向决策:
“这次更优先速度交付、长期可扩展性,还是最低运维风险?”
避免泛泛提问:
“你想要什么?再多说一点。”
问题应围绕:
候选项数量不能固定为 2–5。根据问题空间使用候选预算:
| 候选预算 | 适用场景 | 输出方式 |
|---|---|---|
| 1–3 | 小范围、方向明显、只需确认取舍 | 直接给推荐与替代 |
| 3–5 | 标准产品/实现选择 | 给短名单和推荐 |
| 6–10 | 多路径、多用户、多技术路线 | 先分组选项,再推荐第一版 |
| 10+ 原始候选 | 产品/平台级、策略级、架构级或用户明确要求广泛探索 | 先生成候选地图,聚类为 4–8 个候选族,再给短名单、停车场和排除项 |
候选探索必须遵守:
当候选方向超过 3 个、用户需要比较路径,或在 Codex 中需要可切换地查看多个探索轴时,使用“选项卡”格式。选项卡是探索对话的呈现方式,不是设计文档。
推荐格式:
### 选项卡 A|推荐:<方向名>
- 适合:<什么时候选它>
- 结果:<用户可见结果>
- 范围:<第一版覆盖什么>
- 取舍:<收益与代价>
- 风险:<主要风险或未知>
- 复杂度:Low / Medium / High
- 下一步需要确认:<一个最关键问题>
### 选项卡 B|保守:<方向名>
...
### 选项卡 C|激进:<方向名>
...
### Parking Lot|暂不推荐但保留
- <方向>:<为什么暂不进入短名单>
选项卡命名建议:
推荐 / 最小切片保守 / 复用现有扩展 / 中期演进激进 / 平台化No-build / 流程方案Avoid / 暂不建议Parking Lot / 后续可能在用户只需要选一个方向时,最后只问一个问题:
“我建议选 A 作为第一版。你要按 A 进入 proposing,还是先改成 B/C 的方向?”
实现调研只允许用于提高探索质量,不改变当前可见阶段。
可以调研的情况:
应跳过调研的情况:
调研顺序:
如需委托子代理做有限调研,使用填好的 ./implementation-researcher-prompt.md 模板。主代理仍负责综合、推荐和与用户对齐。
使用 Agent 工具和 general-purpose agent。旧环境中 Task 可能作为兼容别名存在。
在 Codex 中,优先把有边界、只读、互相独立的探索轴拆给子代理,并让每个子代理形成一个可区分的 agent thread / tab。
使用原则:
spawn_agent(...)。Existing patterns、Integration risk、API compatibility、Migration cost、Testing surface。Tab label: <短名称>,便于 Codex App/CLI 中区分线程。/agent 检查或切换 agent threads;主代理最终仍要给一个合并结论。Codex 子代理调用示例(按当前环境可用工具调整参数):
spawn_agent(
agent_type="explorer",
message="""
Tab label: Existing Patterns
Use ./implementation-researcher-prompt.md.
Research goal: Determine whether this idea should reuse, extend, compose, build, or avoid existing implementation paths.
Current context: <填入用户目标、项目约束、相关文件/模块、已知线索>
Search scope: 仅代码库 + 内部文档
Output depth: 聚焦对比
Exploration width: broad-with-clustering
Decision deadline: Enough evidence to support exploration, not implementation.
Return only the required researcher output. Do not edit files.
"""
)
如果 Codex 当前环境没有子代理工具,则主代理在本线程内执行同样的只读探索,并用选项卡格式呈现结果。
当上下文足够时,输出推荐方向,而不是只列问题。
收敛输出应包含:
proposing;proposing 前唯一的阻塞问题,如果有。推荐方向应优先满足:
在请求进入下一阶段前,必须给出用户可审核的对齐检查点。
离开 exploring 前,必须包含:
proposing,以及主要信心来源。任何会影响用户可见行为、范围边界、权限、失败结果或成功标准的开放问题,都会阻塞阶段转换。此时应提出一个聚焦的澄清问题,或明确说明阻塞点。
在阻塞问题解决之前,不得创建 proposal.md。除非用户明确将相关行为排除在第一版范围之外。
当环境支持子代理时,在 exploring → proposing 交接前,使用 ../confidence-loop/SKILL.md 中的 Workflow Handoff Confidence Loop,并结合 ../confidence-loop/workflow-handoff-reviewer-prompt.md 进行审查。
审查包必须包含:
如果仍存在 Critical 或 Important 发现、NEEDS_USER_DECISION、未解决的信心缺口,不得进入 proposing。
准备好后,在对话中总结:
proposing 阶段安全解决的开放问题;然后询问:
“我已经清楚我们要构建什么。接下来可以创建 proposal,是否继续?”
用户确认后,调用 proposing,且不得调用实现类 skill。
只有以下条件全部满足,探索才算完成:
proposing。如果出现以下想法,立即停止并回到探索:
| 想法 | 正确动作 |
|---|---|
| “我已经知道用户想要什么。” | 询问或验证缺失假设。 |
| “我边实现边探索。” | 不实现;先澄清。 |
| “范围应该没问题。” | 先分类范围,再问细节。 |
| “这个太简单,不需要探索。” | 若仍有关键未知,做轻量探索;若已经明确,交给后续 skill。 |
| “2–3 个方案够了。” | 先判断问题空间;必要时做候选地图和聚类。 |
| “用户之后会纠正我。” | 现在就把假设显式说出来。 |
| “再问一个问题会烦。” | 只问最高价值的下一个问题,并用选项卡降低负担。 |
| “调研一下挺有意思。” | 只有调研会改变决策时才做。 |
| “子代理可以替我决定。” | 子代理只给证据;主代理综合并对齐用户。 |
| 借口 | 现实 |
|---|---|
| “用户说直接做。” | 这说明紧急程度,不代表需求完整。 |
| “细节可以边做边定。” | 细节就是需求;猜测会制造返工。 |
| “问问题浪费时间。” | 做错方向更浪费时间。 |
| “这和另一个项目很像。” | 相似性有参考价值,但差异决定工作内容。 |
| “候选太多会让用户累。” | 原始候选可以聚类;过早压缩会丢方向。 |
| “Codex 子代理会自己整理好。” | 子代理输出必须由主代理合并成探索对话和对齐检查点。 |
我会使用 exploring skill,先确认我们要构建什么。
我先按这个假设推进:<当前假设>。
唯一会影响方向的问题是:<聚焦问题>?
选项:
- A:<选项>
- B:<选项>
- C:<选项>
- 其他:<让用户补充>
我会使用 exploring skill,先确认我们要构建什么。
当前我看到 <N> 个候选方向,可以先按下面几个选项卡收敛:
### 选项卡 A|推荐:<方向>
- 适合:...
- 第一版结果:...
- 取舍:...
- 风险:...
- 复杂度:...
### 选项卡 B|<方向>
...
### Parking Lot
- ...
我建议先选 A。唯一需要你确认的是:<一个阻塞问题>?
## 对齐检查点
- 问题陈述:...
- 目标用户:...
- 主流程:...
- 输入与输出:...
- 范围内行为:...
- 范围外行为:...
- 候选方向:...
- 推荐方向:...
- 约束:...
- 失败模式:...
- 开放问题:
- blocking:none / ...
- non-blocking:...
- 交接信心:High / Medium / Low,因为 ...
我已经清楚我们要构建什么。接下来可以创建 proposal,是否继续?
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub nsobjects/specpowers --plugin specpowers