# 异常调试协议

规范路径：`comet-classic/reference/debug-gate.md`

本协议由 build、hotfix、tweak 等会直接修改代码的 comet 子 skill 共享。当运行程序、测试、构建或手动验证时出现崩溃、异常行为、测试失败或构建失败，必须进入异常调试协议。

## 核心规则

- 立即使用 Skill 工具加载 Superpowers `systematic-debugging` 技能
- 在完成根因调查前，不得提出或实施源码修复

## 四阶段流程

1. 先复现并定位根因，读取完整错误、检查近期变更、追踪数据流
2. 若根因指向源码 bug，先补充能复现该崩溃/异常的最小失败测试，再修改源码
3. 修复后运行该失败测试、相关测试和项目构建/验证命令，确认全部通过
4. 将测试、源码修复和 tasks.md 勾选保留在当前 change 内；不得通过另起一个“写测试用例”的 change 来替代当前 change 的验证闭环

## 多失败并发调查

进入四阶段流程前，先做一次失败独立性评估，决定串行还是并发调查：

- **不并发（维持现有串行 `systematic-debugging`）**：失败 ≤ 2 个；失败之间相关（改一个可能修好其他）；共享状态；会改动同一批文件；尚未识别出失败是否独立
- **并发（加载 Superpowers `dispatching-parallel-agents` 技能）**：≥ 3 个失败，且来自不同问题域（不同测试文件不同根因、不同子系统独立损坏），互不依赖、互不干扰

当满足并发条件时：

1. 立即使用 Skill 工具加载 Superpowers `dispatching-parallel-agents` 技能
2. 按问题域为每个独立失败派发一个后台调查 agent，所有派发放在同一次回复里以并发执行；每个 agent 的 prompt 必须自包含（具体失败、错误信息、允许的调查范围、不得改动其他问题域的代码）
3. 所有 agent 都受本协议“根因未明前不得动源码”的约束；它们只负责定位根因并返回调查结论，**不直接提交修复**
4. 调查全部返回后，由主会话串行整合结论、串行执行修复，修复仍走当前 `review_mode` 的验证与评审闭环

> 并发只用于**调查**阶段。修复始终串行，避免多个 agent 同时改同一批文件冲突——这与 `subagent-driven-development` “禁止并行派发多个实现 agent”的红线一致。
