tdd-python
Installation
SKILL.md
TDD Python Skill
Python Test-Driven Development following strict red-green-refactor cycle with pytest — sharpened by DDD at Red (model the domain first) and DRY at Refactor (deduplicate same-concept repetition only).
Description
Systematic Python implementation using TDD methodology. Tests are written first and drive design; domain vocabulary drives the tests; duplication is removed only when the same concept repeats, not when syntax coincidentally looks alike.
Discipline Layering
- Before Red — Model the Domain: Name the entity, value object, or aggregate in the business's language. Decide entity vs. value object. Reject primitive obsession — wrap
str/intinEmailAddress,Money,NewType, orpydantic.BaseModelwhen they carry rules. Keep domain logic out of FastAPI routes. - Red: Write a failing test. Name it in domain terms (
test_rejects_refund_when_amount_exceeds_daily_limit) — never mechanical (test_returns_false). - Green: Minimal code to pass. No speculative abstractions.
- Refactor — DRY with discipline: Deduplicate only when the same domain concept appears ≥3 times with the same meaning. Three similar lines beats a premature abstraction. Promote recurring primitives to value objects. When uncertain, inline.