## Validation Wave 编排策略

> 本文件定义 Validation Wave 的编排流程——对抗式短路模型，逐缺陷调度验证子任务。

### 核心理念

**你的目标是推翻缺陷报告，而不是验证它。**

每个验证策略的目标是寻找推翻缺陷的理由。推翻需要代码证据，不接受推测性推翻。如果找不到推翻理由，缺陷才成立（Promote）。

### 主任务职责（Orchestrator）

#### 1. 恢复上下文

1. 读取 `<输出目录>/.draft-02-detection/manifest.json`（获取缺陷列表）
2. 按需读取 `.draft-02-detection/` 目录下的文件输出（获取缺陷详情用于填充子任务输入）
3. 创建 `<输出目录>/.draft-03-validation/` 目录
4. 写入 `<输出目录>/.draft-03-validation/manifest.json` 初始版本：
```json
{
  "version": 1,
  "stage": "validation",
  "status": "in_progress",
  "defects": [],
  "summary": {
    "total_defects": 0,
    "promoted": 0,
    "killed": 0,
    "by_confidence": {}
  }
}
```

#### 2. 逐缺陷调度

对 `manifest.json` 中每个缺陷，按顺序执行：

1. 从 Detection Manifest 的 `defects` 数组获取缺陷摘要（id, severity, type, title, file, location, source_strategy）
2. 从 `.draft-02-detection/<file>.md` 中提取该缺陷的完整信息（分析、影响、问题代码、修复代码、证据链）
3. 读取 `<skill-root>/references/validation/routing.md`，根据缺陷的主张特征匹配验证策略列表
4. 拉起 Agent 子任务，传入**子任务执行模板**（见下方）并填充以下变量：
   - `<defect_id>`：缺陷 ID（D001, D002, ...）
   - `<defect_info>`：缺陷的完整信息（标题、严重程度、类型、位置、分析、影响、问题代码）
   - `<evidence_chain>`：Detection 阶段生成的 Mermaid 证据链
   - `<validation_strategies>`：匹配的验证策略列表及加载信号说明
   - `<output_dir>`：输出目录路径
   - `<skill-root>`：技能根路径
5. 等待子任务完成
6. 从子任务输出中提取判决结果，更新 `manifest.json` 的 `defects` 数组
7. 更新 TodoWrite

#### 3. 汇总

所有缺陷验证完成后：

1. 统计 `summary`（promoted, killed, by_confidence）
2. 设置 `manifest.json` 的 `status: "completed"`

### 子任务执行模板

---

## 角色
你是一个缺陷验证专家。你的目标是推翻缺陷报告，而不是验证它。
推翻需要代码证据，不接受推测性推翻。

## 输入
- **缺陷信息**：
  - ID：`<defect_id>`
  - 标题：<defect_title>
  - 严重程度：<severity>
  - 类型：<defect_type>
  - 位置：<location>
  - 分析：<analysis>
  - 影响评估：<impact>
  - 问题代码：<issue_code>

- **Detection 证据链**：<evidence_chain>

- **匹配的验证策略**（按顺序执行）：
<validation_strategies>

## 执行步骤

**⚠️ 必须使用 TodoWrite 工具组织执行流程**

1. 按**顺序**逐个读取并执行验证策略：
   - 读取 `<skill-root>/references/validation/<strategy>.md`
   - 按策略指引寻找推翻证据
   - 如需验证代码，读取源文件相关行
   - 如需使用 LSP 工具，读取 `<skill-root>/references/tools/lsp.md`

2. **短路判定**：
   - 找到推翻证据 → 记录 Kill + 理由 + 代码证据 → **停止后续策略**
   - 未找到推翻证据 → 记录 Promote → 继续下一个策略

3. 所有策略执行完毕（或中途 Kill），按输出格式写入结果

## 输出格式

写入 `<output_dir>/.draft-03-validation/<defect_id>.md`：

```
### <缺陷标题>
- **缺陷 ID**：<id>
- **最终判决**：Kill / Promote
- **置信度**：高 / 中 / 低（仅 Promoted 缺陷）
- **执行路径**：

| 策略 | 判决 | 关键发现 |
|------|------|---------|
| context-gap | Promote | 未找到隐式引入 |
| defense-existing | Kill | 发现参数化查询防御 |

**Kill 理由**：（如 Kill）
<具体推翻证据和代码引用>

**Promote 证据总结**：（如 Promote 所有策略）
<简要总结为什么所有推翻尝试都失败>

**证据链**（在 Detection 证据链基础上追加代码级验证发现。Mermaid 图必须紧跟本标题，作为第一个 ```mermaid 代码块，下游报告生成按此约定提取）：
```mermaid
graph LR
    A["Source: req.body.username<br>app.ts:12"] -->|"用户输入"| B["Propagation: const sql = `SELECT...`<br>app.ts:15"]
    B -->|"无参数化查询"| C["Sink: db.query(sql)<br>app.ts:18"]
    C -.->|"defense-existing: 未找到防御"| D["Sink可利用"]
    style B fill:#f96,stroke:#333
```
```
