Skip to main content

ATDD Platform - Acceptance Test Driven Development toolkit

Project description

ATDD

Acceptance Test Driven Development toolkit for structured planning and convention enforcement.

Installation

From PyPI

pip install atdd

For Development

# Clone the repo
git clone https://github.com/afokapu/atdd.git
cd atdd

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Verify installation
atdd --help

Quick Start

# Initialize ATDD in your project
atdd init

# Create a planning session
atdd session new my-feature

# List sessions
atdd session list

# Sync ATDD rules to agent config files
atdd sync

# Run validators
atdd --test all

What It Does

ATDD provides:

  1. Session Management - Structured planning documents with templates and tracking
  2. Convention Enforcement - YAML-based conventions validated via pytest
  3. ATDD Lifecycle - Planner → Tester → Coder phase gates
  4. Agent Config Sync - Keep ATDD rules in sync across AI agent config files

Commands

Project Initialization

atdd init              # Create atdd-sessions/, .atdd/, and CLAUDE.md
atdd init --force      # Reinitialize (overwrites existing)

Creates:

your-project/
├── CLAUDE.md              # With managed ATDD block
├── atdd-sessions/
│   ├── SESSION-TEMPLATE.md
│   └── archive/
└── .atdd/
    ├── manifest.yaml      # Session tracking
    └── config.yaml        # Agent sync configuration

Session Management

atdd session new <slug>                 # Create new session
atdd session new <slug> --type <type>   # Specify type
atdd session list                       # List all sessions
atdd session archive <id>               # Archive session
atdd session sync                       # Sync manifest with files

Session types: implementation, migration, refactor, analysis, planning, cleanup, tracking

Agent Config Sync

Sync ATDD rules to agent config files using managed blocks that preserve user content:

atdd sync                  # Sync all enabled agents from config
atdd sync --agent claude   # Sync specific agent only
atdd sync --verify         # Check if files are in sync (for CI)
atdd sync --status         # Show sync status for all agents

Supported agents:

Agent File
claude CLAUDE.md
codex AGENTS.md
gemini GEMINI.md
qwen QWEN.md

Configure which agents to sync in .atdd/config.yaml:

version: "1.0"
sync:
  agents:
    - claude      # Enabled by default
    # - codex     # Uncomment to sync AGENTS.md
    # - gemini    # Uncomment to sync GEMINI.md
    # - qwen      # Uncomment to sync QWEN.md

ATDD Gate

Verify agents have loaded ATDD rules before starting work:

atdd gate                  # Show gate verification info
atdd gate --json           # Output as JSON for programmatic use

Example output:

============================================================
ATDD Gate Verification
============================================================

Loaded files:
  - CLAUDE.md (hash: d04f897c6691dc13...)

Key constraints:
  1. No ad-hoc tests - follow ATDD conventions
  2. Domain layer NEVER imports from other layers
  3. Phase transitions require quality gates

------------------------------------------------------------
Before starting work, confirm you have loaded these rules.
------------------------------------------------------------

Agents should confirm at the start of each session:

  • Which ATDD file(s) they loaded
  • The key constraints they will follow

Validation

atdd --test all        # Run all validators
atdd --test planner    # Planning artifacts only
atdd --test tester     # Testing artifacts only
atdd --test coder      # Implementation only
atdd --quick           # Fast smoke test

Other Commands

atdd --status          # Platform status
atdd --inventory       # Generate artifact inventory
atdd --help            # Full help

Project Structure

src/atdd/
├── cli.py                 # Entry point
├── coach/
│   ├── commands/          # CLI command implementations
│   ├── conventions/       # Coach conventions (YAML)
│   ├── overlays/          # Agent-specific additions
│   ├── schemas/           # JSON schemas
│   ├── templates/         # Session templates, ATDD.md
│   └── validators/        # Coach validators
├── planner/
│   ├── conventions/       # Planning conventions
│   ├── schemas/           # Planning schemas
│   └── validators/        # Planning validators
├── tester/
│   ├── conventions/       # Testing conventions
│   ├── schemas/           # Testing schemas
│   └── validators/        # Testing validators
└── coder/
    ├── conventions/       # Coding conventions
    ├── schemas/           # Coder schemas
    └── validators/        # Implementation validators

Development

Setup

git clone https://github.com/afokapu/atdd.git
cd atdd
pip install -e ".[dev]"

Run Tests

# All tests
pytest

# Specific phase
pytest src/atdd/planner/validators/

# With coverage
pytest --cov=atdd --cov-report=html

Adding Validators

  1. Create src/atdd/{phase}/validators/test_{name}.py
  2. Write pytest test functions
  3. Run atdd --test {phase}

Validators are auto-discovered by pytest.

Adding Conventions

  1. Create src/atdd/{phase}/conventions/{name}.convention.yaml
  2. Reference in validators via Path(__file__).parent.parent / "conventions" / "..."

Requirements

  • Python 3.10+
  • pyyaml

Dev dependencies: pytest, pytest-xdist

License

MIT

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

atdd-0.2.4.tar.gz (458.5 kB view details)

Uploaded Source

Built Distribution

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

atdd-0.2.4-py3-none-any.whl (549.4 kB view details)

Uploaded Python 3

File details

Details for the file atdd-0.2.4.tar.gz.

File metadata

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

File hashes

Hashes for atdd-0.2.4.tar.gz
Algorithm Hash digest
SHA256 621c77c55c98c0dcdfdc87cfdbcfdf49c821c913304d6b36f4dbdf8367af6deb
MD5 f86f2649988865bdd9c3a18f4094121c
BLAKE2b-256 3e26dc1a009d08780c7fc2e3c4c0094f864e5a40edf183af98afa79320c96af9

See more details on using hashes here.

Provenance

The following attestation bundles were made for atdd-0.2.4.tar.gz:

Publisher: publish.yml on afokapu/atdd

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

File details

Details for the file atdd-0.2.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for atdd-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 53bfe46f65a2201e820491140cc23ecca5cc4cd81c80e0264ddf516fd20111d5
MD5 2cc647e53bc19abdef6ffed090878e89
BLAKE2b-256 f81ea2286615d777c50fb76cc5345d58eb38d3d30e1ad6826810fdd0ccd4475b

See more details on using hashes here.

Provenance

The following attestation bundles were made for atdd-0.2.4-py3-none-any.whl:

Publisher: publish.yml on afokapu/atdd

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