Skills

Strict TDD

Use when enforcing TDD discipline, blocks writing production code unless a failing...

Install

npx skills add proffesor-for-testing/agentic-qe --skill strict-tdd -g -a claude-code -y
Category
Testing
Updated
3d ago
License
MIT
Context cost
Lightabout 434 tokens
Runs scripts
Yes, review before use

What it does

Use when enforcing TDD discipline, blocks writing production code unless a failing test exists first. Activate with /strict-tdd to enable session-scoped Red-Green-Refactor guardrail.

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

More in Testing