Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/borhen68/skillengine/test-driven-developmentnpx skills add borhen68/SkillEngine --skill test-driven-developmentgit clone --depth 1 https://github.com/borhen68/SkillEngineWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00079 | $0.03961 |
| Opus 5 | $0.00039 | $0.01980 |
| Sonnet 5 | $0.00016 | $0.00792 |
| Haiku 4.5 | $0.00008 | $0.00396 |
Grade A, and why
test-driven-development scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 407 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Test-Driven Development
Overview
Write a failing test before writing the code that makes it pass. For bug fixes, reproduce the bug with a test before attempting a fix. Tests are proof — "seems right" is not done. A codebase with good tests is an AI agent's superpower; a codebase without tests is a liability.
When to Use
- Implementing any new logic or behavior
- Fixing any bug (the Prove-It Pattern)
- Modifying existing functionality
- Adding edge case handling
- Any change that could break existing behavior
When NOT to use: Pure configuration changes, documentation updates, or static content changes that have no behavioral impact.
Related: For browser-based changes, combine TDD with runtime verification using Chrome DevTools MCP — see the Browser Testing section below.
Iron Rules
These target the failure modes that make AI-written tests worthless. Each rule is absolute — no rationalization in this skill or outside it overrides them.
- Never weaken a test to make it pass. When a test fails, the default assumption is that the code is wrong, not the test. Changing an assertion, widening a tolerance, or deleting a test case requires proof that the test was incorrect — state that proof explicitly before touching the test.
- RED must fail for the right reason. A test failing with
ImportErrororundefined is not a functionproves nothing. Read the failure output: it must show the behavioral gap the test targets (e.g.,expected 'completed', received 'pending'). A setup failure is not RED — fix the setup and re-run. - Never hardcode to the test. If the implementation special-cases test inputs (
if (id === 'test-1')), no behavior was implemented — the test was laundered into the code. Implement the general rule the test exemplifies, then ask: "would this pass for inputs the tests don't mention?" - Evidence or it didn't happen. "All tests pass" must be backed by actual runner output: suite counts, pass/fail numbers, duration. Reporting results from memory is fabrication.
- A silently skipped test is a lie.
.skip,.todo, commenting out, or deleting a test to get a green suite must be declared to the user with a reason — never done silently.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 407 lines · 79 tokens per session scan A ae814e37d63f
test-driven-development is a skill published in the GitHub repository borhen68/SkillEngine (17 stars, last pushed 2mo ago), licensed MIT. It adds 79 tokens to every session and 3,961 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
code-review-and-quality
执行多维度代码审查。用于合并任何变更之前;用于审查自己、其他 agent 或人类编写的代码;用于在代码进入主分支前从多个维度评估代码质量。.
code-simplification
为清晰度简化代码。用于在不改变行为的前提下重构代码以提升清晰度;用于代码能运行但比应有状态更难阅读、维护或扩展时;用于审查已累积不必要复杂度的代码时。.
doubt-driven-development
在每个非平凡决策成立前,用全新上下文进行对抗式审查。当正确性比速度更重要、处理不熟悉代码、风险较高(生产、安全敏感逻辑、不可逆操作),或任何自信输出现在验证比之后调试更便宜时使用。.
test-driven-development
用测试驱动开发。用于实现任何逻辑、修复任何 bug,或改变任何行为。用于需要证明代码能工作、收到 bug 报告,或即将修改现有功能时。.
api-and-interface-design
指导稳定的 API 和接口设计。设计 API、模块边界或任何公共接口时使用。创建 REST 或 GraphQL endpoint、定义模块之间的类型契约,或建立前后端边界时使用。.
ci-cd-and-automation
自动化 CI/CD pipeline 设置。用于设置或修改构建和部署 pipeline 时;用于需要自动化质量门禁、在 CI 中配置 test runners,或建立部署策略时。.