| name | forge-tdd |
| description | Enforces test-driven development workflow for Claude Code. Implements Red-Green-Refactor cycle with configurable gates. Use when writing code, implementing features, or fixing bugs. |
Test-Driven Development Workflow
The Cycle
┌─────────────────────────────────────────────────┐
│ RED → GREEN → REFACTOR → DOCUMENT → COMMIT │
└─────────────────────────────────────────────────┘
Phase 1: RED (Write Failing Test)
- Understand the requirement
- Write a test that describes expected behavior
- Run the test - it MUST fail
- If test passes, the test is wrong or feature exists
Phase 2: GREEN (Minimal Implementation)
- Write the minimum code to pass the test
- Run the test - it MUST pass
- Do not optimize, do not refactor yet
Phase 3: REFACTOR (Improve)
- Clean up the implementation
- Run tests after each change
- Tests must stay green throughout
Phase 4: DOCUMENT (If Tests Pass)
- Update docstrings/comments
- Update README if public API changed
- Only document after tests pass
Phase 5: COMMIT
- Stage changes
- Write descriptive commit message
- Tests must pass before commit
Gate Enforcement
Mode: {{TDD_GATE}}
Soft Gate (default)
- Warn if tests fail
- Allow proceeding with user acknowledgment
- Log warning in output
Hard Gate
- Block all progress until tests pass
- No exceptions
- Must fix tests before any other action
Validation
Run before committing:
~/.claude/skills/tdd/scripts/check-tests.sh
Check current gate status:
~/.claude/skills/tdd/scripts/gate-status.sh
Checklist
Copy and track progress:
TDD Progress:
- [ ] Requirement understood
- [ ] Failing test written
- [ ] Test fails for right reason
- [ ] Minimal implementation done
- [ ] Test passes
- [ ] Code refactored
- [ ] All tests still pass
- [ ] Documentation updated
- [ ] Ready to commit