tdd
Skill5 starsChanged 9 months agoMITView on GitHub
Test-Driven Development methodology and red-green-refactor workflow (formerly test-tdd). This skill should be used when practicing TDD, writing tests first, designing tests before implementation, or reviewing test-first approaches. Triggers on "write tests first", "test before code", "red green refactor", "test driven development". This skill does NOT cover Vitest framework specifics (use vitest skill) or API mocking with MSW (use msw skill).
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
RED: Write a failing test that defines desired behavior
- Distinctive: line 22
GREEN: Write minimal code to make the test pass
- Distinctive: line 109
Read individual reference files for detailed explanations and code examples:
“Common” is measured: kept by at least 6 in 10 of the 186 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Community Test-Driven Development Best Practices
Comprehensive guide to Test-Driven Development practices, designed for AI agents and LLMs. Contains 42 rules across 8 categories, prioritized by impact to guide test writing, refactoring, and code generation.
When to Apply
Reference these guidelines when:
- Writing new tests using TDD workflow
- Implementing the red-green-refactor cycle
- Designing test structure and organization
- Creating test data and fixtures
- Reviewing or refactoring existing test suites
TDD Workflow
- RED: Write a failing test that defines desired behavior
- GREEN: Write minimal code to make the test pass
- REFACTOR: Clean up code while keeping tests green
- Repeat for each new behavior
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
| 1 | Red-Green-Refactor Cycle | CRITICAL | cycle- |
| 2 | Test Design Principles | CRITICAL | design- |
| 3 | Test Isolation & Dependencies | HIGH | isolate- |
| 4 | Test Data Management | HIGH | data- |
| 5 | Assertions & Verification | MEDIUM | assert- |
| 6 | Test Organization & Structure | MEDIUM | org- |
| 7 | Test Performance & Reliability | MEDIUM | perf- |
| 8 | Test Pyramid & Strategy | LOW | strat- |
Quick Reference
1. Red-Green-Refactor Cycle (CRITICAL)
cycle-write-test-first- Write the Test Before the Implementationcycle-minimal-code-to-pass- Write Only Enough Code to Pass the Testcycle-refactor-after-green- Refactor Immediately After Greencycle-verify-test-fails-first- Verify the Test Fails Before Writing Codecycle-small-increments- Take Small Incremental Stepscycle-maintain-test-list- Maintain a Test List
2. Test Design Principles (CRITICAL)
design-test-behavior-not-implementation- Test Behavior Not Implementationdesign-one-assertion-per-test- One Logical Assertion Per Testdesign-descriptive-test-names- Use Descriptive Test Namesdesign-aaa-pattern- Follow the Arrange-Act-Assert Patterndesign-test-edge-cases- Test Edge Cases and Boundariesdesign-avoid-logic-in-tests- Avoid Logic in Tests
3. Test Isolation & Dependencies (HIGH)
isolate-mock-external-dependencies- Mock External Dependenciesisolate-no-shared-state- Avoid Shared Mutable State Between Testsisolate-deterministic-tests- Write Deterministic Testsisolate-prefer-stubs-over-mocks- Prefer Stubs Over Mocks for Queriesisolate-use-dependency-injection- Use Dependency Injection for Testability
4. Test Data Management (HIGH)
data-use-factories- Use Factories for Test Data Creationdata-minimal-setup- Keep Test Setup Minimaldata-avoid-mystery-guests- Avoid Mystery Guestsdata-unique-identifiers- Use Unique Identifiers Per Testdata-builder-pattern- Use Builder Pattern for Complex Objects
5. Assertions & Verification (MEDIUM)
assert-specific-assertions- Use Specific Assertionsassert-error-messages- Assert on Error Messages and Typesassert-no-assertions-antipattern- Every Test Must Have Assertionsassert-custom-matchers- Create Custom Matchers for Domain Assertionsassert-snapshot-testing- Use Snapshot Testing Judiciously
6. Test Organization & Structure (MEDIUM)
org-group-by-behavior- Group Tests by Behavior Not Methodorg-file-structure- Follow Consistent Test File Structureorg-setup-teardown- Use Setup and Teardown Hooks Appropriatelyorg-test-utilities- Extract Reusable Test Utilitiesorg-parameterized-tests- Use Parameterized Tests for Variations
7. Test Performance & Reliability (MEDIUM)
perf-fast-unit-tests- Keep Unit Tests Under 100msperf-avoid-network-calls- Eliminate Network Calls in Unit Testsperf-fix-flaky-tests- Fix Flaky Tests Immediatelyperf-parallelize-tests- Parallelize Independent Testsperf-avoid-sleep- Avoid Arbitrary Sleep Calls
8. Test Pyramid & Strategy (LOW)
strat-test-pyramid- Follow the Test Pyramidstrat-mutation-testing- Use Mutation Testing to Validate Test Qualitystrat-coverage-targets- Set Meaningful Coverage Targetsstrat-integration-boundaries- Test Integration at Service Boundariesstrat-e2e-critical-paths- Limit E2E Tests to Critical User Paths
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
- cycle-write-test-first - Write the Test Before the Implementation
- design-aaa-pattern - Follow the Arrange-Act-Assert Pattern
Related Skills
- For Vitest framework specifics, see
vitestskill - For API mocking with MSW, see
mswskill
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
Other versions193 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- PyModel/react-frontend-skills★ 2398% same
Wrote their own version · 192
- mattpocock/skills★ 309ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
- Yeachan-Heo/oh-my-claudecode★ 40ksame name
- QuivrHQ/quivr★ 40ksame name
- ccusage/ccusage★ 19ksame name
- ryoppippi/ccusage★ 19ksame name
- MODSetter/SurfSense★ 17ksame name
- GreyDGL/PentestGPT★ 16ksame name
- open-metadata/OpenMetadata★ 16ksame name
- prowler-cloud/prowler★ 15ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use ketchup-video, principle-laziness-protocol and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
3metaJunSkillketchup-video
Catch the user up like /ketchup, with a short subtitled video of slides for what happened and the waiting calls as text under it. Use for /ketchup-video.
Also in 10 projects that use this
jaydubya818Skillprinciple-laziness-protocol
Apply when a refactor is adding wrappers or abstractions instead of simplifying.
Also in 43 projects that use this
jaydubya818Skillprinciple-make-operations-idempotent
Apply when an operation must tolerate retries after partial completion.
Also in 43 projects that use this
bnemaSkillsetup-pstack
Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.
Also in 25 projects that use this
- +8 more from jaydubya818
In this repository32 other files it gives its agents.
- skills/feature-arch/AGENTS.mdAGENTS.md
- skills/msw/AGENTS.mdAGENTS.md
- skills/nextjs/AGENTS.mdAGENTS.md
- skills/nuqs/AGENTS.mdAGENTS.md
- skills/playwright/AGENTS.mdAGENTS.md
- skills/react-hook-form/AGENTS.mdAGENTS.md
- skills/shadcn/AGENTS.mdAGENTS.md
- skills/tailwind/AGENTS.mdAGENTS.md
- skills/tanstack-query/AGENTS.mdAGENTS.md
- skills/tdd/AGENTS.mdAGENTS.md
- skills/ui-design/AGENTS.mdAGENTS.md
- skills/vercel-composition-patterns/AGENTS.mdAGENTS.md
- skills/vercel-react-best-practices/AGENTS.mdAGENTS.md
- skills/vitest/AGENTS.mdAGENTS.md
- skills/zod/AGENTS.mdAGENTS.md
- feature-archSkill
- mswSkill
- nextjsSkill
- nuqsSkill
- playwrightSkill
- react-hook-formSkill
- reactSkill
- shadcnSkill
- tailwindSkill
- tanstack-querySkill
- typescriptSkill
- ui-designSkill
- vercel-composition-patternsSkill
- vercel-react-best-practicesSkill
- vitestSkill
- web-design-guidelinesSkill
- zodSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

