Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/wenwuzhidao-tdd
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tdd
What's inside
- Skill name
tdd- Description
- 测试驱动开发。当用户想测试先行地构建功能或修复 bug、提到「red-green-refactor」,或想要集成测试时使用。
- License
- MIT
- Instructions
- 35 lines in SKILL.md · view on GitHub
Files (4)
- SKILL.md
- openai.yaml · agents/
- mocking.md
- tests.md
SKILL.md (first lines)
# 测试驱动开发 TDD 是红 → 绿的循环。这个技能是让那个循环产出值得保留的测试的参考:什么是好测试、测试放在哪里、反模式,以及循环的规则。每一节在每个周期都适用——在循环之前和之中查阅它们,而不是之后。 在探索代码库时,读 `CONTEXT.md`(如果存在),让测试名和接口词汇与项目的领域语言相符,并尊重你正在触碰的区域里的 ADR。 ## 什么是好测试 测试通过公共接口验证行为,而不是实现细节。代码可以整个改变;测试不该变。一个好测试读起来像一份规格说明——「用户可以用有效购物车结账」明确告诉你存在什么能力——而且它能在重构中存活,因为它不关心内部结构。 示例见 [tests.md](tests.md),mock 指南见 [mocking.md](mocking.md)。 ## 接缝——测试放在哪里 一个**接缝**是你在其处测试的公共边界:你在这个接口上观察行为而不伸进内部。测试活在接缝处,绝不针对内部。 **只在预先约定的接缝处测试。** 在写任何测试之前,写下受测的接缝并与用户确认。在未确认的接缝处不写任何测试。你不可能测试一切——预先约定接缝,是让测试努力落在关键路径和复杂逻辑上、而不是落在每个边界情况上的办法。 问:「公共接口是什么,我们该在哪些接缝处测试?」 当那个接口的形状本身成问题时——模块该有多深、接缝该在哪里、接口该暴露什么——用 `/codebase-design` 技能获取词汇。它是模块、接口、深度、接缝、适配器、杠杆和局部性这些术语的共享来源,而且它是一份供查阅的参考,不是一个供运行的会话。 ## 反模式 - **实现耦合** — mock 内部协作者、测试私有方法,或通过侧信道验证(查数据库而不是用接口)。破绽:当你重构时测试坏了,但行为并没变。 - **同义反复** — 断言以代码计算期望值的同样方式重新计算它(`expect(add(a, b)).toBe(a + b)`、一个用同样方式手工推导的快照、一个断言等于自身的常量),所以它天生就通过、永远不可能与代码相左。期望值必须来自一个独立的真理来源——一个已知良好的字面量、一个手算的例子、规格。 - **横向切片** — 先写所有测试,再写所有实现。批量测试验证的是*想象*的行为:你测的是事物的*形状*而非面向用户的行为,测试对真实改动变得不敏感,而且你在理解实现之前就绑死了测试结构。改为在**纵向切片**里工作——一个测试 → 一个实现 → 重复,每个测试都是一颗**曳光弹**,回应上一个周期教给你的东西。 ## 循环的规则 - **先红后绿。** 先写失败的测试,然后只写刚好足以让它通过的代码。不要预判未来的测试或添加投机性的功能。 - **一次一个切片。** 每个周期一个接缝、一个测试、一个最小实现。 - **重构不是循环的一部分。** 它属于审查阶段(见 `code-review` 技能),而不是红 → 绿的实现周期。
From WenWuZhiDao/mattpocock-skills-zh, MIT.
More from WenWuZhiDao/mattpocock-skills-zh
- 0.612score
git-guardrails-claude-code
WenWuZhiDao
设置 Claude Code 钩子,在危险的 git 命令(push、reset --hard、clean、branch -D 等)执行前将其拦截。当用户想阻止破坏性 git 操作、添加 git 安全钩子,或在 Claude Code 中拦截 git push/reset 时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.607score
setup-pre-commit
WenWuZhiDao
在当前仓库中设置 Husky pre-commit 钩子,配合 lint-staged(Prettier)、类型检查和测试。当用户想添加 pre-commit 钩子、设置 Husky、配置 lint-staged,或在提交时添加格式化/类型检查/测试时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.607score
code-review
WenWuZhiDao
审查自某个固定基点(commit、分支、tag 或 merge-base)以来的改动,沿两条轴进行——标准(代码是否遵循本仓库记录的编码规范?)和规格(代码是否符合源头工单/规格的要求?)。两项审查在并行子 agent 中运行,并把结果并排报告。当用户想审查一个分支、一个 PR、进行中的改动,或要求「审查自 X…
SkillBFreshness: B★ 29Claude Code +9 - 0.606score
diagnosing-bugs
WenWuZhiDao
针对疑难 bug 和性能回归的诊断循环。当用户说「诊断」/「调试这个」,或报告某个东西坏了/抛异常/失败/变慢时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
codebase-design
WenWuZhiDao
用于设计深模块的共享词汇。当用户想设计或改进一个模块的接口、寻找深化机会、决定接缝放在何处、让代码更可测试或更易于 AI 导航,或当另一个技能需要深模块词汇时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
scaffold-exercises
WenWuZhiDao
创建包含章节、习题、解答和讲解的练习目录结构,并能通过 lint 检查。当用户想搭建练习脚手架、创建练习存根,或新建一个课程章节时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
setup-ts-deep-modules
WenWuZhiDao
把 dependency-cruiser 接入一个 TypeScript 仓库,使每个包都成为深模块——实现隐藏在子文件夹里,只能通过其入口文件访问。用户触发。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
prototype
WenWuZhiDao
构建一个用完即弃的原型来回答某个设计问题。当用户想核实一个状态模型或逻辑是否感觉对劲,或者探索某个 UI 该长什么样时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
wayfinder
WenWuZhiDao
把一大块工作——超出单个 agent 会话所能容纳的量——规划为工单跟踪器上一张由决策工单构成的共享地图,逐个解决它们,直到通往目的地的路径变得清晰。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
to-tickets
WenWuZhiDao
把一个计划、规格说明或当前对话拆分成一组曳光弹式工单,每张声明它的阻塞边,发布到所配置的跟踪器——在本地为每张工单一个文件、边以文字形式,或在真实跟踪器上为原生阻塞链接。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
wizard
WenWuZhiDao
生成一个交互式 bash 向导,引导人类完成只有他们才能执行的步骤。当配置基础设施、设置凭据或 CI 密钥、操作陌生的第三方仪表盘,或执行一次性迁移或切换时使用。不要为 agent 自己就能执行的步骤调用它。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
migrate-to-shoehorn
WenWuZhiDao
将测试文件中的 `as` 类型断言迁移到 @total-typescript/shoehorn。当用户提到 shoehorn、想替换测试中的 `as`,或需要部分测试数据时使用。
SkillBFreshness: B★ 29Claude Code +9
Signals
- Stars
- 29
- Forks
- 5
- Open issues
- 0
- Last commit (this folder)
- Aug 13, 2026 (2 months ago)
- Last release
- Aug 13, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from WenWuZhiDao
- 0.612score
git-guardrails-claude-code
WenWuZhiDao
设置 Claude Code 钩子,在危险的 git 命令(push、reset --hard、clean、branch -D 等)执行前将其拦截。当用户想阻止破坏性 git 操作、添加 git 安全钩子,或在 Claude Code 中拦截 git push/reset 时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.607score
setup-pre-commit
WenWuZhiDao
在当前仓库中设置 Husky pre-commit 钩子,配合 lint-staged(Prettier)、类型检查和测试。当用户想添加 pre-commit 钩子、设置 Husky、配置 lint-staged,或在提交时添加格式化/类型检查/测试时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.607score
code-review
WenWuZhiDao
审查自某个固定基点(commit、分支、tag 或 merge-base)以来的改动,沿两条轴进行——标准(代码是否遵循本仓库记录的编码规范?)和规格(代码是否符合源头工单/规格的要求?)。两项审查在并行子 agent 中运行,并把结果并排报告。当用户想审查一个分支、一个 PR、进行中的改动,或要求「审查自 X…
SkillBFreshness: B★ 29Claude Code +9 - 0.606score
diagnosing-bugs
WenWuZhiDao
针对疑难 bug 和性能回归的诊断循环。当用户说「诊断」/「调试这个」,或报告某个东西坏了/抛异常/失败/变慢时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
codebase-design
WenWuZhiDao
用于设计深模块的共享词汇。当用户想设计或改进一个模块的接口、寻找深化机会、决定接缝放在何处、让代码更可测试或更易于 AI 导航,或当另一个技能需要深模块词汇时使用。
SkillBFreshness: B★ 29Claude Code +9 - 0.604score
to-tickets
WenWuZhiDao
把一个计划、规格说明或当前对话拆分成一组曳光弹式工单,每张声明它的阻塞边,发布到所配置的跟踪器——在本地为每张工单一个文件、边以文字形式,或在真实跟踪器上为原生阻塞链接。
SkillBFreshness: B★ 29Claude Code +9
Cite this page
tdd skill. Agent Mart. https://agentmart.dev/skills/wenwuzhidao-tdd (last updated 2026-10-24)