
Tdd Workflow
Run a strict test-first workflow with 80%+ unit, integration, and E2E coverage whenever you add features, fix bugs, or refactor.
Overview
tdd-workflow is an agent skill most often used in Ship (also Build) that enforces test-driven development with 80%+ unit, integration, and E2E coverage before you treat code as done.
Install
npx skills add https://github.com/affaan-m/everything-claude-code --skill tdd-workflowWhat is this skill?
- Enforces tests-before-code on every change (features, bugs, refactors, APIs, components)
- Targets 80%+ combined unit, integration, and E2E coverage with edge, error, and boundary cases
- Maps test layers: unit (pure logic), integration (API/DB/services), E2E (Playwright user flows)
- Requires Git checkpoint commits after each TDD stage with stage-specific evidence in messages
- Activates for new functionality, bug fixes, refactors, endpoints, and UI components
- Minimum 80% coverage (unit + integration + E2E)
- Three test layers: unit, integration, and E2E (Playwright)
- Git checkpoint commit after each TDD stage on the active branch
Adoption & trust: 6.2k installs on skills.sh; 210k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are shipping features or fixes without a test-first ritual, so regressions and untested edge cases slip through until production.
Who is it for?
Solo builders on SaaS or APIs who want agent-assisted TDD with Playwright E2E and traceable Git checkpoints on active branches.
Skip if: Throwaway spikes you will delete the same day, or repos where leadership explicitly forbids automated tests—use a lighter path unless you adopt the full workflow.
When should I use this skill?
Writing new features or functionality, fixing bugs or issues, refactoring existing code, adding API endpoints, or creating new components.
What do I get? / Deliverables
You get failing tests first, passing implementation second, measurable 80%+ coverage, and optional per-stage Git checkpoints that document each TDD step.
- Failing-then-passing test suites per layer
- Implementation code meeting 80%+ coverage bar
- Optional staged Git commits documenting each TDD phase
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
TDD is cataloged under Ship because the skill’s contract is coverage gates, test types, and evidence—not just writing production code. Testing is the canonical shelf: tests-before-code, 80%+ coverage, and Playwright E2E for critical flows are the core deliverable.
Where it fits
Add a REST endpoint by defining integration tests for auth and payloads before implementing the handler.
Ship a new React component after unit tests for state logic and a Playwright flow for the happy path.
Reproduce a bug with a failing test, fix minimally, and confirm 80%+ coverage including error boundaries.
Walk reviewers through per-stage Git checkpoints that show test-first evidence for a refactor.
How it compares
Use instead of implementing first and bolting on tests later when you need enforced coverage tiers and checkpointed evidence.
Common Questions / FAQ
Who is tdd-workflow for?
Indie and solo developers using Claude Code, Cursor, or Codex who want consistent TDD with unit, integration, and E2E layers—not ad-hoc “add a test if you remember.”
When should I use tdd-workflow?
During Build when adding endpoints or components, during Ship when fixing bugs or refactoring with regression coverage, and before merge when you need 80%+ coverage and Playwright flows on critical paths.
Is tdd-workflow safe to install?
The skill drives local test runs and Git commits in your repo; review the Security Audits panel on this Prism page and treat checkpoint commits as task-scoped, not rewritten until the workflow finishes.
SKILL.md
READMESKILL.md - Tdd Workflow
# Test-Driven Development Workflow This skill ensures all code development follows TDD principles with comprehensive test coverage. ## When to Activate - Writing new features or functionality - Fixing bugs or issues - Refactoring existing code - Adding API endpoints - Creating new components ## Core Principles ### 1. Tests BEFORE Code ALWAYS write tests first, then implement code to make tests pass. ### 2. Coverage Requirements - Minimum 80% coverage (unit + integration + E2E) - All edge cases covered - Error scenarios tested - Boundary conditions verified ### 3. Test Types #### Unit Tests - Individual functions and utilities - Component logic - Pure functions - Helpers and utilities #### Integration Tests - API endpoints - Database operations - Service interactions - External API calls #### E2E Tests (Playwright) - Critical user flows - Complete workflows - Browser automation - UI interactions ### 4. Git Checkpoints - If the repository is under Git, create a checkpoint commit after each TDD stage - Do not squash or rewrite these checkpoint commits until the workflow is complete - Each checkpoint commit message must describe the stage and the exact evidence captured - Count only commits created on the current active branch for the current task - Do not treat commits from other branches, earlier unrelated work, or distant branch history as valid checkpoint evidence - Before treating a checkpoint as satisfied, verify that the commit is reachable from the current `HEAD` on the active branch and belongs to the current task sequence - The preferred compact workflow is: - one commit for failing test added and RED validated - one commit for minimal fix applied and GREEN validated - one optional commit for refactor complete - Separate evidence-only commits are not required if the test commit clearly corresponds to RED and the fix commit clearly corresponds to GREEN ## TDD Workflow Steps ### Step 1: Write User Journeys ``` As a [role], I want to [action], so that [benefit] Example: As a user, I want to search for markets semantically, so that I can find relevant markets even without exact keywords. ``` ### Step 2: Generate Test Cases For each user journey, create comprehensive test cases: ```typescript describe('Semantic Search', () => { it('returns relevant markets for query', async () => { // Test implementation }) it('handles empty query gracefully', async () => { // Test edge case }) it('falls back to substring search when Redis unavailable', async () => { // Test fallback behavior }) it('sorts results by similarity score', async () => { // Test sorting logic }) }) ``` ### Step 3: Run Tests (They Should Fail) ```bash npm test # Tests should fail - we haven't implemented yet ``` This step is mandatory and is the RED gate for all production changes. Before modifying business logic or other production code, you must verify a valid RED state via one of these paths: - Runtime RED: - The relevant test target compiles successfully - The new or changed test is actually executed - The result is RED - Compile-time RED: - The new test newly instantiates, references, or exercises the buggy code path - The compile failure is itself the intended RED signal - In either case, the failure is caused by the intended business-logic bug, undefined behavior, or missing implementation - The failure is not caused only by unrelated syntax errors, broken test setup, missing dependencies, or unrelated regressions A test that was only written but not compiled and executed does not count as RED. Do not edit production code until this RED state is confirmed. If the repository is under Git, create a checkpoint commit immediately after this stage is validated. Recommende