<!-- @when: 遇到异常，需按结构化流程排查 -->
<!-- @chain: before=audit-checklist.md, after=p0-trigger-conditions.md -->

### 8.2 异常诊断六步法（分析→计划→审计→备份→执行→验证）

> 非代码修复（仅改配置/注册表/环境变量）可跳过 ④⑤ 直接 ⑥，但必须记录跳过原因。

```
        ① 分析
        采集信息 → 定位根因 → 确定问题性质
         ▲                    │  
         │   审计退回(🔴)     │  ← 验证退回方向
         │   计划退回(🟡)     │    (⑥ 失败→回 ①)
         │                    │  
       ┌─┼─────────────────┐
       │ ② 计划             │
       │ 设计方案→多方案对比→验证标准 │
       └───────────┬────────┘
                   │ 审计退回(🟡边界/规范)
                   ▼
       ┌───────────────────┐
       │ ③ 审计             │
       │ 检查表逐项审查方案    │
       │ ├─ ✅ 通过 → 继续   │
       │ └─ ❌ 问题 → 退回①②│
       └───────────┬───────┘
                   │
       ┌───────────┴───────┐
       │ ④ 备份             │
       │ __history + WIP commit │
       └───────────┬───────┘
                   │
       ┌───────────┴───────┐
       │ ⑤ 执行             │
       │ Preview→修改→格式化→编译→commit│
       └───────────┬───────┘
                   ▼
       ┌───────────────────┐
       │ ⑥ 验证             │
       │ 按标准验证→清理→保存经验 │
       ├─ ✅ 通过 → 完成    │
       └─ ❌ 失败 → 回①分析 │
```

| 步骤 | 目标和关键检查点 |
|------|----------------|
| **① 分析** | 采集现场 → 复现确认 → 最近变更(git log) → 搜索经验库 → 分类问题 → 根因假设(2~3互斥) → 假设验证 |
| **② 计划** | 确定修复范围(最小化) → 确认 API 用法 → 多方案对比 → 验证标准 → 列出所有修改点 |
| **③ 审计** | 检查表逐项审查(方案匹配/安全/完整性/规范/影响范围) → 结论:通过/退回①/退回② |
| **④ 备份** | git status → 标记涉及文件 → delphi_file(backup) → 必要时 WIP commit |
| **⑤ 执行** | Preview diff → 按序 edits → format → 清理调试代码 → compile → commit |
| **⑥ 验证** | 功能验证 → run_verify → runtime 检查 → 边界测试 → 回归范围 → LSP → 清理 → 保存经验 |

**审计回退循环规则**：
- 🔴 安全/根因遗漏 → 退回 ①
- 🟡 边界/规范 → 退回 ②
- 同一问题连续退回 3 次 → 触发 P0 介入

**六步法输入输出**：
| 步骤 | 输入 | 输出 |
|------|------|------|
| ① | 异常信息 | 根因假设/问题分类 |
| ② | 根因假设 | 修改方案/验证标准 |
| ③ | 方案 | 审计结论(通过/退回) |
| ④ | 通过审计 | 备份确认 |
| ⑤ | 备份确认 | 编译结果/commit |
| ⑥ | 编译结果 | 验证报告/经验/复盘判定 |
