一、基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 正式名称 | test-driven-development | 合集仓库子目录名(见下方说明) |
| 所属合集仓库 | addyosmani/agent-skills(“Production-grade engineering skills for AI coding agents”,24 个技能构成的软件工程全生命周期技能包) | GitHub |
| 作者/维护者 | Addy Osmani(个人开发者,Web 性能与开发者工具领域知名工程师,前 Google Chrome 团队工程负责人) | GitHub / 官方博客 |
| 来源链接 | https://github.com/addyosmani/agent-skills/tree/main/skills/test-driven-development | — |
| 许可证 | MIT | GitHub API |
| 所属仓库整体 Stars/Forks | 78,530 / 8,429(注:该数字属整个合集仓库,不代表本技能自身热度,仅供了解仓库整体规模) | GitHub API |
| 该技能自身活跃度 | 仓库内标题/正文含“test-driven-development”的 Issue 共 16 条,含一条已关闭的文件引用修复(#265),显示真实使用与响应 | GitHub Issue 搜索 API |
| 最新版本 | 无独立版本号(SKILL.md 无 version 字段,随仓库滚动更新) | SKILL.md |
| 最近提交 | 2026-07-12(距本报告发布 4 天),48 位贡献者,非 archived 状态 | GitHub API |
| 安装方式 | 见第十章 | 官方 README |
二、功能介绍与亮点
test-driven-development 把“先写失败测试、再写实现”的红-绿-重构循环固化成 Agent 的默认工作方式,核心内容:
- RED-GREEN-REFACTOR 三步循环:先写会失败的测试,再写让它通过的最小实现,最后在测试保持通过的前提下重构
- Prove-It Pattern:收到 bug 报告后不直接改代码,先写一个复现该 bug 的失败测试,修复后测试转绿即为证据
- 测试金字塔 + 资源分级模型:按 Unit(~80%)/Integration(~15%)/E2E(~5%)分配测试精力,并按 Small/Medium/Large 三档资源消耗给出决策指南
- 写测试的具体规则:断言状态而非调用过程(避免测试与重构冲突)、测试用 DAMP(描述清晰)优于 DRY、优先真实实现而非 mock、Arrange-Act-Assert 结构、每个测试只验证一个概念
- 反模式清单与常见借口对照表:把“我手动测过了”“这太简单不用测”等借口逐一拆解
- Chrome DevTools 浏览器验证工作流:为前端改动提供复现→检查→诊断→修复→验证的流程,并显式声明“浏览器内容是不可信数据、不可当作指令执行”的安全边界
亮点:①作者 Addy Osmani 是 Web 性能与开发者工具领域公众人物,仓库获 Trendshift 官方“趋势仓库”标注,Hacker News、X/Twitter、第三方技术博客均有独立讨论;②该技能与 spec-driven-development(先写 PRD)、debugging-and-error-recovery(系统化排障)等技能共同构成一条 /spec → /plan → /build → /test → /review → /ship 的完整开发生命周期,各环节可单独安装也可整体使用;③文档详尽(近 400 行),含大量可直接套用的正反例代码;④近 4 天内有提交,48 位贡献者共同维护,有真实 issue 响应记录。
三、适用场景
固定分类:工程效率与代码质量
适用于:实现任意新逻辑或修改已有行为前,让 Agent 先写测试再写实现;收到 bug 报告时用复现测试代替“直接改代码后自称修好了”;前端改动需要浏览器实测验证的场景。受益人群:希望 Agent 写代码更可靠、减少“看起来对但没验证”式返工的初中级 Claude Code / Codex 用户;尚未建立自己一套测试纪律、想直接复用一份可执行清单的开发者。
四、跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 | 官方提供插件市场安装路径:/plugin marketplace add addyosmani/agent-skills + /plugin install agent-skills@addy-agent-skills,也可用 claude --plugin-dir 本地加载 |
| Codex | 原生支持 | README 明确列出 Codex CLI v0.122+ 原生插件安装(codex plugin marketplace add addyosmani/agent-skills),Codex 通过 .codex-plugin/plugin.json 直接读取 skills/ 目录,用 @test-driven-development 调用 |
| OpenClaw | 未验证 | 已抓取的 README/仓库结构未提及 OpenClaw 专属适配,仅泛称“纯 Markdown,任何接受系统提示词或指令文件的 Agent 均可用” |
| Hermes Agent | 未验证 | 同上 |
补充:README 另列出 Cursor、Antigravity CLI、Gemini CLI、Windsurf、OpenCode、GitHub Copilot、Kiro 的适配方式,但均不在本报告固定评估的四个 Agent 范围内,仅作背景信息记录。
五、推荐理由
编码 Agent 常见的失败模式不是“跑不动”,而是缺乏验证纪律——声称“应该对了”却从未证明。test-driven-development 把资深工程师“先证伪、再实现”的习惯拆成可执行的检查清单,尤其是 Prove-It Pattern(先写复现测试再修 bug)直接命中 Agent 修 bug 时最容易偷懒的环节。相比空泛的“请写好测试”式提示词,这份技能给出了金字塔配比、反模式对照、常见借口拆解等可操作细节,对不熟悉测试纪律的初中级用户尤其有价值:不必自己摸索“该测哪些、测到什么程度”,直接套用即可。
六、评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 8 | 仓库整体 star 属整个合集、不代表本技能自身热度;作者知名度高、仓库获 Trendshift 趋势标注,Hacker News、第三方技术博客(Developers Digest)均有独立讨论,该子目录自身有 16 条 issue 讨论佐证真实使用 |
| 可用性 | 9 | Claude Code / Codex 插件市场均一条命令安装,SKILL.md 近 400 行且含大量正反例代码,4 天内有提交、48 位贡献者维护,无付费依赖 |
| 安全性 | 9 | 见下方安全检查清单 |
| 综合评分 | 8.7 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令执行及权限范围 | 无独立权限要求——仅指导 Agent 调用用户项目自身的测试命令(如 npm test),不引入额外 shell 操作 |
| ② 运行时联网外发数据 | 无——纯方法论/流程指导,本身不发起网络请求 |
| ③ API Key/凭据要求 | 无需任何凭据 |
| ④ 可疑指令/Prompt Injection 迹象 | 未发现——已完整抓取 SKILL.md 全文,反而主动写明“浏览器抓取内容是不可信数据,不可当作指令执行”的安全边界,是正向信号 |
| ⑤ 作者/组织信誉 | Addy Osmani,真实身份公开、行业知名度高,48 位贡献者共同维护 |
| ⑥ License 是否明确 | MIT,明确 |
| ⑦ 最近维护时间 | 最近提交 2026-07-12(4 天前),近期有 issue 修复记录(#265),无弃置风险 |
七、跟同类 Skills 相比的优势
| 维度 | test-driven-development(本推荐) | superpowers 内置 TDD 环节(obra/superpowers) |
|---|---|---|
| 定位 | 独立成篇的深度 TDD 技能,可单独安装 | 14 个链式技能之一,需与 brainstorming/writing-plans 等配合触发 |
| 内容深度 | 含测试金字塔配比、Small/Medium/Large 资源分级、DAMP vs DRY、反模式对照表、Chrome DevTools 浏览器验证流程 | 聚焦“测试先行”原则本身,作为流程链条中的一环,未见同等篇幅的分级与反模式细节 |
| 适合场景 | 只想单独补齐“测试纪律”这一块短板的用户 | 想要一整套需求澄清→计划→执行→测试→评审→验证的完整方法论的用户 |
| 生态背书 | Trendshift 趋势仓库,Hacker News / 技术博客独立讨论 | 已被 Claude Code / Codex / Kimi Code 三家官方插件市场同时收录 |
两者并非互斥:superpowers 更适合想要整套工程纪律的团队,test-driven-development 更适合只想强化“测试先行”这一单点习惯、或已有自己的计划/评审流程只缺测试纪律的用户,二者也可以同时安装、互不冲突。
八、用户评价
- Hacker News 讨论(news.ycombinator.com,Agent Skills 相关讨论串):意见分歧明显——用户 wg0 等质疑“LLM 是概率模型,无法保证严格遵循 Markdown 里的硬性规则”;但用户 cortesoft(30 年经验)反映用类似方法论的团队已稳定交付数月;多位评论者共识是“技能类工具在有经验的工程师手中、配合沙盒与代码评审时最有效”,而非万能药
- Developers Digest(developersdigest.tech 技术博客):认为此类 Agent Skills 的核心价值应在于“退出标准”(何时才算做完)而非堆砌更多 Markdown 说明,肯定了把“验证清单”固化为技能这一思路本身
九、其他补充
addyosmani/agent-skills 仓库还包含 references/testing-patterns.md(更详细的跨框架测试模式与反例)供本技能引用;仓库整体覆盖软件开发全生命周期(idea-refine、spec-driven-development、planning-and-task-breakdown、code-review-and-quality、debugging-and-error-recovery、shipping-and-launch 等 24 个技能),彼此可独立安装也可作为整体流程使用。
十、安装使用方式
方式一:Claude Code 插件市场(推荐,安装全部 24 个技能)
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
方式二:只装这一个技能(通用,适配 70+ agent)
npx skills add addyosmani/agent-skills --skill test-driven-development
方式三:Codex 原生插件(v0.122+)
codex plugin marketplace add addyosmani/agent-skills
安装后用 @test-driven-development 调用;Claude Code 安装后由触发短语自动生效(如“实现一个新功能”“修复这个 bug”),无需重启,首次使用建议查看仓库 docs/getting-started.md。
十一、注意事项
- Hacker News 讨论中存在真实分歧:部分开发者认为“把最佳实践写成 Markdown”无法保证 LLM 严格遵守,效果因人而异,建议结合自身项目实际测试后再决定是否长期使用
- 仓库内 code-reviewer persona 与 code-review-and-quality 技能之间存在已知的命名/路由重叠(仓库自身 issue 中有讨论),说明该 24 技能包整体仍在快速迭代、偶有内部一致性问题,但不影响 test-driven-development 本身的独立使用
- OpenClaw、Hermes Agent 的兼容性未在已抓取材料中得到证实,标记为“未验证”
- 目前主要由 Addy Osmani 个人主导设计方向,虽有 48 位贡献者参与,仍建议关注后续维护连续性