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/vinvcn-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. Checked Oct 25, 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
- 测试驱动开发。适用于用户想用先写测试的方式构建功能或修复缺陷、提到 “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 是 red -> green loop。这个 skill 是让该 loop 产出值得保留的 tests 的 reference:什么是好 test、tests 应该放在哪里、anti-patterns,以及 loop 的规则。每个 cycle 前和 cycle 中都要参考这些内容,而不是事后才看。 探索 codebase 时,读取 `GLOSSARY.md`(如果存在),让 test names 和 interface vocabulary 与项目 domain language 对齐,并尊重你触碰区域的 ADRs。 ## 什么是好 test Tests 应通过 public interfaces 验证 behavior,而不是 implementation details。代码可以完全改变;tests 不该随之改变。一个好 test 读起来像 specification:"user can checkout with valid cart" 能清楚说明存在什么能力;因为它不关心 internal structure,所以能承受 refactors。 示例见 [tests.md](tests.md),mocking 规则见 [mocking.md](mocking.md)。 ## Seams:tests 放在哪里 **Seam** 是你测试的 public boundary:可以观察 behavior、但不伸手进入内部的 interface。Tests 放在 seams 上,绝不针对 internals。 **只测试预先认可的 seams。** 写任何 test 前,先写下要测试的 seams 并与用户确认。未经确认的 seam 不写 test。你无法测试所有东西;提前认可 seams,才能把测试精力放在 critical paths 和复杂 logic 上,而不是每个 edge case。 询问:"What's the public interface, and which seams should we test?" 当 interface 的形状本身就是问题所在时(module 该多深、seam 该放在哪里、interface 应该暴露什么),调用 Skill 工具并指定 `codebase-design` 获取词汇。它是 module、interface、depth、seam、adapter、leverage 和 locality 这些术语的共享来源,是供查阅的 reference,而不是要运行的 session。 ## 反模式 - **Implementation-coupled**:mock internal collaborators、测试 private methods,或通过 side channel 验证(例如不用 interface 而直接查询 database)。特征是 refactor 时 test 失败,但 behavior 没变。 - **Tautological**:assertion 以和代码相同的方式重新计算 expected value(`expect(add(a, b)).toBe(a + b)`、手工按同一逻辑生成 snapshot、把 constant 断言等于它自己),因此天然 pass,永远无法与代码 disagree。Expected values 必须来自独立 source of truth:known-good literal、worked example 或 spec。 - **Horizontal slicing**:先写所有 tests,再写所有 implementation。批量 tests 验证的是 _想象中的_ behavior:你测试的是东西的 _shape_,不是 user-facing behavior;tests 会对真实变化迟钝,并在理解 implementation 前承诺 test structure。改用 **vertical slices**:一个 test -> 一个 implementation -> repeat,每个 test 都是回应上一轮学习的 **tracer bullet**。 ## Loop 的规则 - **Red before green.** 先写 failing test,再只写足够让它通过的代码。不要预判未来 tests,也不要添加 speculative features。 - **One slice at a time.** 每个 cycle 只处理一个 seam、一个 test、一个 minimal implementation。 - **Refactoring is not part of the loop.** Refactoring 属于 review stage(见 `code-review` skill),不属于 red -> green implementation cycle。
From vinvcn/mattpocock-skills-zh-CN, MIT.
More from vinvcn/mattpocock-skills-zh-CN
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.844score
diagnosing-bugs
vinvcn
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
to-tickets
vinvcn
把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
translate-skill
vinvcn
将 mattpocock/skills 的内容翻译、刷新或复核到简体中文本地化仓库 vinvcn/mattpocock-skills-zh-CN 时使用这个项目级 skill。适用于 skill files、README content、CLAUDE.md、GLOSSARY.md、docs,以及其他需要保留行为关键…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
writing-beats
vinvcn
Writing, exploit——把原始素材组装成一段节拍旅程,在某个 beat 依赖一个术语之前先把它 grounded。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
grilling
vinvcn
围绕计划、decision 或 idea 持续追问用户。适用于用户想对自己的思路做压力测试,或使用任何 “grill” 触发措辞时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
migrate-to-shoehorn
vinvcn
将测试文件从 `as` 类型断言迁移到 @total-typescript/shoehorn。适用于用户提到 shoehorn、想替换测试中的 `as`,或需要局部测试数据时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
scaffold-exercises
vinvcn
创建包含章节、题目、答案和讲解的练习目录结构,并确保通过 linting。适用于用户想 scaffold exercises、创建 exercise stubs,或设置新的课程章节时。
SkillAFreshness: A★ 5.2KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 5,245
- Forks
- 416
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (19 days ago)
- Last release
- Oct 8, 2026 (19 days 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 vinvcn
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.844score
diagnosing-bugs
vinvcn
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9
Cite this page
tdd skill. Agent Mart. https://agentmart.dev/skills/vinvcn-tdd (last updated 2026-10-24)