Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guide red-green-refactor TDD with test generation, coverage-gap analysis, and multi- framework support. Use when writing tests first, analyzing coverage, generating test stubs, or converting tests between Jest, Pytest, JUnit, and Vitest.
.claude/skills/borghei-tdd-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 965% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -3% | 0% |
The agent guides red-green-refactor TDD workflows, generates framework-specific test stubs from requirements, parses coverage reports to identify prioritized gaps, and calculates test quality metrics including smell detection and assertion density. Supports Jest, Pytest, JUnit, Vitest, and Mocha.
Before generating tests or analyzing coverage, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
bash# Generate test cases from requirements (Python API) from test_generator import TestGenerator, TestFramework gen = TestGenerator(framework=TestFramework.PYTEST, language="python") cases = gen.generate_from_requirements(requirements) # Analyze coverage gaps from LCOV report from coverage_analyzer import CoverageAnalyzer analyzer = CoverageAnalyzer() analyzer.parse_coverage_report(content, "lcov") gaps = analyzer.identify_gaps(threshold=80.0) # Guide TDD cycle from tdd_workflow import TDDWorkflow wf = TDDWorkflow() wf.start_cycle("User can reset password via email")
Load the reference that matches the task — keep this file lean and pull detail on demand:
This skill covers:
This skill does NOT cover:
senior-qa for E2E patterns and senior-devops for load testingsenior-security and senior-secops skills| Skill | Integration | Data Flow | |-------|-------------|-----------| | senior-qa | Generated test stubs feed into QA review workflows; QA coverage standards inform threshold settings | test_generator.py output → QA review → approved test suite | | code-reviewer | Metrics calculator output provides quantitative data for code review checklists | metrics_calculator.py quality report → code review scoring | | senior-fullstack | Scaffolded projects include test infrastructure; TDD guide generates tests for scaffolded modules | project_scaffolder.py output → test_generator.py input | | senior-devops | Coverage reports from CI pipelines are parsed by coverage analyzer; recommendations feed back into pipeline gates | CI coverage artifact → coverage_analyzer.py → pass/fail gate | | senior-security | Edge-case fixtures for auth and API scenarios complement security-focused test plans | fixture_generator.py auth/API edge cases → security test plan | | tech-stack-evaluator | Framework detection informs stack evaluation; test quality metrics feed into technology assessment | format_detector.py analysis → stack evaluation input |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 17,936 | 13,286 | -26% | 1 | 1 | 0% | 3,007 | 3,888 | +29% | 0 | 0 | — |
case-02 | pass→pass | 9,070 | 9,311 | +3% | 1 | 1 | 0% | 1,427 | 2,785 | +95% | 0 | 0 | — |
case-03 | fail→pass | 11,465 | 18,245 | +59% | 1 | 1 | 0% | 2,189 | 4,767 | +118% | 0 | 0 | — |
case-04 | fail→fail | 4,340 | 5,567 | +28% | 1 | 1 | 0% | 660 | 2,252 | +241% | 0 | 0 | — |
case-05 | fail→pass | 13,857 | 4,615 | -67% | 1 | 1 | 0% | 2,324 | 2,173 | -6% | 0 | 0 | — |
case-06 | fail→fail | 19,908 | 9,092 | -54% | 1 | 1 | 0% | 2,109 | 2,322 | +10% | 0 | 0 | — |
case-07 | fail→pass | 1,652 | 3,493 | +111% | 1 | 1 | 0% | 192 | 2,045 | +965% | 0 | 0 | — |
case-08 | fail→pass | 14,303 | 3,158 | -78% | 1 | 1 | 0% | 2,149 | 1,967 | -8% | 0 | 0 | — |
case-09 | fail→pass | 13,835 | 5,216 | -62% | 1 | 1 | 0% | 2,255 | 2,182 | -3% | 0 | 0 | — |
case-10 | fail→pass | 12,352 | 2,472 | -80% | 1 | 1 | 0% | 1,726 | 1,823 | +6% | 0 | 0 | — |
case-11 | fail→pass | 11,724 | 2,311 | -80% | 1 | 1 | 0% | 1,784 | 1,784 | 0% | 0 | 0 | — |
case-12 | pass→pass | 8,682 | 2,901 | -67% | 1 | 1 | 0% | 1,284 | 1,841 | +43% | 0 | 0 | — |
case-13 | fail→pass | 5,622 | 2,987 | -47% | 1 | 1 | 0% | 759 | 1,886 | +148% | 0 | 0 | — |
case-14 | fail→pass | 15,405 | 3,267 | -79% | 1 | 1 | 0% | 2,606 | 1,938 | -26% | 0 | 0 | — |
case-15 | fail→pass | 13,870 | 3,394 | -76% | 1 | 1 | 0% | 2,206 | 1,976 | -10% | 0 | 0 | — |
case-16 | fail→pass | 9,341 | 2,694 | -71% | 1 | 1 | 0% | 1,375 | 1,825 | +33% | 0 | 0 | — |
case-17 | fail→pass | 12,061 | 3,227 | -73% | 1 | 1 | 0% | 1,614 | 1,943 | +20% | 0 | 0 | — |
case-18 | fail→pass | 9,775 | 2,153 | -78% | 1 | 1 | 0% | 1,434 | 1,742 | +21% | 0 | 0 | — |
case-19 | pass→pass | 12,390 | 10,545 | -15% | 1 | 1 | 0% | 1,732 | 2,949 | +70% | 0 | 0 | — |
case-20 | pass→pass | 17,833 | 13,247 | -26% | 1 | 1 | 0% | 2,507 | 3,365 | +34% | 0 | 0 | — |
case-21 | pass→pass | 16,437 | 8,086 | -51% | 1 | 1 | 0% | 2,782 | 2,644 | -5% | 0 | 0 | — |
case-22 | pass→pass | 16,797 | 10,777 | -36% | 1 | 1 | 0% | 2,433 | 2,916 | +20% | 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. The headline lift of +59 percentage points is the difference between those two pass rates over the 22 comparable cases.
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.