npx claudepluginhub dominik-rehse/stddSpec and test driven development for Claude Code. Enforces spec-first, one-test-at-a-time TDD via slash commands, a PreToolUse guard hook, and a git pre-commit gate.
Spec and test driven development for Claude Code. Enforces spec-first, one-test-at-a-time TDD through three layers: a PreToolUse guard hook, a git pre-commit gate, and slash commands that embed the red-green-refactor loop.
From GitHub (requires the repo to be public):
/plugin marketplace add dominik-rehse/stdd
/plugin install stdd@stdd
The first command registers the repo as a marketplace; the second installs the plugin.
Local / development (no GitHub required):
claude --plugin-dir ./stdd
Once Claude Code starts, run /stdd:setup in your project to finish initialisation (see
Quick start below).
| Layer | What it does | When it fires |
|---|---|---|
| PreToolUse hook | Blocks writes of new src/ files unless a spec and a test already exist | Every Write call during the session |
| Git pre-commit | Blocks commits while any test is failing | git commit |
| Slash commands | Walk you through spec creation and the TDD loop | Invoked explicitly |
The hook gates new files in src/ only. It does not block:
src/*.test.*, *.spec.*, *_test.*, *_spec.*) — these are the RED-phase
artifact and must be writable before the implementation file.tdd-in-progress marker is present (created and removed by /stdd:tdd)To pass the gate without the marker, two prerequisites must exist:
docs/specs/<feature>.mdsrc/<feature>.test.<ext>) or in tests/Feature names map flexibly: src/my_feature.ts matches both docs/specs/my_feature.md
and docs/specs/my-feature.md.
Create an empty .stdd-off file in the project root to disable the guard hook entirely.
Remove it to re-enable. The file is gitignored — the switch is per-developer, not
checked in.
touch .stdd-off # off
rm .stdd-off # back on
run-tests.sh detects and runs whichever framework the project uses:
| Framework | Detected by | Command |
|---|---|---|
| pytest | pyproject.toml / setup.py / setup.cfg / pytest.ini | python -m pytest tests/ -v |
| Bun | bun.lockb | bun test |
| Node (npm) | package.json (no bun.lockb) | npm test |
| Go | go.mod | go test ./... |
| Rust | Cargo.toml | cargo test |
| Ruby | Gemfile | bundle exec rspec |
Bun is checked before Node because both projects have a package.json.
/stdd:setup ← run once per project (creates dirs, installs hooks and rules)
/stdd:spec <name> ← guided interview that writes docs/specs/<name>.md
/stdd:tdd <name> ← runs the red-green-refactor loop against that spec
/stdd:setup
Creates docs/specs/, src/, tests/, scripts/, installs scripts/run-tests.sh and
.git/hooks/pre-commit, and writes .claude/rules/stdd.md so the workflow rules are
always in context.
Safe to re-run — existing files are not overwritten.
/stdd:spec calculator
Claude asks four questions (problem, inputs/outputs, behaviour, acceptance criteria) and
writes docs/specs/calculator.md — as detailed as the feature warrants.
/stdd:tdd calculator
Works through each acceptance criterion one at a time:
RED write one failing test → run tests (must fail)
GREEN write the minimum code → run tests (must pass)
REFACTOR clean up what you just wrote → run tests (must still pass)
↳ back to RED for the next criterion
The loop creates a .tdd-in-progress marker so the guard hook allows src/ writes
during implementation. The marker is removed at the end.
docs/specs/ specs (one .md per feature)
src/ implementation + co-located tests (*.test.<ext>)
tests/ tests (alternative to co-location)
scripts/
run-tests.sh language-agnostic test runner
.git/hooks/
pre-commit blocks commits while tests fail
.claude/rules/
stdd.md workflow rules (always in context)
| Command | Purpose |
|---|---|
/stdd:setup | One-time project initialisation |
/stdd:spec <name> | Guided spec creation |
/stdd:tdd <name> | Red-green-refactor loop |
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 84 marketplace plugins, 192 local specialized agents, and 156 local skills - optimized for granular installation and minimal token usage
Directory of popular Claude Code extensions including development tools, productivity plugins, and MCP integrations