> 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/templates/gates.md).

# QA 实测结果 (gates.md)

> **L4 验收层** · 由 \[QA] 角色维护 · **Dev 禁读**（防被既定答案带偏）。 ⚠️ **本文件只装「实测结果」，不装「验收标准」。** 标准在 `prd.md` 的 §1.5 验收断言。 混装是历史上最常见的失效原因：标准与结果一旦同文件，改结果就等于改标准。

```
prd.md §1.5 验收断言  ──尺子(应然)──►  QA 实测  ──结果(实然)──►  gates.md
ux.md  §2.3 U 编号五态 ──┘                                          │
                                                    FAIL 清单 ──► 原样喂回 Dev
```

### ⛔ 写入纪律（active = 最新 + 最完整 + 最纯净）

| 纪律          | 说明                                                                                                                     |
| ----------- | ---------------------------------------------------------------------------------------------------------------------- |
| **就地更新**    | 第 N 轮验收**只更新 §二 矩阵里对应行**的 Verdict / 测试位置 / 实测结果。⛔ **禁新开「第 N 轮」章节** —— 追加式写法会让本文件随轮次线性膨胀，且「A12.8 现在什么状态」要跨 N 轮 grep 才知道 |
| **行数恒定**    | 矩阵行数 = 分母（`A` 条数 + `U` 条数），不随轮次增长                                                                                      |
| **详情外置**    | 逐轮完整报告 → `docs/qa/<YYYY-MM-DD>-round-N.md`；本文件只留「当前状态」                                                                 |
| **只留未关闭**   | §三/§四/§五 只留**未修复**项，修完即移出（历史在 `docs/qa/`）                                                                              |
| **历史靠 git** | 旧版本不在本文件留存，`git log -p` 即完整历史                                                                                          |

## 一、本轮结论

| 项           | 值                       |
| ----------- | ----------------------- |
| 轮次          | 第 \[n] 轮                |
| 执行日期        | \[待填写]                  |
| 范围          | \[模块 / 阶段 / 全量]         |
| **Verdict** | ⏳ 待测试 / ✅ PASS / ❌ FAIL |
| 断言通过率       | \[x] / \[y]             |

## 二、验收追溯矩阵

> ⭐ **全量溯源**：每一条 `A` 断言、每一条 `U` 判定项都必须在此有一行，一条不漏。 编号直接引用 `prd.md` / `ux.md`，**禁止另起一套编号**。 复测时**改这一行**，不新开轮次章节。

### 2.1 A 段 — 业务逻辑 / 链路 / 接口（尺子：`prd.md` §1.5）

| 断言 ID | Verdict                           | 轮次   | 测试位置    | 实测结果   |
| ----- | --------------------------------- | ---- | ------- | ------ |
| A1    | ✅ PASS / ❌ FAIL / ⚠️ UNVERIFIABLE | \[n] | `[待填写]` | \[待填写] |

### 2.2 U 段 — UI 布局 / 交互五态（尺子：`ux.md` §2.3）

> 态：i 正常 / l 加载 / s 完成 / e 错误 / m 空。`ux.md` 标 `N/A` 的态不计入分母，但要在此留行注明。

| U 编号   | Verdict                           | 轮次   | 证据（截图 / 用例） | 实测结果   |
| ------ | --------------------------------- | ---- | ----------- | ------ |
| U2.1.i | ✅ PASS / ❌ FAIL / ⚠️ UNVERIFIABLE | \[n] | `[待填写]`     | \[待填写] |

* ✅ **PASS** — 有测试覆盖且实测通过（须 cite 测试文件 + 用例名 + 运行结果）
* ❌ **FAIL** — 测试失败或无覆盖（须精确说明缺什么 / 怎么挂的）
* ⚠️ **UNVERIFIABLE** — 无法判定（须说明还需要什么证据）

> ⛔ 永不把 FAIL 四舍五入成「大概没问题」，永不进位。

## 三、Critical Failures（回 Dev 必修）

### 1. \[断言 A\[n]] \[一句话标题]

* **Required：** \[`prd.md` 原文]
* **Actual：** \[代码实际行为 / 测试失败信息]
* **Repro：** `[失败的测试命令或复现步骤]`
* **涉及文件：** `[file:line]`
* **Fix direction：** \[一句，指向需求而非设计意见]

## 四、Minor Failures（应修）

* \[待填写]

## 五、Unverifiable Items

* \[待填写]（说明需要什么额外证据：跑某测试 / 某日志 / 某 DB 快照）

## 六、覆盖率

> ⛔ 未测项必须逐条列出并给原因，禁止静默跳过 —— 静默截断会伪装成「全覆盖」。 分母来源固定，不许临场缩小：

| 维度        | 分母来源                       | 分母 | 已测 | 覆盖率 | 未测清单 |
| --------- | -------------------------- | -- | -- | --- | ---- |
| 验收断言 `A`  | `prd.md` §1.5 主表条数         |    |    |     |      |
| UI/五态 `U` | `ux.md` §2.3 判定项数（除 `N/A`） |    |    |     |      |
| 可交互元素     | `ux.md` §2.4 声明 ∪ 运行时 DOM  |    |    |     |      |
| 接口        | 路由扫描 ∪ `api.md` 契约表        |    |    |     |      |

### 回归范围来源（0.10.0 新增，每轮必标）

> 回归跑了「哪些」比跑了「多少」更重要 —— 范围算错，全绿也是假绿。

| 轮次       | 范围来源                                     | 范围大小     | 备注                                      |
| -------- | ---------------------------------------- | -------- | --------------------------------------- |
| \[第 n 轮] | \[`codegraph affected` / 同模块已 PASS / 全量] | \[N 个测试] | \[若非 affected，写明原因：CLI 未装 / 返回空 / 收口穷尽] |

**`affected` 返回空的三个自查点**：① 测试代码被 `.gitignore` 屏蔽（被 ignore 则不进 codegraph 索引）② 测试未 `import` 被测源码（纯 HTTP 型无 import 边）③ 非标准命名需 `--filter`（glob 见 `project.md` §六）。

## 七、Not in Scope

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

***

## 附录、轮次归档索引

> 逐轮完整报告落 `docs/qa/`，本文件只留索引一行。**溯源才翻，默认不读。**

| 轮次       | 日期            | 范围         | Verdict  | 完整报告                                |
| -------- | ------------- | ---------- | -------- | ----------------------------------- |
| 第 \[n] 轮 | \[YYYY-MM-DD] | \[全量 / 模块] | \[✅ / ❌] | `docs/qa/[YYYY-MM-DD]-round-[n].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/templates/gates.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.
