strict-tdd

v2026.09.24

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.

GitHub
Install command
npx skhub add proffesor-for-testing/strict-tdd
Markdown
SKILL.md

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
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

.claude/skills/strict-tdd

Default branch

main

Latest commit

ffc0c6a

Tree SHA

ffab1a1