# Explore

> 把含糊需求收敛成 cooking 目标。仅用户显式调用 explore，或由 rush 编排触发时使用。

- Skill: `cabinet-fe/explore` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add cabinet-fe/explore`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cabinet-fe/explore/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cabinet-fe (https://skillmd.com/u/cabinet-fe)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cabinet-fe/explore

---


# explore

需求已经明确时不要用本技能，让用户显式调用 `to-spec`。也可改一个尚未归档单位的需求。不写 spec、不改代码。禁止啰嗦和故作高深。

## 前置检查

本对话之前已运行过且 PASS，或任务书写明「前置检查已通过，项目类别：X」：跳过本节，沿用该类别。否则运行 `node .agents/scripts/precheck.mjs`：FAIL 则停止，提示用户执行 `setup`，不要代跑；PASS 输出带项目类别。之后按根 AGENTS.md 按需读 docs。

## 统一工具定义

- `交互式提问`：Agent 内置的向用户提问并给出选项的工具，各 Agent 命名不同（如 `AskUserQuestion`、`AskQuestion`）。本技能所有向用户的提问都用它。

## 单位

一次只做一个 `cooking/<feature>/`。其它单位未完成也可以新开。用户一次说了多件不相关的事：问清本次是哪一件。

**新开或扩范围**：先只读其它未归档单位的 `goal.md` 做冲突检查（没有 goal 则只看 `spec.md` 标题）。冲突未解决不新建。

**改已有单位**（该单位已有 `已确认` 的 `goal.md`，或已有 `spec.md` / `tasks/`）：立刻把 `goal.md` 的确认改为 `未确认`（没有 `goal.md` 则按模板新建）；问用户是补充、改写还是取消。取消：`goal.md` 恢复到介入前的状态（原本没有就删掉），下游不动。确认新目标后：有 `tasks/` 则把 `node .agents/scripts/cooking.mjs status <feature>` 的输出抄进对话纪要，删除该单位的 `spec.md`、`tasks/`、`reviews/`，不回滚代码。其它 cooking 单位一律不动。

## 决策树

核心是钉死全部**有歧义**的点、跟用户同步心智：凡是「不问就可能做错」的歧义都要问到。开局先把当前能想到的歧义逐条写进 `goal.md` 的「未决问题」（用户已答或仓库事实可查的不算）。对象、目标、边界、约束、冲突只是常见自查角度，不是固定轮次，也不限于此：简单需求可能一轮就够，复杂需求轮次不设上限。不要把后续轮次的具体问题预先写进 `goal.md`。

每一轮：

- 从**未决歧义**里挑**最阻塞**的问；不要为凑数而问；一轮最多 5 题。
- 使用 `交互式提问` 工具按 [question-template.md](references/question-template.md) 进行提问，**不要**夹带下一轮预告，**不要**把未决清单当问卷一次倒给用户。
- 用户答完才能决定下一轮的具体问题；讨论中新冒出的歧义随时补进「未决问题」。
- 查得到的事实派子代理，不问用户。子代理未返回时：只挡住依赖该事实的问题，本轮其余照问。

范围边界（包含 / 不包含）尽早钉死，禁止「范围以后再说」。

不要问拆任务、改哪些文件、验收条文案。

## 退出

「未决问题」清零才停：没有默许的假设。把「需求目标 + 范围」交给用户确认后，才写 `确认：已确认`。未确认前每轮按 [goal-template.md](references/goal-template.md) 回写，不得增删标题。对话纪要只写已钉死结论，禁止复述问答、禁止复制决策树。

写下 `已确认` 后结束语只说一件事：建议用户新开会话再 `to-spec <feature>` 或 `rush <feature>`。多轮问答已占用本对话上下文，不在这里接着写 spec 或派下游。

