project-migrate

Migrate Python project configuration to a uv-based standard with hatchling and tox-uv.

Updated Mar 26, 2026
One-click install
npx skills add https://github.com/christophevg/c3 --skill project-migrate-christophevg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-migrate
Source: https://github.com/christophevg/c3/tree/main/skills/project-migrate
Command: npx skills add https://github.com/christophevg/c3 --skill project-migrate-christophevg

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Migrating an existing Python project to a consistent uv-based standard is error-prone and repetitive, especially when multiple config files and legacy tooling must be updated or removed.

Core Features & Use Cases

  • Migration-ready checklist: Covers key files such as pyproject.toml, Makefile, GitHub Actions, ReadTheDocs config, and root README placement.
  • Standards-based updates: Aligns build backend and tool configuration to a uv/hatch/tox/ruff/mypy pattern suitable for modern Python projects.
  • Legacy cleanup guidance: Identifies and removes setup.py/setup.cfg, requirements*.txt, tox.ini, and other now-redundant files to prevent conflicting tooling.

Use case: You have an older Python repository using requirements.txt, setup.py, and a legacy CI setup, and you want to modernize it so dependency management, CI, and docs align with the uv-based standard.

Quick Start

Ask the assistant to migrate your project to the uv-based standard using the project-migrate skill, updating pyproject.toml, Makefile, CI, ReadTheDocs, and removing legacy configuration files.

Frequently Asked Questions about project-migrate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a Python project to uv and update pyproject.toml?

Migrating a Python project to uv involves updating pyproject.toml to use the hatchling build backend, configuring tox-uv compatibility, and separating docs extra dependencies. The process also standardizes ruff, mypy, coverage, and tox structures across the repository configuration files.

What's the best way to remove legacy Python setup files like setup.py and requirements.txt?

Removing legacy Python setup files requires identifying and eliminating setup.py, setup.cfg, requirements.txt, and tox.ini configurations to prevent conflicting tooling. This cleanup is part of migrating to a uv-based standard that consolidates dependency management into pyproject.toml.

Does migrating to uv work with existing GitHub Actions CI and ReadTheDocs configurations?

Migrating to uv works with existing GitHub Actions CI and ReadTheDocs configurations by updating them to align with the uv-based standard. The migration targets these specific files alongside pyproject.toml and Makefile updates to ensure consistent toolchain requirements across the project.

Can I use uv for dependency management in older Python repositories with legacy tooling?

Using uv for dependency management in older Python repositories is possible by migrating existing configurations to a uv-based standard. This works for repositories with legacy CI setups, requirements.txt files, and setup.py scripts that need modernization across build backend, testing, and documentation tooling.

Why does my Python project configuration conflict after switching to uv?

Python project configuration conflicts after switching to uv typically occur because legacy files like setup.py, setup.cfg, requirements.txt, and tox.ini remain in the repository. Removing these redundant files and consolidating settings into pyproject.toml resolves the tooling conflicts.

When do I need to update my Python project to a uv-based standard?

You need to update your Python project to a uv-based standard when dependency management, CI, and documentation configurations become inconsistent or rely on legacy tooling. This applies to repositories using setup.py, requirements.txt, and older CI setups that require modernized build, testing, and lint configurations.