Boundary-focused TDD workflow enforcing L3/L4 altitude testing, property-based tests, and phase separation. Use when implementing features that require writing tests and code.
66
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./tiles/crafter/skills/tdd/SKILL.mdTDD is a design technique that uses tests as a tool. Design emerges from usage, not speculation. Short feedback loops let you course-correct immediately. The resulting architecture is testable by design, not retrofitted. We are not trying to rush towards a feature completion, it's important that the code is correct and well-designed, it's crucial to be thorough and only add what tests demand.
When starting, announce: "Using TDD skill in mode: [auto|human]"
MODE (user specifies, default: auto)
For layered architectures, see boundary-testing.md for L3/L4 altitude testing, property-based tests with fast-check, behavioral assertions, HTTP contract tests, and architecture-specific anti-patterns.
REQUIRED: Create tdd-session-log.md in the project root at the start of every TDD session. Append entries as events occur throughout the session. This is the first file written to disk — before any test comments or production code.
Entry format (one per line, append-only):
[PLAN] {description of test plan}
[RED-PREDICT] {test name} — expected failure: {reason}
[RED-CONFIRM] {test name} — actual failure: {actual error}
[GREEN] {test name} — passed with: {summary of code added}
[REFACTOR] {description of refactoring applied}[TEST] comments — these are the FIRST artifact written to disk (before any production code). Each [TEST] comment MUST include a ZOMBIES letter annotation indicating which heuristic it covers:
[TEST] Zero plus a number is equal to that number <- Z
[TEST] Add two positive numbers <- O
[TEST] Add many numbers in sequence <- M
[TEST] Adding MAX_INT overflows gracefully <- B
[TEST] Calculator exposes add() in public API <- I
[TEST] Division by zero throws ArithmeticError <- E
[TEST] Add returns a number <- S[PLAN] entry to tdd-session-log.md listing all planned tests2a98cc1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.