devbooks-test-owner:以 Test Owner 角色把设计/规格转成可执行验收测试与追溯文档(verification.md),强调与实现(Coder)独立对话、先跑出 Red 基线。用户说"写测试/验收测试/追溯矩阵/verification.md/Red-Green/contract tests/fitness tests",或在 DevBooks apply 阶段以 test owner 执行时使用。
目标:明确本 Skill 的核心产出与使用范围。 输入:用户目标、现有文档、变更包上下文或项目路径。 输出:可执行产物、下一步指引或记录路径。 边界:不替代其他角色职责,可编写/修改 tests/ 与 verification.md,不修改实现代码。 证据:引用产出物路径或执行记录。
适用:需要细化策略、边界或风险提示时补充。
适用:需要与外部系统或可选工具协同时补充。
我的职责:
| 阶段 | 触发时机 | 核心职责 | 测试运行方式 | 产出 |
|---|---|---|---|---|
| 阶段 1:Red 基线 | design.md 完成后 | 编写测试、产出失败证据 | 运行本次新增/变更的验收锚点 | verification.md(含追溯矩阵)、Red 基线 |
| 阶段 2:Green 验证 | Coder 完成后 | 审计 Green 证据、更新追溯矩阵勾选 | 默认不重跑;必要时抽样重跑 | 追溯矩阵更新、Green 证据引用 |
<truth-root>:当前真理目录根<change-root>:变更包目录根执行前必须按以下顺序查找配置(找到后停止):
.devbooks/config.yaml(如存在)→ 解析并使用其中的映射dev-playbooks/project.md(如存在)→ Dev-Playbooks 协议,使用默认映射project.md(如存在)→ template 协议,使用默认映射关键约束:
agents_doc(规则文档),必须先阅读该文档再执行任何操作<change-root>/<change-id>/verification.mdtests/**)<change-root>/<change-id>/evidence/red-baseline/<change-root>/<change-id>/evidence/green-final/AI行为规范:~/.claude/skills/_shared/references/AI行为规范.md
绝对禁令与规则:references/绝对禁令与规则.md
测试代码提示词:references/测试代码提示词.md
测试驱动方法论:references/测试驱动.md
测试分层策略:references/测试分层策略.md
测试分层与运行策略:references/测试分层与运行策略.md
解依赖技术速查表:references/解依赖技术速查表.md
异步系统测试策略:references/异步系统测试策略.md
ication 模板与结构:references/verification模板与结构.md
变更验证与追溯模板:references/变更验证与追溯模板.md
references/阶段2证据审计清单.md
读取设计文档:
# 读取 design.md 和 AC
cat <change-root>/<change-id>/design.md创建 verification.md:
Draft编写测试:
references/绝对禁令与规则.mdreferences/测试代码提示词.md运行测试产出 Red 基线:
# 只跑新写的测试(增量)
npm test -- --grep "AC-001|AC-002"
# 保存失败证据
npm test 2>&1 | tee <change-root>/<change-id>/evidence/red-baseline/test-$(date +%Y%m%d-%H%M%S).log更新 verification.md:
Ready检查偏离:
deviation-log.md~/.claude/skills/_shared/references/偏离检测与路由协议.md完整步骤详见:references/阶段2证据审计清单.md
简要流程:
@full 测试已通过evidence/green-final/ 目录Verified防止大量输出污染 context:
| 场景 | 处理方式 |
|---|---|
| 测试输出 > 50 行 | 只保留首尾各 10 行 + 失败摘要 |
| Red 基线日志 | 落盘到 evidence/red-baseline/,对话中只引用路径 |
| Green 证据日志 | 落盘到 evidence/green-final/,对话中只引用路径 |
| 大量测试用例列表 | 用表格摘要,不要逐条贴出 |
本 Skill 在执行前自动检测上下文,确保角色隔离和前置条件满足。
检测规则参考:~/.claude/skills/_shared/上下文检测模板.md
| 模式 | 触发条件 | 行为 |
|---|---|---|
| 首次编写 | verification.md 不存在 | 创建完整验收测试套件 |
| 补充测试 | verification.md 存在但有 [TODO] | 补充缺失的测试用例 |
| Red 基线验证 | 测试存在,需要确认 Red 状态 | 运行测试并记录失败日志 |
| 证据审计 | 用户说"验证/打勾"且 Green 证据已产出 | 审计证据并勾选 AC 矩阵 |
| 状态码 | 状态 | 判定条件 | 下一步 |
|---|---|---|---|
| ✅ | PHASE1_COMPLETED | Red 基线产出,无偏离 | 交接给 Coder(新对话/独立实例) |
| ⚠️ | PHASE1_COMPLETED_WITH_DEVIATION | Red 基线产出,deviation-log 有未回写记录 | devbooks-design-doc |
| ❌ | BLOCKED | 需要外部输入/决策 | 记录断点,等待用户 |
| 💥 | FAILED | 测试框架问题等 | 修复后重试 |
| 状态码 | 状态 | 判定条件 | 下一步 |
|---|---|---|---|
| ✅ | PHASE2_VERIFIED | 证据审计通过,AC 矩阵已打勾 | devbooks-reviewer |
| ⏳ | PHASE2_WAITING | 全量测试仍在运行或 Green 证据未完备 | 等待 CI 完成 |
| ❌ | PHASE2_FAILED | 全量测试未通过或 Green 证据存在失败 | 通知 Coder 修复 |
| 🔄 | PHASE2_HANDOFF | 发现测试本身有问题 | 修复测试后重新验证 |
## 完成状态
**阶段**:阶段 1(Red 基线)/ 阶段 2(Green 验证)
**状态**:✅ PHASE1_COMPLETED / ✅ PHASE2_VERIFIED / ...
**Red 基线**:已产出 / 未完成(仅阶段 1)
**全量测试(如 CI)**:已通过 / 运行中 / 失败(仅阶段 2)
**证据审计**:已完成 / 待审计(仅阶段 2)
**AC 矩阵**:已打勾 N/M / 未打勾(仅阶段 2)
**偏离记录**:有 N 条待回写 / 无
## 下一步
**推荐**:`devbooks-coder`(新对话/独立实例)/ `devbooks-xxx skill`
**原因**:[具体原因]参考:~/.claude/skills/_shared/references/偏离检测与路由协议.md
在编写测试过程中,必须立即将以下情况写入 deviation-log.md:
| 情况 | 类型 | 示例 |
|---|---|---|
| 发现 design.md 未覆盖的边界情况 | DESIGN_GAP | 并发写入场景 |
| 发现需要额外的约束 | CONSTRAINT_CHANGE | 需要添加参数校验 |
| 发现接口需要调整 | API_CHANGE | 需要增加返回字段 |
| 发现配置项需要变更 | CONSTRAINT_CHANGE | 需要新的配置参数 |
2608f9c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.