---
name: soloforge-test-report
description: 用真实执行记录证明需求、契约、页面和恢复场景的测试结果。
when: 测试报告 / test_report / verify 阶段
---

# 测试报告

## 适用性

测试计划中的适用场景已经执行后使用。若关键场景未执行、环境不可用或证据丢失，报告必须写“阻塞/未执行”，不能以推断补成通过。

## 事实输入

- 测试计划、执行命令、环境版本、数据集和时间。
- 原始测试输出、日志、截图、HTTP 响应、性能结果和失败工单。
- 最新需求、适用的 API/数据/原型契约、切片和代码状态。
- `template.md` 与 `examples.md`。

## 关键决策

- 通过只表示观察结果符合预期，不表示未执行范围也安全。
- flaky、阻塞、环境失败和产品失败必须分开记录。
- 需求和页面完整性必须逐条核对，不能由总体通过率推断。

## 产出方法

1. 从原始输出汇总，不手工改写失败为成功。
2. 逐场景记录命令、环境、结果、证据位置和失败原因。
3. 对每条适用需求建立需求→契约→切片→代码→运行结果链。
4. 前端逐页记录正常、异常、交互和视觉证据。
5. 对失败、阻塞和未执行项给出责任、下一步和是否阻断交付。

## 禁止项

- 不得伪造命令输出、截图、通过率、环境或执行时间。
- 不得用“full verify 通过”替代需求和原型逐项核对。
- 不得删除失败项历史或把重跑一次成功写成 flaky 已解决。
- 不得把静态检查、mock 或 AI 判断标为真实运行证据。
- 没有失败项时仍填写真实的“失败项总数: 0”，并让它与原始执行数量一致；空表本身不能证明测试已执行。

## 交付自检

- 计划中的每个适用场景都有 passed、failed、blocked 或 not_run 状态。
- 所有数字可由原始结果复算，证据路径可访问。
- API 响应、数据副作用和页面行为与当前契约一致。
- 结论明确说明残余风险和未覆盖范围。

## 权威验证

调用 `sf_verify action="full" task_id="当前任务ID" artifact="test_report"` 验证报告完整性和交叉追踪。测试报告通过后，失败 finding 与审查 finding 仍须独立闭环。


## 交付前对抗审查

`sf_verify` 通过只证明结构/编译/测试层；语义质量（承接正确性、异常/并发/权限/边界是否可靠、是否含空话或无法证伪的承诺）须经独立对抗审查。advance/deliver 前用 `sf_review action="start" task_id="当前任务ID" artifact="<本产物 kind>"` 发起 per_artifact 审查，用**独立 session/subagent**（非产出本产物的同一会话）执行返回的 prompt、submit findings，按 next_step 完成 K 次独立采样与闭环。deliver 会阻断未完成/未闭环的审查；活跃豁免与被驳回 error 会被注入审查 focus 供独立复核。
