Install any skill in seconds. Free to start, no credit card required.
Get Started Free →nwave-ai/nw-tdd-methodology
Deep knowledge for Outside-In TDD - double-loop architecture, ATDD integration, port-to-port testing, walking skeletons, and test doubles policy
Passed 19 of 22 test cases with the skill, and 11 of 22 without it.
and 9 more in the full report
8 fixed11 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
We have finished implementing a feature slice and all unit and acceptance tests are passing GREEN. We need to create a version control commit for the modified files in our workflow step `step-42`. Provide the exact terminal command to execute this commit.
| Checked | Without skill | With skill |
|---|---|---|
| Uses the des-commit command for version control commits. | Missed | Passed |
| Passes the step identifier trailer option matching step-42. | Missed | Passed |
The instructions your model reads when the skill loads.
Code examples in this skill use Python syntax for illustration only. They are NOT prescriptive about target language. nWave is language-agnostic per the "genericity and agnosticism" mandate (2026-05-24).
Before applying TDD cycle, detect the target project's language from manifest files: package.json → TypeScript/JS (jest/vitest); Cargo.toml → Rust (cargo test/proptest); go.mod → Go (testing/ginkgo); pyproject.toml/setup.py/Pipfile → Python (pytest/hypothesis); pom.xml/build.gradle → Java/Kotlin (JUnit5/jqwik); *.csproj/*.fsproj → C#/F# (xUnit/FsCheck); Gemfile → Ruby (RSpec); Package.swift → Swift (XCTest/swift-testing).
When the target language is NOT Python: adapt EVERY code example — replace Python imports, type hints, class/function syntax, test-framework specifics with target equivalents. Project conventions ALWAYS WIN over skill examples.
Empirical anchor: skill examples being Python-only caused LLM to emit Python code in greenfield TS project despite language-agnostic mandate. Fix per F-SKILL-EXAMPLES-LANGUAGE-LEAK. Connects [[feedback_language_adapter_plugin_architecture_2026_05_24]].
Current canonical: DELIVER cycle is 3-phase: RED → GREEN → COMMIT.
all-tests-pass.des-commit (carries the Step-Id: trailer and is parallel-safe — see issue #51 / ADR-027), not raw git add/git commit. F-DES-COMMIT-PHASE-CRAFTER-DEAD-PATH guidance in commit.yaml addresses adapter-probe annotation requirement.DISTILL retains canonical AT authorship (per nw-distill Mandate 7). RED phase in DELIVER does NOT write acceptance scenarios from scratch — it only unskips the scaffolds DISTILL produced.
Legacy (5-phase v4 contract, ADR-024 era) — PREPARE / RED_ACCEPTANCE / RED_UNIT / GREEN / COMMIT — preserved for audit-log replay of pre-2026-05-07 commits. Future features use 3-phase canon. References to RED_ACCEPTANCE / RED_UNIT below describe the legacy contract; new work treats them as merged inside RED.
Default test-writing paradigm for UNIT + ACCEPTANCE tests — not optional, not "when applicable".
| Level | Default paradigm | Rationale |
|---|---|---|
| Unit | Property-based + state-delta — single-example is FALLBACK only | Property tests cover equivalence classes; the state-delta universe forbids hidden mutations on adjacent slots |
| Acceptance (Gherkin) | Property: framing with quantified preconditions; classic Scenario: is FALLBACK | Acceptance tests document system invariants; properties express the spec better than picked examples |
| Integration | UNCHANGED — single-example test verifies WIRING | The contract is "wires connect correctly", not "all input shapes succeed". One representative call suffices |
| E2E | UNCHANGED — single-example end-to-end happy path | The contract is "complete flow connects", not "all flows are equivalent". One golden walkthrough suffices |
Every unit and acceptance test you write MUST be:
test cases passed, vs 11 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.