profpowell/vanilla-breeze

tdd

Test-Driven Development workflow. Auto-activates when creating new JS/TS files. Advisory mode suggests tests first; strict mode requires them.

First seen Mar 4, 2026

Installation

$ npx skills add profpowell/vanilla-breeze --skill tdd

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from profpowell/vanilla-breeze · top by installs.

npx skills add profpowell/vanilla-breeze

Browse all from profpowell/vanilla-breeze

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 4
License LICENSE
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Write, Edit, Glob, Grep, Bash
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,413 B
  • docs SUMMARY.md 153 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Test-Driven Development Skill

Enforce test-first development workflow for JavaScript and TypeScript files.

Activation Rules

This skill auto-activates when:

  • Creating a NEW JavaScript/TypeScript file (not editing existing)
  • File is in a testable location (src/, lib/, components/, scripts/, services/, api/)

This skill stays SILENT when:

  • Editing an existing file (test reminder only if test is missing)
  • File is a config file (.config.js, .config.ts)
  • File is in skip locations (see Skip Detection)
  • Session has prototyping mode enabled (/tdd off)
  • File is generated code (.generated., *.g.ts)

Mode Configuration

Mode Behavior Default
Advisory Suggests writing tests first, provides guidance, never blocks Yes
Strict Blocks implementation until test file exists Opt-in

Advisory Mode (Default)

  • Reminds to write tests first
  • Provides test file path suggestion
  • Shows skeleton test template
  • Allows proceeding without tests

Strict Mode (Opt-in)

  • Checks for test file existence before allowing implementation
  • If test missing: outputs blocking message, suggests test file creation
  • Composes with testing skill to scaffold test

TDD Workflow

1. THINK: Define what the code should do
       |
2. TEST: Write a failing test first
       |
3. CODE: Write minimal code to pass
       |
4. REFACTOR: Clean up while tests pass
       |
5. REPEAT: Add next test case

The cycle in short:

RED -> GREEN -> REFACTOR -> REPEAT
 |       |          |
 |       |          +-- Clean up code, tests still pass
 |       +-- Write minimal code to pass test
 +-- Write a failing test first

Test File Location Convention

Source File Test File
src/foo.js test/foo.test.js
src/utils/bar.ts test/utils/bar.test.ts
src/components/Card.js test/components/Card.test.js
src/services/user.js test/services/user.test.js
scripts/quality/tool.js tests/unit/validators/tool.test.js

Compose With Testing Skills

Based on file location, auto-compose with appropriate testing skill:

Pattern Testing Skill Why
src/components/* unit-testing Component logic tests
src/services/* backend-testing Service layer tests
src/api/, src/routes/ backend-testing API endpoint tests
scripts/quality/* unit-testing CLI tool tests
e2e/, tests/ e2e-testing Browser tests
Vite project detected vitest Vite-native testing

Skip Detection

Automatic Skips

Condition Reason
Config files *.config.js, vite.config.ts, etc.
Generated files .generated., *.g.ts, dist/
Type declarations *.d.ts
Documentation *.md in docs/
Test files themselves .test.js, .spec.ts
Fixture files fixtures/, mocks/
Simple renames Git rename operation detected
Entry points index.js, main.js

Session-Based Skips

When prototyping mode is active (/tdd off), TDD checks are suspended.

Red Flags

Situation Advisory Strict
Implementation before test Reminder Block
Test file path mismatch Suggest fix Suggest fix
No assertions in test Warn Warn
Test imports missing module Expected during TDD Expected

Quick Start Template

When creating a test first, use this skeleton:

import { describe, it } from 'node:test';
import assert from 'node:assert';

describe('ModuleName', () => {
  describe('functionName', () => {
    it('should handle expected input', () => {
      // Arrange
      const input = 'test';

      // Act
      const result = functionUnderTest(input);

      // Assert
      assert.strictEqual(result, expected);
    });

    it('should handle edge case', () => {
      // Test edge case
    });

    it('should throw on invalid input', () => {
      assert.throws(() => {
        functionUnderTest(null);
      });
    });
  });
});

Mode Toggle Commands

Command Effect
/tdd advisory Suggest tests (default, never blocks)
/tdd strict Require tests before implementation
/tdd off Disable for this session (prototyping)
/tdd status Show current mode

Configuration

Project defaults in .claude/config/tdd.json:

{
  "mode": "advisory",
  "testDirectory": "test",
  "testSuffix": ".test"
}

Integration Points

Pre-Flight Check

TDD adds to JavaScript pre-flight checklist:

  • Test file exists or will be created first
  • Test covers the behavior being implemented

Completion Check

Before marking JS/TS file complete:

  • Corresponding test file exists
  • Tests pass: npm test

Related Skills

  • unit-testing - Node.js native test runner patterns
  • backend-testing - API and database testing
  • vitest - Vite-based project testing
  • e2e-testing - Playwright browser testing
  • pre-flight-check - Git workflow and approach validation
  • javascript-author - JavaScript coding patterns