context-infra 检查与复盘infra.guiming.net · 全内容自包含呈现 · 生成于 2026-07-21 16:28 UTC

workflow_test_design_audit

Z3 全文↑ Z2 条目

道-方法 · 道层 skill 全文

← 返回道层 skill 索引 · 返回方法论区

本页是 <code>rules/skills/workflow_test_design_audit.md</code> 的逐字投影(仅隐私清洗,零改写)。

时点提示:本页是仓内文件 rules/skills/workflow_test_design_audit.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。

Skill: 测试设计审查(workflow_test_design_audit)

元数据

When to Use

在下列场景调用本 skill:

不适用:写测试代码(那是 tdd-guide agent 的职责)、代码 lint(ruff/mypy)、性能基准(本 skill 已知断层,见下)、安全漏洞扫(security-reviewer agent)。

1 分钟自检:若手里拿的是"一份文档 / 一个流程 / 一批历史产物",而且你想知道"它设计得对不对 / 漏了什么检查"——用这个 skill。若你想"写测试"或"跑测试",不用。

理论基础

本 skill 的诊断框架和清单源自 A Philosophy of Software Design 蒸馏结果(v2),只引原文明确支持的 3 条

  1. Axiom: complexity-decomposition (rules/skills/drafts/philosophy_of_software_design/v2/axioms/complexity-decomposition.md)
  1. Skill: information-hiding (rules/skills/drafts/philosophy_of_software_design/v2/skills/information-hiding/SKILL.md)
  1. Skill: red-flag-checklist (rules/skills/drafts/philosophy_of_software_design/v2/skills/red-flag-checklist/SKILL.md)

模式清单(ex-ante vs ex-post)

根据 target 形态自动选,或由调用方显式传 mode=ex-ante|ex-post

形态mode典型例子数据源
具体路径 + 可选段落ex-antetools/claude/PROVIDERS.md § 添加新 provider 的模板target 本身(按文档模拟 agent 走一遍)
自然语言描述 / 时间窗ex-post"最近 5 个 PR 里的测试遗漏" / "wrapper 类 smoke 不够"contexts/claude_logs/*.md + JSONL + git log + PR
混合(给 target 也要求扫历史)mixed"审查 PROVIDERS.md 并对照过去两周真实 wrapper 添加"target + 历史

自动分流规则(命令层已做,skill 收到时 mode 已定):

四类检查 + 已知断层

本 skill 按四大类组织审查动作。每类列具体判据,以及本 skill 明确不覆盖的子类

类别 1:静态一致性

判据

已知断层YAML/JSON schema 层。仓库目前无通用 schema validator;若被审查对象是 cron manifest、MCP config、agent 定义等 schema 结构,本 skill 只能做表层的键名扫描,不做语义 schema 校验。审查报告里明标"此类需外部工具"。

类别 2:流程完整性(dry-run 类)

判据

已知断层:无(此类覆盖充分)。

类别 3:实证覆盖(ex-post 类)

判据

已知断层性能回归检测("LLM 调用应 ≤ N 秒"这类基准线)。仓库无此类基准,本 skill 不补,审查报告明标"无性能基准可比对"。

类别 4:边界和失效

判据

已知断层

执行流程

用户/调用方给 targetmode(自动或显式)后:

  1. 确认 target 和模式。mode=ex-ante 时 target 必须是可读的路径/段落;mode=ex-post 时 target 可以是自然语言,skill 内部转为关键词列表。mode=auto 且歧义时询问用户,不猜。
  1. 按模式跑检查
  1. 生成审查报告(必产)。
  1. 判断是否写 OBSERVATIONS 条目(条件产)。
  1. 判断是否产 draft skill(条件产)。
  1. 短确认(response 里)。给调用方:产出文件路径清单(1-3 份)+ 核心发现一句话 + 四类检查的 PASS/FAIL 矩阵。

红旗清单(迁移自 Skill: red-flag-checklist)

审查时按需选 3-5 条重点过一遍,每条 ≤30 秒判断:

  1. 浅 fixture:fixture 定义细节多但每个 test 还要配置一堆参数
  2. 信息泄漏:同一 mock/data 格式在 5+ 测试里重复出现
  3. 按时序拆测试test_setup / test_execute / test_verify 三个独立 test 而非一个完整场景
  4. Pass-through helper:helper 只转发参数给下层,没加值
  5. 命名模糊test_user_login_should_work() 无法传达场景
  6. 注释只是代码翻译# 创建用户 + user = create_user()
  7. 测试依赖执行顺序:test B 要 test A 先跑
  8. Mock 定义散布:某个 service 的 mock 在 5 个 test 文件都重写一遍
  9. Assert 不对应 claim:测试名说验证 X,断言却查 Y
  10. 没有负测:只覆盖 happy path,没有 assert_fail / 故障场景
  11. 前置条件暗藏:test 依赖某个 env 变量/文件但没声明
  12. 边界静默通过assertEqual(result, result) 之类废 assert

反模式(真实发生的)

本 skill 为新 skill,反模式段只记录实际踩过的,暂留一条占位。新陷阱发生后再追加,不预测。

示例会话(smoke scenario)

场景:用户审查 tools/claude/PROVIDERS.md § 添加新 provider 的模板(PROVIDERS.md 2026-04-18 刚扩成四阶段结构的 dry-run 对象)。

用户: test: tools/claude/PROVIDERS.md § 添加新 provider 的模板

Agent(命令层识别路径+段落 → ex-ante 模式 → 调 skill)
  → 读 target(Stage 0/1/2/3 四阶段)
  → 四类检查:
    - 静态一致性:reference_validator 跑一下,PASS(文件/INDEX 都实)
    - 流程完整性:模拟 agent 走 Stage 0-3,Stage 1.5 bin_paths.sh 示例块缩进有歧义 → 部分
    - 实证覆盖:Stage 3.3 `17*23=391` smoke + 3.2 symlink 回归都有 → PASS
    - 边界/失效:401/403/404/429 映射清单在 Stage 3.3,弃用流程在末段 → PASS
  → 红旗清单过 5 条:命名 OK / 信息泄漏无 / 按时序拆——Stage 0/1/2/3 是时序但是必要(dependency 真实)→ 非红旗
  → 写审查报告到 contexts/survey_sessions/test_audit_providers_new_provider_template_20260419_manual.md
  → 判断 OBSERVATIONS:此发现(Stage 1.5 缩进歧义)target 专属,不写
  → 判断 draft skill:无新方法论,不写

Agent 回用户:
"四类检查:3 PASS / 1 部分(Stage 1.5 bin_paths.sh 缩进歧义)。红旗清单 0 命中。
审查报告:contexts/survey_sessions/test_audit_providers_new_provider_template_20260419_manual.md
核心发现:Stage 1.5 的 bash 代码块缩进两层,agent 按字面 copy 会报 syntax error。建议顶格。"

相关资源


← 返回道层 skill 索引 · 返回方法论区