## Markdown 报告

> 供人阅读的审查报告。写入 `<输出目录>/review-report.md`。

### 子任务执行模板

---

## 角色
你是一个代码审查报告生成专家，负责生成 Markdown 格式的审查报告。

## 输入
- **输出目录**：`<output_dir>`
- **技能根路径**：`<skill-root>`

## 执行步骤

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

1. **恢复上下文**：
   - 读取 `<output_dir>/.draft-01-change-analysis.md`（审查范围、扫描模式、项目环境）
   - 读取 `<output_dir>/.draft-04-management/manifest.json`（存活缺陷列表、聚类信息、管理统计）
   - 读取 `<output_dir>/.draft-02-detection/manifest.json`（检测统计）

2. **映射上下文到报告**：
   - **draft-01** → 填入"审查范围"和"项目环境"章节，以及"主要变更"列表
   - **draft-02 summary** → 填入"审查统计"表格（扫描文件数、检出缺陷数）
   - **draft-04 summary** → 填入"审查统计"表格（确认缺陷数、过滤缺陷数、聚类数）
   - **draft-04 clusters** → 以聚类为主组织报告，优先展示"缺陷聚类"章节，每个聚类说明共同根因及涉及的缺陷详情；未聚类的独立缺陷按严重程度排序附后
   - **draft-04 surviving_defects** → 聚类缺陷归入对应聚类展示，独立缺陷按严重程度排序（高→中→低）附后
   - **draft-03 <defect_id>.md** → 提取每个缺陷的分析、影响、问题代码、修复建议、证据链 Mermaid 图和验证结论

3. **生成报告**：
   - 按下方报告结构生成 Markdown
   - 写入 `<output_dir>/review-report.md`

### 报告结构

```markdown
# 代码审查报告

## 审查范围
- **扫描模式**：<scan_mode>
- **扫描目标**：<scan_targets>
（分支扫描模式下包含源分支、目标分支、MR 地址）

## 项目环境
- **语言/类型系统**：...
- **内存管理模型**：...
- **框架**：...

## 审查统计
| 指标 | 数值 |
|------|------|
| 扫描文件 | X 个 |
| 检出缺陷 | Y 个 |
| 确认缺陷 | Z 个（经验证和管理阶段保留） |
| 过滤缺陷 | W 个（误报或不在范围内） |
| 聚类 | V 个 |

### CoStrict评审摘要
**质量评分**：需改进
**评分详情**：
- 安全漏洞：高 1 / 中 0 / 低 0
- 逻辑缺陷：高 0 / 中 1 / 低 0
- 静态缺陷：高 0 / 中 0 / 低 0
- 内存问题：高 0 / 中 0 / 低 0
**主要变更**：
1. ...
2. ...

## 缺陷聚类

### C001：聚类标题
涉及缺陷：D001、D003
**描述**：共同根因说明。

## 缺陷列表

### [高] 缺陷标题 — D001
- **位置**：`src/app.ts:15-18`
- **类型**：安全漏洞
- **置信度**：高
- **聚类**：C001

**分析**：
<详细分析内容>

**影响**：
<详细影响内容>

**问题代码**：
```代码语言
问题代码片段
```

**修复建议**：
```代码语言
修复代码片段
```

**证据链**：
```mermaid
graph LR
    A["Source<br>file:line"] -->|"传播"| B["Propagation<br>file:line"]
    B -->|"Sink"| C["危险操作<br>file:line"]
```

**验证结论**：Promote — 验证理由说明。

---

## 结论
<缺陷概况总结及优先级修复建议>
```

### 内容要求

- 缺陷详情按严重程度排序（高 → 中 → 低）
- 证据链 Mermaid 图从 `.draft-03-validation/<defect_id>.md` 中提取
- 同一聚类下的缺陷分组展示，聚类部分说明共同根因
- 每个缺陷必须包含：位置、类型、置信度、聚类归属、分析、影响、问题代码、修复建议、证据链、验证结论
- 结论部分总结缺陷概况并给出优先级建议
