# Trigger Matrix

## 目的

本文件把 promotion gate pilot 中使用的样本标签 `A1/A2/A3/A4/C1/C2` 与设计文档中的强信号 / 弱信号 / 默认不触发场景做一一对应，供首轮评估和后续回归复用。

它服务于两件事：

1. 统一样本标注口径
2. 统一“应该触发深度交互”与“应该保持轻量”的判断口径

## 信号字典

### 强信号

- `S1`: 用户明确在多个方案、策略或长期契约之间选路
- `S2`: 用户给出的内容明显是实现路径，而非真实目标
- `S3`: 已知存在更短、更低成本或更低风险的替代路径
- `S4`: 当前路径与显式约束冲突

### 弱信号

- `W1`: 需求评分不足，目标、边界或约束缺失
- `W2`: 请求涉及跨模块或较大改动，但没有成功标准
- `W3`: 当前路径成本偏高，但还不足以直接判定为错误

### 默认不触发上下文

- `N1`: 纯 `quick_fix`
- `N2`: 纯 `consult` 且问题目标清晰、无明显分叉
- `N3`: 目标、边界、约束已清晰，且路径基本最优

## 基础决策规则

- 命中 `1` 个强信号：默认触发深度交互
- 同时命中 `2` 个弱信号：默认触发深度交互
- 命中 `N1/N2/N3`：默认不触发深度交互
- 若 `N1/N2/N3` 与强信号同时出现：
  - 只有当强信号明确指向范围、成本或风险的实质性下降时，才允许覆盖默认不触发
  - 否则保持轻量，不把轻场景拉长

## 标签映射矩阵

| 标签 | 含义 | 对应信号 | 默认动作 | 备注 |
| --- | --- | --- | --- | --- |
| `A1` | 目标仍然模糊，需要先补事实 | `W1` 为主，`W2/W3` 为辅 | 有条件触发 | `A1` 不是“只要模糊就大段挑战”。默认要求 `W1 + (W2 or W3)`，或 `W1 + S2` 才进入深度交互；若只是小范围事实缺口，可先做 1 轮轻量 clarification。 |
| `A2` | 用户给的是路径，不是目标 | `S2` 为主，`W3` 可作为辅助 | 触发 | 这是最稳定的强信号之一。若请求本质上在讨论“怎么做”，而不是“要达成什么”，应优先纠偏。 |
| `A3` | 明显存在更低成本/更低风险替代路径 | `S3` 为主，`W3` 可作为早期迹象 | 触发 | 只有在替代路径已经相对明确时才记为 `A3`。若只是“可能有更优解”但没有实质证据，先不要记入该类。 |
| `A4` | 架构、长期契约或策略分叉 | `S1` 为主，`S4` 为辅 | 触发 | 适合 runtime/infra、shared 规则、配置层、输出契约等长期影响较大的讨论。 |
| `C1` | quick-fix / 低风险直接修改 | `N1` | 不触发 | 若执行中意外暴露出 `S2/S3/S4`，应先把样本重分类，不要硬把它留在 control 里。 |
| `C2` | 纯咨询或目标路径都清晰、无需挑战 | `N2/N3` | 不触发 | 若讨论逐步演化为长期契约取舍，应改记为 `A4`；若只是解释现状，不应被强行升级为深度交互。 |

## 重分类规则

为避免 pilot 统计失真，样本允许在首轮执行后重分类，但必须记录原因：

1. `C1 -> A2/A3/A4`
   - 仅当请求表面上像 quick-fix，但实际暴露了明显路径-目标错位、低成本替代、或长期契约分叉
2. `C2 -> A4`
   - 仅当纯咨询在追问后实质变成长期架构/策略选路
3. `A1 -> C2`
   - 仅当执行后确认原请求其实目标、边界都已清晰，只是 reviewer 预判过度

## 与样本矩阵的关系

- `pilot_sample_matrix.md` 负责定义“样本池”
- 本文件负责定义“标签与信号的解释规则”
- `pilot_review_rubric.md` 负责定义“人工评审记录与聚合口径”

三者应一起使用；不要只看样本标签，不看本文件的信号映射。
