From bb-spec-core
Test-Driven Development (TDD) discipline — language- and scenario-agnostic. Covers Red-Green-Refactor, the add/modify/delete change scenarios, coverage expectations, and test-before-implementation ordering. TRIGGER when adding/modifying/deleting any business-logic source file (.go/.py/.ts/.tsx/.vue/.js/.rs/.java/.kt), or the user mentions TDD / test-first / writing tests. SKIP pure struct/interface/const/var files, docs, config, generated code. Complements language-specific testing skills (e.g. golang-testing). | 测试驱动开发(TDD)通用纪律——跨语言、跨场景适用。覆盖 Red-Green-Refactor 循环、"新增 / 修改 / 删除"三种代码变更场景的标准流程、测试覆盖率期望、测试与实现的先后关系。TRIGGER when:新增、修改、删除任何业务逻辑代码(`.go` / `.py` / `.ts` / `.tsx` / `.vue` / `.js` / `.rs` / `.java` / `.kt` 等源文件);或用户提到 "TDD" / "写测试" / "测试驱动" / "test-first"。SKIP when:纯结构体 / interface / 常量 / 变量定义文件、纯文档、纯配置、生成代码(`*_gen.go`、protobuf 产物等)。与各语言特化的 testing skill(如 `golang-testing`)互补:本 skill 是"通用纪律",特化 skill 是"语言惯用法与测试组织"。
How this skill is triggered — by the user, by Claude, or both
Slash command
/bb-spec-core:tdd-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
适用于:所有语言、所有业务逻辑代码的新增 / 修改 / 删除变更。
适用于:所有语言、所有业务逻辑代码的新增 / 修改 / 删除变更。
核心:测试是设计工具,不是验证工具。 先写测试迫使你以调用方视角想清楚行为契约。
TRIGGER:新增/修改/删除业务逻辑源文件(.go/.py/.ts/.tsx/.vue/.js/.rs/.java/.kt 等);用户提到 TDD/写测试/test-first。
SKIP:纯 struct/interface/enum/常量定义、生成代码、纯文档、纯配置、vendor/node_modules。
RED → 写一个失败测试,明确行为预期 → 跑测试确认 FAIL
GREEN → 写最小实现让测试通过 → 跑测试确认 PASS
REFACTOR → 测试保护下重构 → 跑测试确认仍 PASS
RED 要点:真的失败(断言不通过,不是编译错误);一次只引入一个最小行为预期。 GREEN 要点:最小实现(允许傻瓜实现);不提前写未覆盖的代码。 REFACTOR 要点:不新增行为;每次小改动后跑测试。
RED(写失败测试)→ GREEN(最小实现)→ REFACTOR → 下一个行为。禁止先写实现再补测试。
RED(先改/增测试反映新预期)→ 确认 FAIL → GREEN(改实现)→ 确认全 PASS。禁止先改实现再调测试。
检查无依赖 → 先删测试 → 再删实现 → 跑完整测试套件。禁止先删实现导致编译失败再被动删测试。
整体期望 80%+(期望而非硬拦截,显著下降需在 PR 说明中解释)。
优先级:业务逻辑层 > 关键纯函数 > 错误分支 > 边界条件 > 集成边界。 不强求:纯定义文件、框架样板、一次性脚本。
本 skill = "做不做、按什么顺序做"(通用纪律)。golang-testing 等 = "具体怎么写"(语言惯用法)。
npx claudepluginhub 0xbb2b/bb-spec --plugin bb-spec-coreGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.