---
description: 探索模式 - 优先查阅知识库，回答用户问题，分析问题和方向
argument-hint: <探索主题>
---

> Pi 包 `@suwenguang/pi-kb`：运行时包根为环境变量 `PI_KB_ROOT`（由 `extensions/kb-root.ts` 注入）。
> 工种子 Agent 通过 **pi-subagents** 派发（已 bundled）；agent 定义见本包 `agents/`。
> 脚本调用示例：`node "$PI_KB_ROOT/scripts/<name>.mjs"`。

## 用户输入

${@:-（未附带参数；结合当前对话上下文执行，缺信息时向用户澄清。）}

---
进入探索模式。优先查阅知识库回答问题，不足时深入代码分析。

**输入**: 用户想探索的问题或方向。

## Bootstrap 门禁（硬阻断）

本命令要求业务仓已完成 KB 初始化（`/kb-init` / `kb-bootstrap`）。开始前**必须**先跑机器门禁；失败则**立即停止**，禁止继续（含禁止用 `mkdir -p knowledge/...` 绕过建目录）。执行：

`node "${PI_KB_ROOT}/scripts/kb-bootstrap-check.mjs" --target "$(pwd)"`

未通过时按脚本输出指引执行 `/kb-init`，或：

`node "${PI_KB_ROOT}/scripts/kb-bootstrap.mjs" --target "$(pwd)"`

## CodeGraph 门禁（硬阻断）

本命令依赖 CodeGraph。开始前**必须**先跑机器门禁；失败则停止并输出脚本指引，禁止继续。执行：

`node "${PI_KB_ROOT}/scripts/kb-codegraph-check.mjs" --target "$(pwd)"`

门禁通过后，再确认 MCP 工具 `codegraph_*`（至少能调用 `codegraph_explore`（或 `codegraph_status`））可用。若工具不可用：阻断，并指引用户从插件示例复制项目级 MCP 配置：

按 [kb-codegraph.md](../skills/kb-workflow/references/kb-codegraph.md) §一，从 `${PI_KB_ROOT}/bootstrap/examples/mcp/` **只写当前宿主**对应文件（Claude/其他 → 根 `.mcp.json`；Cursor → `.cursor/mcp.json`；禁止无脑双写），配置后 Reload / 重启会话，再重试本命令。

## 子 Agent 编排（必遵）

- 当需深入代码时，主 Agent 或子 Agent 必须先用 CodeGraph 获取代码上下文；涉及**多个模块/仓库**时，**并行**派发 `Task`（`generalPurpose` 只读模式），每任务只读一个域并返回结构化摘要。
- 子 Agent prompt 必须要求：先调用 `codegraph_explore`（源码 + 调用路径 + blast radius）；CodeGraph 不足时才读取具体文件。

## 执行步骤

### 1. 读取知识库索引

```bash
cat knowledge/index.md
```

### 2. 根据问题定位知识文件

根据用户问题，读取索引中引用的实际知识文件：

| 问题类型 | 优先查阅 |
|---------|---------|
| "系统能做什么？" | `knowledge/知识地图.md` |
| "某个业务怎么运转？" | `knowledge/业务域/<中文领域>/01-概览.md` 与相关子模块「四、客户端流程」 |
| "架构是什么样的？" | 对应业务域 `01-概览.md` 架构/依赖段，跨域能力查 `knowledge/工程平台/**` |
| "这个接口怎么用？" | 对应子模块文件「五、接口」段 |
| "数据表结构是什么？" | 对应子模块文件「六、数据」段 |
| "模块之间怎么交互？" | `01-概览.md` 架构/依赖 + 相关子模块「三、服务端规则」，必要时补读工程平台 |

### 3. 回答或深入探索

- **知识库已覆盖**：直接基于知识文件回答
- **知识库不够**：先使用 CodeGraph 核对实现；跨模块时再使用 **`Task`（`generalPurpose` 只读模式）** 并行深入代码探索（按目录/服务拆分），补充信息
- **知识库过时**：提示用户运行 `/kb-sync` 同步

### 3.1 CodeGraph 使用口径

- 功能/架构/问题定位：使用 `codegraph_explore(<问题或符号袋>)`。
- 影响面和调用链：使用 `codegraph_impact`、`codegraph_callers` 或 `codegraph_callees`。
- 输出时列出 CodeGraph 发现的关键入口、调用链或不确定点，避免只给主观判断。

### 4. 探索姿态

- **好奇不预设**：追问自然产生的问题
- **可视化**：善用 ASCII 图表理清思路
- **产品+开发双视角**：同时从用户和开发者角度分析
- **不实现代码**：这是思考时间，不是编码时间

### 5. 适时引导

当探索有了清晰方向时，可以建议：
- "可以开始提案了，运行 `/kb-propose <中文名称>`"
- "知识库需要更新，运行 `/kb-sync`"
- "想继续深入某个方向？"
