ClaudeMod
Back to browse
Hooks

TDD Guard

Pre-tool hook that blocks code edits unless a failing test exists first — enforces strict test-first discipline by refusing file writes without a red test in scope.

nizos2,151 starsAdded 3 months ago

TDD Guard

npm version npm downloads CI Security License: MIT

Automated Test-Driven Development enforcement for Claude Code.

TDD Guard blocking TDD violations

TDD Guard ensures Claude Code follows Test-Driven Development principles. When your agent tries to skip tests or over-implement, TDD Guard blocks the action and explains what needs to happen instead.

Features

  • Test-First Enforcement - Blocks implementation without failing tests
  • Minimal Implementation - Prevents code beyond current test requirements
  • Lint Integration - Enforces refactoring using your linting rules
  • Customizable Rules - Adjust validation rules to match your TDD style
  • Flexible Validation - Choose faster or more capable models for your needs
  • Session Control - Toggle on and off mid-session

Getting Started

Requirements

  • Node.js 22+
  • A supported test framework (Vitest, Jest, Storybook, pytest, PHPUnit, Go, Rust, RSpec, Minitest)

Installation

Open Claude Code in your project and run:

  1. /plugin marketplace add nizos/tdd-guard
  2. /plugin install tdd-guard@tdd-guard
  3. /tdd-guard:setup

This adds the marketplace, installs the plugin, and configures the test reporter for your project. You may need to restart your terminal session or IDE extension for the setup skill to appear. For manual installation and configuration, see the installation guide.

Configuration

Security

TDD Guard hooks run with your user permissions. We maintain automated security scanning, dependency audits, and welcome source code review. See Claude Code's security considerations for more on hook safety.

Development

Contributing

Contributions are welcome! See the contributing guidelines to get started.

Contributors:

Roadmap

  • Expand language and test framework support
  • Validate file modifications made through MCPs and shell commands
  • Encourage meaningful refactoring opportunities when tests are green
  • Add support for multiple concurrent sessions per project

Related Projects

Probity

Enforces TDD and other policies across Claude Code, Codex, and Copilot. Works with any language and test runner. Uses session activity for validation, giving it a fuller picture when distinguishing refactors from new behavior.

For new projects, Probity is the better starting point. Stay on TDD Guard if you use its lint integration. Probity doesn't have an equivalent yet.

Support

  • Discussions - Ask questions and share ideas
  • Issues - Report bugs and request features

License

MIT

More Hooks

Hooks

Multi-Agent Observability Hooks

Hooks for observing and debugging multi-agent Claude Code sessions — trace inter-agent messages, log tool calls, visualize agent graphs, and detect loops.

observabilitymulti-agenttracing+3
by Disler
GitHub
Hooks

Claude Code Usage Monitor

Hooks that monitor and enforce Claude Code API usage limits — track daily token spend, set budget alerts, and auto-pause when limits are reached.

usagebudgetlimits+3
by Maciek
GitHub
Hooks

Claudio

Audio notification hooks for Claude Code — get voice alerts when Claude finishes a task, needs your input, or hits an error. Never miss a completed session again.

audionotificationsvoice+3
by ctoth
GitHub

Command Palette

Search for a command to run...