ワンクリックで
tdd
使用红-绿-重构循环的测试驱动开发. 当用户想要使用 TDD 构建功能或修复 bug, 提到 "测试驱动开发", "红绿重构", "red-green-refactor", 想要集成测试或请求测试优先开发时使用.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
使用红-绿-重构循环的测试驱动开发. 当用户想要使用 TDD 构建功能或修复 bug, 提到 "测试驱动开发", "红绿重构", "red-green-refactor", 想要集成测试或请求测试优先开发时使用.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Convert EPUB books into clean, narration-friendly plain text for local VibeVoice audiobook generation, with optional chunking for stable long-form TTS. Use when the user has an .epub and wants text cleanup, chunk prep, or a local audiobook workflow for VibeVoice.
Convert technical book chapters, papers, tutorials, or lecture notes into precise but listenable audiobook narration scripts, especially when the source contains LaTeX formulas and code in Lisp, C, Java, C#, or similar languages. Use this skill for math/code narration, SSML scripts, audiobook production plans, synchronized transcripts, and compact-vs-precise reading policies.
Help build, debug, refactor, test, and review ClojureDart applications that target Flutter, native mobile/desktop, web, or plain Dart. Use when the user asks about ClojureDart, .cljd files, cljd.build, deps.edn :cljd/opts, cljd.flutter, Dart package interop from Clojure syntax, Flutter widget construction in ClojureDart, hot reload, REPL, or ClojureDart testing.
使用捆绑的 Babashka 脚本修复 Emacs Lisp、Scheme、Common Lisp 等 Lisp 文件的括号/分隔符错误。 当用户提到 Lisp 括号错配、Paren Edit Death Loop、`.el/.lisp/.scm` 文件修复,或想在 Claude Code、Codex、Gemini 中批量修复非 Clojure Lisp 文件时使用。
从当前对话中提取 DDD 风格的通用语言术语表, 标记歧义并提出规范术语. 保存到 UBIQUITOUS_LANGUAGE.md. 当用户想要定义领域术语, 构建术语表, 强化术语, 创建通用语言, 提到 "通用语言", "术语表", "domain model" 或 "DDD" 时使用.
在 Clojure 项目中组合使用 `clj-nrepl-eval`、`clj-paren-repair-claude-hook` 和 `clj-paren-repair` 来完成 nREPL 求值与分隔符修复. 当用户提到 Clojure、nREPL、括号/分隔符错误、Paren Edit Death Loop、Claude hooks,或想在 Claude Code、Codex、Gemini 中验证和修复 `.clj/.cljs/.cljc/.bb` 文件时使用.
| name | tdd |
| description | 使用红-绿-重构循环的测试驱动开发. 当用户想要使用 TDD 构建功能或修复 bug, 提到 "测试驱动开发", "红绿重构", "red-green-refactor", 想要集成测试或请求测试优先开发时使用. |
核心原则: 测试应该通过公共接口验证行为, 而不是实现细节. 代码可以完全改变; 测试不应该改变.
好的测试是集成风格的: 它们通过公共 API 执行真实代码路径. 它们描述系统_做什么_, 而不是_如何做_. 一个好的测试读起来像一个规格说明 - "用户可以使用有效购物车结账"准确地告诉你存在什么能力. 这些测试在重构后仍然存活, 因为它们不关心内部结构.
坏的测试耦合到实现. 它们模拟内部协作者, 测试私有方法或通过外部方式验证(例如直接查询数据库而不是使用接口). 警告信号: 当你重构时测试中断, 但行为没有改变. 如果你重命名一个内部函数并且测试失败, 那些测试是在测试实现, 而不是行为.
参见 tests.md 获取示例和 mocking.md 获取模拟指南.
不要先写所有测试, 然后写所有实现. 这是 "水平切片" - 将 RED 视为 "写所有测试", 将 GREEN 视为 "写所有代码".
这会产生垃圾测试:
正确方法: 通过追踪弹进行垂直切片. 一个测试 → 一个实现 → 重复. 每个测试都响应你从上一个循环中学到的东西. 因为你刚刚编写了代码, 你确切地知道什么行为重要以及如何验证它.
错误(水平):
RED: test1, test2, test3, test4, test5
GREEN: impl1, impl2, impl3, impl4, impl5
正确(垂直):
RED→GREEN: test1→impl1
RED→GREEN: test2→impl2
RED→GREEN: test3→impl3
...
在编写任何代码之前:
询问: "公共接口应该是什么样子? 哪些行为最重要测试?"
你不能测试所有东西. 与用户确认哪些行为最重要. 将测试工作集中在关键路径和复杂逻辑上, 而不是每个可能的边缘情况.
编写一个测试, 确认系统的一件事:
RED: 为第一个行为编写测试 → 测试失败
GREEN: 编写最小代码以通过 → 测试通过
这是你的追踪弹 - 证明路径端到端工作.
对于每个剩余行为:
RED: 编写下一个测试 → 失败
GREEN: 通过的最小代码 → 通过
规则:
所有测试通过后, 寻找重构候选:
永远不要在 RED 时重构. 先到达 GREEN.
[ ] 测试描述行为, 而不是实现
[ ] 测试仅使用公共接口
[ ] 测试将在内部重构后存活
[ ] 代码对于此测试是最小的
[ ] 没有添加投机性功能