Install any skill in seconds. Free to start, no credit card required.
Get Started Free →RED-GREEN-REFACTOR cycle with strict phase gates for TDD.
.claude/skills/notque-test-driven-development/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-20 | ✓→✗ | ▼ Worse | 294% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 306% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 69% | 0% |
| case-09 | ✓→✓ | = Same ✓ | 6% | 0% |
Enforce the RED-GREEN-REFACTOR cycle for all code changes. Tests are written before implementation code, verified to fail for the right reasons, and maintained through disciplined development cycles.
| Signal | Load These Files | Why | |---|---|---| | errors, error handling | error-handling.md | Loads detailed guidance from error-handling.md. | | full RED-GREEN-REFACTOR walkthroughs in Go, Python, JavaScript | examples.md | Loads detailed guidance from examples.md. | | detailed phase steps, rationale, or language-specific test commands | phase-guidance.md | Loads detailed guidance from phase-guidance.md. |
Before starting any TDD cycle, read and follow repository CLAUDE.md files. Project instructions override default TDD behaviors because local conventions (test frameworks, directory layout, naming) vary across codebases.
Full phase guidance (steps, rationale, code examples, language commands) lives in references/phase-guidance.md. Load it when you need detailed instructions or examples. The sections below are the lean phase skeleton plus the mandatory gates.
Write a test that describes the desired behavior before any implementation exists. Use specific assertions, descriptive names, Arrange-Act-Assert pattern, and one concept per test. Run the test and show full output. Details: references/phase-guidance.md.
Proceed to the GREEN phase only after all of these are true:
The test must fail because the feature is not implemented, NOT because of syntax errors, import errors, wrong test setup, or unrelated failures. Expected patterns per language and recovery steps: references/phase-guidance.md.
Write ONLY enough code to make the failing test pass. No extra features. Hardcoded values are OK initially. Over-engineering and correct examples: references/phase-guidance.md.
Run the test and the full suite; show complete output. Never summarize. Debug guidance: references/phase-guidance.md.
Proceed to the REFACTOR phase only after all of these are true:
Improve code quality without changing behavior. Establish a green baseline first, refactor incrementally, run tests after every step. Test behavior, not internals. Decision criteria table and behavior-vs-internals examples: references/phase-guidance.md.
Mark the task complete only after all of these are true:
Commit the test and implementation together as an atomic unit. Run the full suite, commit with a descriptive message, clean up temporary files. Report facts without self-congratulation.
Each feature gets its own RED-GREEN-REFACTOR cycle. Do not batch multiple features into one cycle. Wrong-vs-correct cycle examples: references/phase-guidance.md.
Load references/error-handling.md when a cycle is stuck. It covers: test passes before implementation, test fails for wrong reason, tests pass but feature does not work, refactoring breaks tests.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,206 | 15,737 | +3% | 1 | 1 | 0% | 3,256 | 4,270 | +31% | 0 | 0 | — |
case-02 | fail→fail | 16,730 | 2,009 | -88% | 1 | 1 | 0% | 3,315 | 1,301 | -61% | 0 | 0 | — |
case-03 | fail→fail | 13,886 | 4,874 | -65% | 1 | 1 | 0% | 2,963 | 1,315 | -56% | 0 | 0 | — |
case-04 | fail→fail | 11,054 | 9,365 | -15% | 1 | 1 | 0% | 2,057 | 3,016 | +47% | 0 | 0 | — |
case-05 | fail→fail | 10,048 | 6,833 | -32% | 1 | 1 | 0% | 1,934 | 2,283 | +18% | 0 | 0 | — |
case-06 | fail→fail | 2,301 | 4,028 | +75% | 1 | 1 | 0% | 368 | 1,728 | +370% | 0 | 0 | — |
case-07 | pass→pass | 16,862 | 20,845 | +24% | 1 | 1 | 0% | 3,369 | 5,688 | +69% | 0 | 0 | — |
case-08 | fail→pass | 12,905 | 8,646 | -33% | 1 | 1 | 0% | 2,617 | 2,790 | +7% | 0 | 0 | — |
case-09 | pass→pass | 11,595 | 6,223 | -46% | 1 | 1 | 0% | 1,965 | 2,078 | +6% | 0 | 0 | — |
case-10 | pass→pass | 9,697 | 8,322 | -14% | 1 | 1 | 0% | 1,836 | 2,647 | +44% | 0 | 0 | — |
case-11 | pass→pass | 6,098 | 3,820 | -37% | 1 | 1 | 0% | 968 | 1,707 | +76% | 0 | 0 | — |
case-12 | pass→pass | 8,071 | 4,985 | -38% | 1 | 1 | 0% | 1,378 | 1,962 | +42% | 0 | 0 | — |
case-13 | pass→pass | 9,304 | 4,558 | -51% | 1 | 1 | 0% | 1,425 | 1,829 | +28% | 0 | 0 | — |
case-14 | pass→pass | 10,512 | 4,763 | -55% | 1 | 1 | 0% | 1,787 | 1,772 | -1% | 0 | 0 | — |
case-15 | pass→pass | 9,504 | 7,352 | -23% | 1 | 1 | 0% | 1,491 | 2,347 | +57% | 0 | 0 | — |
case-16 | pass→pass | 10,010 | 8,405 | -16% | 1 | 1 | 0% | 1,665 | 2,364 | +42% | 0 | 0 | — |
case-17 | pass→pass | 10,346 | 5,772 | -44% | 1 | 1 | 0% | 2,166 | 2,159 | -0% | 0 | 0 | — |
case-18 | pass→pass | 13,255 | 8,253 | -38% | 1 | 1 | 0% | 2,270 | 2,560 | +13% | 0 | 0 | — |
case-19 | pass→pass | 8,476 | 11,450 | +35% | 1 | 1 | 0% | 1,702 | 3,111 | +83% | 0 | 0 | — |
case-20 | pass→fail | 6,126 | 21,051 | +244% | 1 | 1 | 0% | 1,344 | 5,295 | +294% | 0 | 0 | — |
case-21 | pass→fail | 5,040 | 16,346 | +224% | 1 | 1 | 0% | 1,001 | 4,063 | +306% | 0 | 0 | — |
case-22 | pass→pass | 3,613 | 6,270 | +74% | 1 | 1 | 0% | 663 | 2,176 | +228% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -50 percentage points is the difference between those two pass rates over the 21 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.