Skip to main content

Deploy TDD workflow templates for Claude and Gemini AI assistants

Project description

tdd-llm

AI-Powered TDD Workflows for Claude and Gemini

Deploy structured Test-Driven Development workflows to your AI coding assistants. Guide Claude and Gemini through the RED-GREEN-REFACTOR cycle with consistent, reproducible prompts.

Features

  • Deploy .claude/ and .gemini/ configuration directories
  • Automatic conversion from Claude (.md) to Gemini (.toml) format
  • Language-specific placeholders (Python, C#, TypeScript)
  • Backend support for local files or Jira (via MCP)
  • Global and project-level configuration (project overrides global)
  • Configurable coverage thresholds per project
  • Cross-platform (Linux, macOS, Windows)
  • Update templates from GitHub without reinstalling the package

Installation

pip install tdd-llm

Quick Start

# Initialize project config (creates .tdd-llm.yaml)
tdd-llm init --lang python --backend files

# Deploy TDD templates to current project
tdd-llm deploy

# Deploy to user-level directories
tdd-llm deploy --target user --lang csharp --backend jira

# Preview changes without writing
tdd-llm deploy --lang typescript --dry-run

# List available languages and backends
tdd-llm list

# Show configuration (merged global + project)
tdd-llm config --show

# Update templates from GitHub (without reinstalling)
tdd-llm update

Configuration

tdd-llm supports two configuration levels:

  • Global (user-level): Applies to all projects
  • Project (local): Overrides global settings for a specific project

Global Configuration

Location:

  • Linux/macOS: ~/.config/tdd-llm/config.yaml
  • Windows: %APPDATA%\tdd-llm\config.yaml
default_target: "project"  # or "user"
default_language: "python"
default_backend: "files"   # or "jira"
platforms:
  - claude
  - gemini
coverage:
  line: 80      # Line coverage threshold (%)
  branch: 70    # Branch coverage threshold (%)

Project Configuration

Create a .tdd-llm.yaml file in your project root to override global settings:

# Initialize project config with custom settings
tdd-llm init --lang typescript --coverage-line 90

# Or modify existing project config
tdd-llm config --project --set-lang csharp

Project config file: .tdd-llm.yaml

default_language: "typescript"
coverage:
  line: 90      # Override only what you need

Configuration Commands

# Show effective configuration (merged global + project)
tdd-llm config --show

# Modify global config
tdd-llm config --set-coverage-line 80

# Modify project config
tdd-llm config --project --set-lang typescript

Coverage thresholds are applied to the generated TDD templates and enforced during the review phase.

Updating Templates

Templates can be updated from GitHub without reinstalling the package:

# Update to latest templates
tdd-llm update

# Force re-download all templates
tdd-llm update --force

# Deploy using package templates (ignore cached updates)
tdd-llm deploy --no-cache

Updated templates are cached in:

  • Linux/macOS: ~/.config/tdd-llm/templates/
  • Windows: %APPDATA%\tdd-llm\templates\

Supported Languages

Language Placeholders
Python pytest, coverage, architecture/integration/perf tests
C# dotnet test, xUnit, architecture/integration/perf tests
TypeScript Jest, Vitest, architecture/integration/perf tests

Backends

Files (default)

Uses local markdown files for epic/story management:

  • docs/epics/ - Epic definitions
  • docs/state.json - Progress tracking

Jira

Uses MCP Jira server for epic/story management:

  • Fetches epics and stories from Jira
  • Updates status via Jira API

TDD Workflow Commands

After deployment, use these commands with Claude or Gemini:

Flow Commands

Command Phase Description
/tdd:flow:1-analyze Plan Analyze task, write specs
/tdd:flow:2-test RED Write failing tests
/tdd:flow:3-dev GREEN+REFACTOR Implement, then refactor
/tdd:flow:4-docs Document Update docs, CHANGELOG
/tdd:flow:5-review Review Code review, create PR
/tdd:flow:6-done Done Commit, update state
/tdd:flow:status - Show current progress

Init Commands

Command Description
/tdd:init:1-project Initialize project structure
/tdd:init:2-architecture Define architecture
/tdd:init:3-standards Define code standards
/tdd:init:4-readme Generate README

Development

# Clone and install in dev mode
git clone https://github.com/mxdumas/tdd-llm-workflow
cd tdd-llm-workflow
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows
pip install -e ".[dev]"
pre-commit install

# Run tests
pytest

# Run linter
ruff check src/

# Format code
ruff format src/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tdd_llm-0.1.0.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tdd_llm-0.1.0-py3-none-any.whl (55.0 kB view details)

Uploaded Python 3

File details

Details for the file tdd_llm-0.1.0.tar.gz.

File metadata

  • Download URL: tdd_llm-0.1.0.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tdd_llm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 31319d05cf104a2304ebb08b499932699c999febe0e266f19916b7754bcc3bde
MD5 daa1c8d69e8030b9edcd76dd84db6fa3
BLAKE2b-256 f0416c099d7850b9c2135b4ad094d8ae04fbe98efd41b0e1826591fae3686e48

See more details on using hashes here.

Provenance

The following attestation bundles were made for tdd_llm-0.1.0.tar.gz:

Publisher: publish-pypi.yml on mxdumas/tdd-llm-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tdd_llm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tdd_llm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 55.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tdd_llm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ef0ac9d0c0d573f662a6edc483d438f7115099d29dfa22073eb5d1826caf467
MD5 e91184f901da78d0e728c48b5c810fe3
BLAKE2b-256 6edc355355cfa58f06ccc86a13e788738e52c0f8fa105ab5504b6755af64b832

See more details on using hashes here.

Provenance

The following attestation bundles were made for tdd_llm-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on mxdumas/tdd-llm-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page