Engineering
uv-tdd avatar

uv-tdd

A structured development process for Python projects using TDD, the uv package manager, and automated testing workflows.

Introduction

The uv-tdd skill provides a prescriptive, step-by-step methodology for building robust Python applications. Designed for developers who prioritize quality and maintainability, this skill integrates modern Python tooling—specifically the uv package manager—with established Test-Driven Development (TDD) practices. By standardizing project initialization, dependency management, and the red-green-refactor cycle, it enables agents to consistently produce reliable, production-ready code while minimizing environmental configuration errors.

  • Streamlines project scaffolding using uv init, including automatic Git repository initialization and pyproject.toml configuration.

  • Enforces a strict TDD workflow: write a failing test, implement the solution, watch it pass, and commit in logical, atomic chunks.

  • Manages dependencies and development tools (like pytest) through standard uv commands, ensuring consistent environment state.

  • Promotes the use of pytest fixtures and parameterization to reduce boilerplate and improve test suite coverage.

  • Mandates the creation of a spec.md file with trackable markdown TODO lists to maintain clarity and progress during complex feature development.

  • Always ensure pytest is added as a development dependency before implementing core logic.

  • Run all Python code using the 'uv run' prefix to ensure execution within the isolated project environment.

  • Always initialize a README.md file with the project name and a brief description at the outset.

  • Use 'uv run pytest -k [test_name]' for surgical test execution during the development cycle.

  • Delete temporary placeholders like 'test_add.py' immediately upon the completion of the first functional test.

  • Commit documentation, specification updates, and implementation changes in a single, coherent git commit for better historical tracking.

Repository Stats

Stars
43
Forks
5
Open Issues
1
Language
Not provided
Default Branch
main
Sync Status
Idle
Last Synced
May 3, 2026, 09:42 PM
View on GitHub