tdd
测试驱动开发(TDD)。当用户想以测试先行的方式构建功能或修复 bug、提到 "red-green-refactor"(红-绿-重构),或想要集成测试时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
测试驱动开发(TDD)。当用户想以测试先行的方式构建功能或修复 bug、提到 "red-green-refactor"(红-绿-重构),或想要集成测试时使用。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
从两个维度审查自某个固定基点(提交、分支、标签或 merge-base)以来的改动 —— 规范(代码是否遵循本仓库有文档记录的编码规范?)与 需求(代码是否符合最初发起的 issue/PRD 的要求?)。以并行子代理运行两项审查并并排汇报。当用户想要审查某个分支、PR、进行中的改动,或要求“审查自 X 以来的改动”时使用。
基于一份规格或一组工单来实现一部分工作。
设计深模块的共享术语体系。当用户想要设计或改进某个模块的接口、寻找加深(deepening)的机会、决定接缝(seam)放在哪里、让代码更易测试或更利于 AI 导航时,或当其他技能需要用到深模块术语时使用。
构建并打磨项目的领域模型。当用户想要确定领域术语或统一语言(ubiquitous language)、记录架构决策,或当其他技能需要维护领域模型时使用。
通过一场刨根问底的访谈来打磨一份计划或设计。
通过一场刨根问底的访谈来打磨一份计划或设计,并在过程中同时产出文档(ADR 和词汇表)。
| name | tdd |
| description | 测试驱动开发(TDD)。当用户想以测试先行的方式构建功能或修复 bug、提到 "red-green-refactor"(红-绿-重构),或想要集成测试时使用。 |
TDD 就是 红 → 绿 的循环。这个技能是那份让循环产出值得保留的测试的参考:什么才是好测试、测试放在哪里、有哪些反模式、以及循环的规则。每一节都适用于每一个循环——在循环之前和之中查阅它们,而不是之后。
在探索代码库时,阅读 CONTEXT.md(如果存在),使测试名称和接口词汇与项目的领域语言一致,并尊重你所触及区域内的 ADR。
测试通过公共接口验证行为,而不是实现细节。代码可以彻底改变;测试不应随之改变。一个好测试读起来像一份规格说明——"user can checkout with valid cart(用户可以用有效购物车结账)"就精确地告诉你存在什么能力——并且因为不在意内部结构而能在重构中存活。
示例见 tests.md,mock 指南见 mocking.md。
接缝(seam) 是你在其上进行测试的公共边界:在这个接口上,你观察行为而不伸手进入内部。测试活在接缝处,永不针对内部实现。
只在预先约定好的接缝处测试。 在写任何测试之前,先写下待测的接缝并与用户确认。任何测试都不在未经确认的接缝处编写。你无法测试一切——事先约定好接缝,正是让测试精力落在关键路径和复杂逻辑上、而非每一个边界情形的方式。
问:“公共接口是什么,我们应该在哪些接缝上测试?”
expect(add(a, b)).toBe(a + b)、一份以同样方式手工推导出的快照、一个断言等于自身的常量),于是它按构造即成立、永远不可能与代码产生分歧。期望值必须来自一个独立的真值来源——一个已知正确的字面量、一个手工推演过的例子、规格说明。code-review 技能),而非 红 → 绿 的实现循环。