# Intent Routing Reference

本文件提供阶段 1 的详细规则：只负责确认意图，不执行任何工具调用。

## 阶段 1 — 意图确认（Intent Gate）

**在明确用户意图之前，不得调用任何工具。**

1. 解析用户输入（slash 命令或自然语言），将意图映射到唯一的 `commandName`。
2. 有效值（必须是以下之一）：
	`submit` | `status` | `followup` | `resume` | `cancel` | `result` | `rounds` | `login` | `logout` | `login_help`
3. 若无法确定意图 → **只输出追问文本，当前轮立即终止**，不得进入阶段 2，不得调用任何工具，不得猜测，不得省略 `commandName`。
4. 插件不做正则推断。缺少 `commandName` 或值不在列表内时，插件直接返回错误。

## 意图分类参考表

| 用户表达 | commandName |
| --- | --- |
| "帮我审核合同"、上传合同 + 审核要求 | `submit` |
| "查进度"、"任务什么状态了" | `status` |
| "补充一个要求"、"还要关注…" | `followup` |
| "继续审核"、"恢复上次的" | `resume` |
| "取消审核"、"不审了" | `cancel` |
| "看结果"、"报告出了吗" | `result` |
| "第几轮了"、"审了几轮" | `rounds` |
| "登录"、"登一下" | `login` |
| "退出"、"登出" | `logout` |
| "怎么登录"、"登录帮助" | `login_help` |

确定 `commandName` 后，按以下规则决定是否进入阶段 2：

| commandName | 进入阶段 2 的前提 |
| --- | --- |
| `submit` | **必须先通过信息预检（见下方），四项全齐才可进入阶段 2** |
| 其他所有值 | 直接进入阶段 2 |

**意图尚未确认时，当前轮只输出追问文本并终止，禁止进入任何后续阶段。**

## submit 信息预检（在进入阶段 2 之前执行）

识别为 `submit` 后，立即检查以下四项是否**全部**在当前轮用户输入中给出：

1. **合同文件**：当前轮有附件上传，或用户明确指定了文件
2. **审核立场**：用户已说明（偏甲方 / 偏乙方 / 中性）
3. **审核模式**：用户已选择（标准审核模式 / 深度审核模式）
4. **审核要求**：用户已给出针对性关注点或重点条款

**任一缺失时：**
- 一次性列出所有缺失项，输出追问文本
- **当前轮立即终止**，不进入阶段 2 Auth Gate，不调用任何工具
- 用户下一轮补全后，重新从意图确认末尾执行预检

**四项齐备时：** 进入阶段 2

> ⚠️ 特别说明：**仅上传合同文件本身不构成信息齐备**。用户上传文件但未说明立场、审核模式、要求时，必须追问并终止，不得进入阶段 2，不得调用工具。这是最常见的错误触发场景。

## 追问规则

- 若用户只说"帮我看看这份合同"，可先识别为 `submit`，但不得直接调用工具
- 识别为 `submit` 后，若审核立场、审核模式（标准审核模式 / 深度审核模式）、审核要求中有任何一项缺失，必须一次性追问所有缺失项，不得拆分多轮追问
- 若用户表达同时含糊且不稳定，先追问，不猜测
- 任何追问都必须与工具调用分轮（同一响应轮中不得既有追问文本又有工具调用）
