Test-Driven Development (TDD)
SkillDev toolsTest-driven development - write failing test first, then minimal code. Use before implementing any feature or bugfix.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Test-Driven Development (TDD) skill
What this skill tells your AI
The instructions your AI receives, as published by itseffi/agentic-os in .agents/skills/tdd/SKILL.md and read by ahel’s review.
Use when implementing any feature or bugfix, before writing implementation code.
The Iron Law
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
Write code before the test? Delete it. Start over.
No exceptions:
- Don't keep it as "reference"
- Don't "adapt" it while writing tests
- Delete means delete
Red-Green-Refactor
RED - Write Failing Test
Write one minimal test showing what should happen.
- One behavior
- Clear name
- Real code (no mocks unless unavoidable)
Verify RED - Watch It Fail
MANDATORY. Never skip.
- Run the test, confirm it fails (not errors)
- Failure message is expected
- Test passes? You're testing existing behavior. Fix test.
GREEN - Minimal Code
Write simplest code to pass the test.
- Just enough to pass
- No extra features
- Don't add behavior beyond the test
Verify GREEN - Watch It Pass
MANDATORY.
- Test passes
- Other tests still pass
- Output pristine (no errors, warnings)
REFACTOR - Clean Up
After green only:
- Remove duplication
- Improve names
- Extract helpers Keep tests green. Don't add behavior.
Why Order Matters
"I'll write tests after" Tests written after pass immediately. Passing immediately proves nothing. Test-first forces you to see the test fail, proving it actually tests something.
"Tests after achieve same goals" No. Tests-after answer "What does this do?" Tests-first answer "What should this do?"
"Deleting X hours of work is wasteful" Sunk cost fallacy. The time is gone. The waste is keeping code you can't trust.
Red Flags - STOP and Start Over
- Code before test
- Test after implementation
- Test passes immediately
- "I already manually tested it"
- "Tests after achieve the same purpose"
- "This is different because..."
All mean: Delete code. Start over with TDD.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "Too simple to test" | Simple code breaks. Test takes 30 seconds. |
| "I'll test after" | Tests passing immediately prove nothing. |
| "Already manually tested" | Ad-hoc ≠ systematic. No record, can't re-run. |
| "TDD will slow me down" | TDD faster than debugging later. |
Verification Checklist
Before marking work complete:
- Every new function/method has a test
- Watched each test fail before implementing
- Each test failed for expected reason
- Wrote minimal code to pass each test
- All tests pass
- Output pristine (no errors, warnings)
Can't check all boxes? You skipped TDD. Start over.
When to Use
Use this skill when the task directly matches the workflow described above.
When Not to Use
Do not use this skill when the request is unrelated, low-stakes, or better handled by a simpler direct response.
Signals
- GitHub stars
- 112
- Forks
- 21
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
tdd-itseffi- Source
- github.com/itseffi/agentic-os