Overview
The tdd-workflow skill teaches the Test-Driven Development methodology, focusing on the RED-GREEN-REFACTOR cycle. It provides guidance on writing tests first, implementing minimal code, and refactoring with confidence.What This Skill Provides
- TDD Cycle: The RED-GREEN-REFACTOR loop
- Three Laws of TDD: Core principles for test-first development
- RED Phase: Writing failing tests that define behavior
- GREEN Phase: Implementing minimal code to pass tests
- REFACTOR Phase: Improving code quality while keeping tests green
- Test Prioritization: Which tests to write first
- AI-Augmented TDD: Multi-agent patterns for TDD
The TDD Cycle
Three Laws of TDD
- Write production code only to make a failing test pass
- Write only enough test to demonstrate failure
- Write only enough code to make the test pass
Key Phases
RED Phase Principles
| Focus | Example |
|---|---|
| Behavior | ”should add two numbers” |
| Edge cases | ”should handle empty input” |
| Error states | ”should throw for invalid data” |
- Test must fail first
- Test name describes expected behavior
- One assertion per test (ideally)
GREEN Phase Principles
| Principle | Meaning |
|---|---|
| YAGNI | You Aren’t Gonna Need It |
| Simplest thing | Write the minimum to pass |
| No optimization | Just make it work |
- Don’t write unneeded code
- Don’t optimize yet
- Pass the test, nothing more
REFACTOR Phase Principles
| Area | Action |
|---|---|
| Duplication | Extract common code |
| Naming | Make intent clear |
| Structure | Improve organization |
| Complexity | Simplify logic |
- All tests must stay green
- Small incremental changes
- Commit after each refactor
Use Cases
When to Use TDD
| Scenario | TDD Value |
|---|---|
| New feature | High |
| Bug fix | High (write test first) |
| Complex logic | High |
| Exploratory | Low (spike, then TDD) |
| UI layout | Low |
Example Scenarios
- New Feature: “Build a user registration system using TDD”
- Bug Fix: “Write a test that reproduces the bug, then fix it”
- Refactoring: “Refactor this module with test coverage”
- Complex Logic: “Implement rate limiting with TDD”
Test Prioritization
| Priority | Test Type |
|---|---|
| 1 | Happy path |
| 2 | Error cases |
| 3 | Edge cases |
| 4 | Performance |
AAA Pattern
Every test follows:| Step | Purpose |
|---|---|
| Arrange | Set up test data |
| Act | Execute code under test |
| Assert | Verify expected outcome |
Anti-Patterns to Avoid
| ❌ Don’t | ✅ Do |
|---|---|
| Skip the RED phase | Watch test fail first |
| Write tests after | Write tests before |
| Over-engineer initial | Keep it simple |
| Multiple asserts | One behavior per test |
| Test implementation | Test behavior |
AI-Augmented TDD
Multi-Agent Pattern
| Agent | Role |
|---|---|
| Agent A | Write failing tests (RED) |
| Agent B | Implement to pass (GREEN) |
| Agent C | Optimize (REFACTOR) |
Related Skills
- testing-patterns: General testing principles
- webapp-testing: E2E testing with Playwright
- clean-code: Code quality during refactoring
- code-review-checklist: Reviewing TDD code
Which Agents Use This Skill
- test-engineer: Primary user for TDD methodology
Workflow Example
Step 1: RED
Step 2: GREEN
Step 3: REFACTOR
Tools Available
- Read, Write, Edit: For test and implementation files
- Glob, Grep: For finding test patterns
- Bash: For running tests in the cycle
Remember: The test is the specification. If you can’t write a test, you don’t understand the requirement.
