python-project-tooling

Configures and verifies Python project tooling with pyproject.toml, uv, Ruff, Pyright, and pytest.

Updated Aug 12, 2026
One-click install
npx skills add https://github.com/schattenspiegel/skill-foundry-skills --skill python-project-tooling-schattenspiegel
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: python-project-tooling
Source: https://github.com/schattenspiegel/skill-foundry-skills/tree/main/skills/python-project-tooling
Command: npx skills add https://github.com/schattenspiegel/skill-foundry-skills --skill python-project-tooling-schattenspiegel

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Python projects often accumulate inconsistent dependency management, missing lockfiles, and unverified packaging, leading to broken builds and non-reproducible environments. This Skill provides a deterministic contract for structuring, locking, and verifying Python projects with modern tooling. ## Core Features & Use Cases - Project Classification and Setup: Distinguishes applications, libraries, and workspaces, then applies the correct pyproject.toml structure, build backend, and dependency layout. - Reproducible Dependency Management: Uses uv add, uv lock, and uv sync --locked to keep uv.lock committed and environments exact, with runtime dependencies, extras, and dependency groups kept separate. - Quality and Build Verification: Runs a canonical pipeline of Ruff check and format, Pyright, pytest, and uv build, then inspects wheel and sdist contents and installs the wheel in a clean environment. - Use Case: When migrating a project from requirements.txt or Poetry to uv, the Skill preserves markers, extras, and workspace membership, regenerates the lockfile, and verifies a clean build before removing the old configuration. ## Quick Start Ask the assistant to review this repository's Python project tooling and set up a reproducible uv-based workflow with Ruff, Pyright, and pytest verification.

Frequently Asked Questions about python-project-tooling

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

FAQPage Schema
How do I set up a reproducible Python project with uv?▼

Declare dependencies in pyproject.toml, generate the lockfile with uv lock, and commit uv.lock. Use uv sync --locked and uv run --locked for commands so stale metadata fails instead of silently updating the lock.

What is the difference between extras and dependency groups in pyproject.toml?▼

Extras in [project.optional-dependencies] are consumer-selectable features of a published package, while dependency groups are development or task environments. They serve different consumers and should not be used interchangeably.

How do I migrate from Poetry or requirements.txt to uv?▼

Establish current commands and artifacts first, then preserve markers, extras, indexes, and workspace membership during migration. Regenerate the lockfile rather than hand-editing it, diff resolved packages, and test a clean clone and build before removing the old path.

Why does my editable install pass but the built wheel is broken?▼

A passing editable install does not prove the built wheel contains the package or data files. Build both sdist and wheel with uv build, inspect their contents and metadata, then install the wheel into a clean environment and import it outside the source tree.

Should an application project have a build system in pyproject.toml?▼

No. Applications that are not distributed as packages usually need no build system, or can set tool.uv.package = false. Adding a build backend just to make an application look like a package violates the declared project type.