python-project

Initialize and validate Python projects using uv with pyproject.toml and uv.lock.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill reduces the friction and trial-and-error when creating or maintaining Python projects by standardizing uv-based dependency management, environment setup, and validation before you start implementing code.

Core Features & Use Cases

  • uv-based project initialization: Start new apps/libraries or re-initialize existing projects using uv so the project is consistent from day one (e.g., creating the correct pyproject.toml layout).
  • Deterministic dependency workflow: Uses uv sync to create/update .venv and install locked dependencies, ensuring imports and tests work in the same way every time.
  • Project quality guardrails: Enforces a command pattern (run everything via uv run), provides a Makefile target checklist, and includes a “pre-publish” verification approach for libraries.

Quick Start

Tell the assistant: "Use the python-project skill to validate my uv setup, run uv sync, verify imports and pytest collection, then outline the required Makefile targets for this repository."

Frequently Asked Questions about python-project

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

FAQPage Schema
How do I set up a Python project using uv?

Setting up a Python project using uv involves initializing a correct pyproject.toml layout, running uv sync to create a .venv with locked dependencies, and validating imports and pytest collection. This standardizes environment setup and reduces trial-and-error.

How do I migrate an existing Python project to uv dependency management?

Migrating an existing Python project to uv requires re-initializing the packaging layout to use pyproject.toml and uv.lock. The workflow then validates the setup through uv sync, import verification, and pytest collection to ensure deterministic dependency resolution.

Do I need a Makefile to use uv for Python project validation?

A uv-compatible Makefile is required to execute project validation commands. The workflow enforces running tools like pytest, ruff, and mypy through uv run commands structured as Makefile targets, ensuring consistent execution of preflight checks and quality guardrails.

What preflight checks are required before coding in a uv-based Python project?

Required preflight checks include verifying pyproject.toml presence, confirming uv availability, running uv sync, verifying imports, and executing pytest collection. These checks validate the uv setup and ensure dependencies and tests work correctly before implementation begins.

Can I add development tools like pytest, ruff, and mypy to a uv project?

You can add development tools like pytest, ruff, and mypy to a uv project by configuring them in pyproject.toml. Running uv sync installs these dependencies into the .venv, and execution is handled through uv run commands within the Makefile target structure.

Why should I use uv instead of other Python environment managers for project setup?

Using uv for project setup provides deterministic dependency workflow through uv.lock, ensuring imports and tests work identically every time. It standardizes pyproject.toml initialization and enforces quality guardrails via uv run execution, reducing friction compared to legacy packaging layouts.