mcpField
S
strict-tdd

strict-tdd

github.com/proffesor-for-testingTesting & quality51961 installsUpdated today
Repository

About strict-tdd

strict-tdd is a session-scoped skill that enforces Red-Green-Refactor by requiring a failing test before production code can be written. It is intended for coding agents working in TypeScript or JavaScript projects.

Key features

  1. 01Session-scoped TDD enforcement
  2. 02Requires a covering test file
  3. 03Requires a failing assertion before production writes
  4. 04Leaves tests and config files writable

Use cases

  1. 01Enforcing test-first changes in src/
  2. 02Preventing simultaneous test and implementation writes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill strict-tdd

After installing, type/strict-tddin Claude Code to confirm it loaded.

Bundled filesscripts/enforce-red-phase.sh

Details

From the project README

Strict TDD Mode

When activated, this skill registers a session-scoped hook that enforces Red-Green-Refactor discipline.

What It Does

Blocks writes to src/ (production code) unless:

  1. A test file exists that covers the target module
  2. That test has at least one failing assertion (Red phase confirmed)

This prevents the common agent failure of writing test + implementation simultaneously.

Activation

/strict-tdd

Remains active for the current session only.

Hook Configuration

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/strict-tdd/scripts/enforce-red-phase.sh",
        "condition": "file matches src/**/*.{ts,js} AND NOT src/**/*.test.{ts,js}"
      }
    ]
  }
}

Enforcement Logic

#!/bin/bash
# enforce-red-phase.sh
# Called before any Write/Edit to src/ files

TARGET_FILE="$1"
TEST_FILE="${TARGET_FILE%.ts}.test.ts"

if [ ! -f "$TEST_FILE" ]; then
  echo "BLOCKED: No test file found at $TEST_FILE"
  echo "Write a failing test first (Red phase), then implement."
  exit 1
fi

# Check if tests are currently failing (Red phase)
npx jest "$TEST_FILE" --passWithNoTests 2>/dev/null
if [ $? -eq 0 ]; then
  echo "WARNING: Tests are passing. Are you in Green/Refactor phase?"
  echo "If adding new behavior, write a failing test first."
fi

Gotchas

  • Only blocks src/ files — test files and config files are always writable
  • During Refactor phase, tests should still pass — this is expected, don't treat as violation
  • If test runner isn't installed, hook will error — ensure jest/vitest is available
  • Agent may try to write to a different path to bypass — the hook should match all production code paths

Comments

Markdown supported