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:
- Session Management - Structured planning documents with templates and tracking
- Convention Enforcement - YAML-based conventions validated via pytest
- ATDD Lifecycle - Planner → Tester → Coder phase gates
- 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
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
- Create
src/atdd/{phase}/validators/test_{name}.py - Write pytest test functions
- Run
atdd --test {phase}
Validators are auto-discovered by pytest.
Adding Conventions
- Create
src/atdd/{phase}/conventions/{name}.convention.yaml - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atdd-0.2.2.tar.gz.
File metadata
- Download URL: atdd-0.2.2.tar.gz
- Upload date:
- Size: 456.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f12fcee749dba195b6cecdd83e155d10fd61590d5f214359a150212e2f57a125
|
|
| MD5 |
c44e1cf4e113f192e0aebf375242044f
|
|
| BLAKE2b-256 |
227940daee36eb9c4211bd9d65f856a3f21bd48eaa5998b462bbea5d5d373f43
|
Provenance
The following attestation bundles were made for atdd-0.2.2.tar.gz:
Publisher:
publish.yml on afokapu/atdd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atdd-0.2.2.tar.gz -
Subject digest:
f12fcee749dba195b6cecdd83e155d10fd61590d5f214359a150212e2f57a125 - Sigstore transparency entry: 869830481
- Sigstore integration time:
-
Permalink:
afokapu/atdd@2a5cbfa8adb153c36271bbd793d45697df4bd868 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/afokapu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2a5cbfa8adb153c36271bbd793d45697df4bd868 -
Trigger Event:
push
-
Statement type:
File details
Details for the file atdd-0.2.2-py3-none-any.whl.
File metadata
- Download URL: atdd-0.2.2-py3-none-any.whl
- Upload date:
- Size: 546.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2453f027a3887f87a5b1e4d59e6d89b95ba422c7fe02a07099f69ea3e745090e
|
|
| MD5 |
fb7df793b167b8a0d45cb9575c6e1a1b
|
|
| BLAKE2b-256 |
b49ef4e9e47af920ecf74a5760263c43b2ac07eae5cee445f9b8d05cab79aacc
|
Provenance
The following attestation bundles were made for atdd-0.2.2-py3-none-any.whl:
Publisher:
publish.yml on afokapu/atdd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atdd-0.2.2-py3-none-any.whl -
Subject digest:
2453f027a3887f87a5b1e4d59e6d89b95ba422c7fe02a07099f69ea3e745090e - Sigstore transparency entry: 869830483
- Sigstore integration time:
-
Permalink:
afokapu/atdd@2a5cbfa8adb153c36271bbd793d45697df4bd868 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/afokapu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2a5cbfa8adb153c36271bbd793d45697df4bd868 -
Trigger Event:
push
-
Statement type: