---
name: soloforge-test-plan
description: 定义测试范围、场景、环境、数据、证据和完成判定。
when: 测试计划 / test_plan / scope.code
---

# 测试计划

## 适用性

任务包含代码或运行时行为时使用。设计和切片未稳定前只做风险草案，不宣布最终计划；纯文档任务可明确不适用。

## 事实输入

- 每条需求的验收标准、状态机、权限和非功能指标。
- API、数据、原型和切片契约。
- 真实测试框架、环境、外部依赖、可用数据和 CI 能力。
- `template.md` 与 `examples.md`。

## 关键决策

- 测试层级由风险和可观察性决定，不强行套固定金字塔比例。
- 每条需求至少覆盖正常、错误和边界；权限、并发、恢复、兼容性按适用性补充。
- Evidence 级别必须说明实际运行载体；静态检查或 AI 摘要不能冒充运行时通过。

## 产出方法

1. 从需求和切片构建场景清单，不从模板预填的测试类型反推场景。
2. 为每个场景写前置数据、步骤、预期、清理、执行层级和证据位置。
3. 明确哪些依赖使用真实服务、容器、替身或契约测试，并说明风险。
4. 给出性能、安全、故障恢复和兼容测试的触发条件与阈值来源。
5. 默认路径为 `docs/build/测试计划.md`；有 project map override 时使用解析后的权威路径。

## 禁止项

- 不得保留通用“单元/集成/E2E”示例行而没有项目场景。
- 不得把“测试通过”写作计划证据。
- 不得省略失败数据、环境版本或不可重复的外部条件。
- 不得用固定比例、固定工具或固定浏览器列表替代项目适用性分析。

## 交付自检

- 每条适用需求都有正常、错误和边界场景或不适用理由。
- 场景能追溯到切片、接口、页面或数据契约。
- 计划中的命令、环境和数据在当前项目可获得。
- 完成判定能区分通过、失败、阻塞和未执行。

## 权威验证

编辑后先处理 quick 反馈，再调用 `sf_verify action="full" task_id="当前任务ID" artifact="test_plan"`。计划通过不代表测试已执行，执行证据必须进入测试报告。


## 交付前对抗审查

`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 供独立复核。
