Agent Skills: 测试驱动开发(TDD)

>-

UncategorizedID: FlameMida/spec-dev/test-driven-development

Repository

FlameMidaLicense: NOASSERTION
12

Install this agent skill to your local

pnpm dlx add-skill https://github.com/FlameMida/spec-dev/tree/HEAD/skills/test-driven-development

Skill Files

Browse the full folder contents for test-driven-development.

Download Skill

Loading file tree…

skills/test-driven-development/SKILL.md

Skill Metadata

Name
test-driven-development
Description
>-

输出语言:用户显式指定(含平台语言设置)优先,其次跟随近期对话,否则使用英语。新产物使用创建时语言,增量修改沿用原文语言;固定话术按语义表达。

外部搜索统一入口:外部检索先用 anysearch;不可用时按搜索与降级规则执行。

测试驱动开发(TDD)

新增或改变行为默认先测试:在获批公共边界观察有效失败,再最小实现并验证通过。有效红证明断言捕获目标差异;编译/导入故障、缺环境、零测试和 SKIP 均不算行为红或通过证据。

测试落点确认与消费

测试落点(seam)是观察公共行为的契约边界,可为模块函数、CLI、HTTP API 或数据库适配器。复用获批接口和 Scenario;一个落点可覆盖多个场景,不逐私有函数制造测试。存量计划无 seam 标签但接口唯一确定时,提取已有决定并记录来源,不迁移旧计划格式。

边界缺失或契约冲突时,停止受影响部分并走原澄清/偏差流程。quick-fix 并入已有修复确认;implementer 回报 blocked,不自改计划、扩大 writes 或另开用户批准门。

红绿循环

  1. 写失败测试:明确输入、动作和可观察结果,期望值来自契约或独立真值。沿 mock 与测试反模式 选择替身。
  2. 确认有效红:实际运行目标测试并保留命令、退出码和原始输出。失败须对应目标行为;测试直接通过时核实是否真正复现了差异,不人为破坏测试制造失败。
  3. 最小实现:在获批写集合内实现该行为,不顺手添加功能或无关重构。
  4. 确认绿:运行目标及当前要求的相关检查。验证范围、首次 final 与修复后补验沿 test-strategy;不在每个循环追加全仓测试。
  5. 按任务提交与交接:普通实施票保留既有五步及结果契约;重构候选交现有收尾,记录位置、理由和保护证据。

本次引入的回归必须修复。已存在的失败、环境故障及 warning 按 失败归属与复验 记录和处置;项目配置或矩阵将 warning 视为失败时照其执行,不扩大成清理所有历史告警。

既有实现的补测恢复

实现已先于测试存在时,保留并记录其来源和当前改动,不机械删除重写,也不覆盖他人工作。区分“本次新增修改尚未开始”和“待补测的既有实现”;后续新行为仍按正常红绿执行。

已有同范围验证或修复授权(包括主线程要求继续验证)即覆盖非破坏性补测及本轮自有临时副本,不因称为“补测”再开批准门;这不等于批准 TDD 例外或普通票 ready。使用临时副本或既有隔离工作区中的修复前版本,或可控撤销本次目标差异,运行同一测试观察目标行为失败;再对当前实现运行并记录通过。比较时保持测试和执行条件一致,确保前态失败不是编译/环境错误。没有可恢复前态时如实记录证明力缺口,不编造失败。

这些回执证明回归检测能力,不能证明测试先行。回溯失败记为补测/比较证据,不填充普通实施票的 phase:red;当前绿也不能补造历史顺序。普通 implementer 在 deviations/blockers 说明后回报 blocked,交主线程沿既有偏差与例外流程处置;已有同范围补测授权直接复用。不要修改结果 schema 或放宽 ready 条件来接纳它。

收尾纯重构

核实授权范围和公共行为不变,复用同一行为测试记录前后通过。缺保护时先依据现行契约补刻画并观察当前实现通过,再调整结构;刻画通过不是红证据。发现行为与需求不同则转缺陷复现路径。

批准的 T01 前置重构在其批准时机执行;执行中额外发现的结构机会交既有收尾。没有行为红的纯重构由主线程沿现有分流处理,普通 implementer 不伪报 red/ready。

集成组

组身份不豁免行为红。纯机械迁移先取得组基线;各票运行可执行的检查,只有计划明确列出的命令/范围/原因可以延后到唯一组验证票。意外局部失败阻塞,不能用编译错误作红或把失败改名待验。组验证不代替最终特性审查与 final。

例外清单(单点定义)

一次性原型、生成代码、配置文件,以及不改变行为、契约或测试预期的纯文案可按可追溯授权处理;同范围已授权则引用原决定。技能规则、API 语义和测试预期即使写在 Markdown 中也不是纯文案。补测恢复须明确记录其偏差,不能成为以后先写实现的默认许可。

完成依据

记录实际适用的路径:测试先行红绿、纯重构前后绿、补测比较或获批例外。关联公共入口与 Scenario,保留失败原件、相关检查结果、未验证范围及授权来源;不同路径的证据不能相互冒充。