make format # Ruff formatter (fixes in place)
make lint # Ruff linter + ty type checker
make behave # Run all BDD tests
make check # format + lint + security + tests
make ci # Full CI pipeline locally- Python 3.14+ required — not 3.x
- Package manager: UV (never
pip installdirectly) - Tests: Behave BDD framework (not pytest)
- Run single test file:
uv run --extra behave behave features/redis_adapter.feature
archipy/
├── models/ # Domain layer — entities, DTOs, errors
├── adapters/ # Infrastructure — external integrations
├── helpers/ # Utilities, decorators, interceptors
└── configs/ # pydantic-settings config
Import direction (one-way): configs ← models ← helpers ← adapters
- Double quotes only — Ruff enforces this
- Google-style docstrings on public functions
- Max line length: 120 characters
- McCabe complexity: max 10 per function
- BDD steps use native
async def(noasyncio.run()wrapper) - Parallel execution: 8 workers (multiprocessing)
- Steps must not share mutable global state
make install-dev # Install all deps + pre-commit hooks
make pre-commit # Run hooks manuallyfeatures/ and scripts/ are excluded from Ruff linting.