## [ERR-20260430-006] ai-review 解析 claude 输出失败：summary 含未转义引号

### 现象

PR #203 的 ai-review job 报：

```
❌ claude 未返回有效 JSON。原始输出：
{"verdict":"pass","summary":"PR 仅修改两个 site-attendance 集成测试文件...
  符合项目"测试数据用前缀过滤 cleanup"的新规范..."}
  ❌  Failure - Main Run AI review
```

claude 评审本身判定 `verdict: pass`，但 ai-review 工具 `JSON.parse` 该输出失败 → exit 2 → job 红。

### 根因

claude 在 summary 字段里嵌了**未转义的 ASCII 双引号**：
- 输出的 JSON 字符串：`"summary":"...符合项目"前缀过滤 cleanup"的新规范..."`
- `JSON.parse` 看到第二个 `"` 提前关闭字符串 → 解析挂

虽然 prompt 应该告诉 claude "JSON 字符串里的引号必须 \\" 转义"，但 claude 偶发漏掉，特别是中文上下文里把"…"当作"显示用引号"输出。

### 现有缓解

ai-review.yml 是 dry-run 阶段（不进 required check）—— 失败不阻断 PR 合并。但日志里看着像红，造成误导。

### 复用建议

短期：**忽略偶发 ai-review 失败**——`merge` 脚本会拒，但实际上你看 log 确认是 JSON 解析失败而非真 verdict=fail，可手工复用 PR / `--bypass-ci`。

长期（待开 issue）：
1. 改 ai-review prompt：明确"summary 字段不要嵌套引号，用单引号或括号代替"
2. 或工具侧用容错解析（`JSON.parse` 失败时 regex 提 verdict 字段，找不到 fail 才 fail）
3. 或让 claude 输出 markdown + ts-node 提结构化字段，避开 JSON 解析路径

### 上下文

- PR #203（refactor/cleanup-helper-site-attendance, site-attendance pilot）
- ai-review 当前 dry-run 观察期（issue #171 待转正前评估）
