# Strict TDD

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

- Repository: https://github.com/proffesor-for-testing/agentic-qe (521 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add proffesor-for-testing/agentic-qe --skill strict-tdd -g -a claude-code -y`
Codex: `npx skills add proffesor-for-testing/agentic-qe --skill strict-tdd -g -a codex -y`
Cursor: `npx skills add proffesor-for-testing/agentic-qe --skill strict-tdd -g -a cursor -y`
Gemini CLI: `npx skills add proffesor-for-testing/agentic-qe --skill strict-tdd -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add proffesor-for-testing/agentic-qe`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

```json
{
  "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

```bash
#!/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

