> For the complete documentation index, see [llms.txt](https://cc-code.rongyeliu.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cc-code.rongyeliu.com/skills/whole-qa/references/report-template.md).

# report-template

## 报告模板

> 被 `whole-qa` 的 ❸ 阶段引用。落盘 `.cc_code/docs/qa/<YYYY-MM-DD>-round-N.md`（温数据，完整版）； `gates.md` 只写「本轮结论 + Critical + 覆盖率」三段摘要（热数据保持精简）。

***

## 全量验收报告 — <日期> 第 N 轮

**Verdict: {PASS | FAIL | 未收敛 | 已升级}** BASE\_URL: `<url>`　清单: `docs/qa/<日期>-inventory.md`

### 一、覆盖率（分母取 inventory 锁定值）

| 维度    | 分母 | 已测 | PASS | FAIL | SKIPPED | 覆盖率 |
| ----- | -- | -- | ---- | ---- | ------- | --- |
| 验收断言  |    |    |      |      |         |     |
| 可交互元素 |    |    |      |      |         |     |
| 接口    |    |    |      |      |         |     |
| 页面五态  |    |    |      |      |         |     |

> ⛔ 「覆盖率 100%」只有在 SKIPPED = 0 时才能写。有 SKIPPED 必须在第五节逐条列明。

### 二、断言追溯矩阵

| 断言 ID | 模块 | Verdict         | 测试位置 / 证据                      | 实测结果                |
| ----- | -- | --------------- | ------------------------------ | ------------------- |
| A1    | M1 | ✅ PASS          | `tests/api/auth.test.ts::登录成功` | 1/1 pass            |
| A2    | M1 | ❌ FAIL          | `docs/qa/shots/m1-a2.png`      | 按钮未禁用，连点产生 3 次提交    |
| A7    | M2 | ⚠️ UNVERIFIABLE | —                              | 需 seed 一个过期订单，当前无样本 |
| A9    | M3 | 🚫 VOID         | —                              | prd.md 已标作废         |

### 三、元素级结果

| 元素 ID | 页面           | 类型     | testid       | 同构组         | Verdict | 失败断言     | 证据              |
| ----- | ------------ | ------ | ------------ | ----------- | ------- | -------- | --------------- |
| E12   | `/dashboard` | button | `btn-submit` | 唯一          | ❌       | B3 防重复提交 | `shots/e12.png` |
| E45   | `/list`      | button | `row-del`    | N=137, 实测 3 | ✅       | —        | `shots/e45.png` |

### 四、接口级结果

| # | method | path         | 正常 | 缺参 | 越权 | 边界 | 错误码 | 备注               |
| - | ------ | ------------ | -- | -- | -- | -- | --- | ---------------- |
| 1 | POST   | `/api/login` | ✅  | ✅  | ✅  | ❌  | ✅   | `page=-1` 返回 500 |

**契约差集**

| 类型     | 项 | 含义                         |
| ------ | - | -------------------------- |
| 契约有代码无 |   | 未实现                        |
| 代码有契约无 |   | 影子接口，Architect 需补 `api.md` |
| 运行时额外  |   | 外部服务 / 未纳管                 |

### 五、SKIPPED 清单（禁止静默截断）

| # | 项               | 原因           | 解锁需要              |
| - | --------------- | ------------ | ----------------- |
| 1 | `POST /api/pay` | 副作用不可逆，无隔离环境 | 独立测试库 + mock 支付网关 |
| 2 | `/user/[id]`    | 缺样本数据        | seed 一个用户         |

### 六、冗余检测（该有的反面）

> vibecoding 多次修改易留死代码/孤儿/重复。不算 FAIL，但必须列出交清理。 详见 `docs/qa/<日期>-inventory.md` 的冗余检测段。

| 类型                  | 数量 | 清单          |
| ------------------- | -- | ----------- |
| 死代码 DEAD            |    | `file:line` |
| 孤儿文件 ORPHAN         |    | 文件列表        |
| 重复实现 DUP            |    | 候选对（人审）     |
| 过度抽象 OVER\_ABSTRACT |    | 建议项         |

***

### 七、Critical Failures（回 dev 必修）

#### 1. \[A2] <一句话标题>

* **Required：** <`prd.md` 原文>
* **Actual：** <实际行为 / 测试失败信息>
* **Repro：** `<命令或步骤>`
* **涉及文件：** `<file:line>`
* **证据：** `<截图 / console 日志 / 网络记录>`
* **Fix direction：** <一句，指向需求而非设计意见>

### 八、Minor Failures（应修，不阻塞 Verdict）

| # | 项 | 描述 |
| - | - | -- |

### 九、ESCALATE（dev 修不动，需人决策）

| # | 项 | 卡在哪 | 需要什么决策 |
| - | - | --- | ------ |

### 十、轮次与收敛

| 轮次 | Critical | Minor | 新增 FAIL | 结论         |
| -- | -------- | ----- | ------- | ---------- |
| 1  | 12       | 5     | —       | 递减中        |
| 2  | 4        | 3     | 0       | 递减中        |
| 3  | 1        | 2     | 0       | 达轮次上限 → 升级 |

```
收敛判定：
  递减且无新增 且 ≤3 轮  → 继续
  未递减                → 停止，报「未收敛」
  有新增 FAIL            → 停止，报震荡点，建议回滚本轮
  > 3 轮                → 停止，标记升级
```

### 十一、Not in Scope

* 代码风格 / 架构 / 性能 / 命名 —— 除非 `prd.md` 或 `api.md` 明确要求。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cc-code.rongyeliu.com/skills/whole-qa/references/report-template.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
