From python-engineering
Provides Python tooling expertise for uv package management, Hatchling builds, ty type checking, pre-commit hooks, TOML editing, and PyPI packaging on pyproject.toml configs and workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-engineering:python3-toolsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Consult `python3-core` for standing defaults.
references/compatibility-lanes.mdreferences/hatchling/build-system/build-options.mdreferences/hatchling/build-system/build-system-declaration.mdreferences/hatchling/build-system/dev-mode.mdreferences/hatchling/build-system/environment-variables.mdreferences/hatchling/build-system/index.mdreferences/hatchling/build-system/output-directory.mdreferences/hatchling/build-system/pep-standards.mdreferences/hatchling/build-system/reproducible-builds.mdreferences/hatchling/build-system/vcs-integration.mdreferences/hatchling/core-concepts/build-hooks.mdreferences/hatchling/core-concepts/development-vs-distribution.mdreferences/hatchling/core-concepts/index.mdreferences/hatchling/core-concepts/minimal-philosophy.mdreferences/hatchling/core-concepts/pep-517-backend.mdreferences/hatchling/core-concepts/reproducible-builds.mdreferences/hatchling/core-concepts/vcs-file-selection.mdreferences/hatchling/core-concepts/version-management.mdreferences/hatchling/core-concepts/wheel-vs-sdist.mdreferences/hatchling/project-metadata/basic-metadata.mdConsult python3-core for standing defaults.
uv add for dependencies (not uv pip install)uv run for execution (not source .venv/bin/activate)uv sync --frozen for CI; uv sync --locked to detect stale lockfiles#!/usr/bin/env -S uv --quiet run --active --scriptuv venv --clear to overwrite existing environments (since 0.10.0)Check .pre-commit-config.yaml → CI config → pyproject.toml:
[tool.mypy]; do not force ty[tool.mypy] alone (may be stub config)Hatchling preferred:
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/my_package"]
Detect installed tool: read .git/hooks/pre-commit line 2 to identify pre-commit vs prek. Both use the same config file.
tomlkit for read/write (preserves formatting) — open in text modetomllib (stdlib) for read-only — tomllib.load() requires binary mode ("rb"), tomllib.loads() takes a string# pyproject.toml
[project]
name = "my-package"
version = "0.1.0"
requires-python = ">=3.11"
classifiers = ["Typing :: Typed"]
[project.scripts]
my-cli = "my_package.cli:app"
Load these skills when the task is focused entirely on one tool:
python-engineering:uv when the task involves uv commands, lockfiles, PEP 723 scripts, workspace configuration, Python version management, CI/CD integration, Docker setup with uv, or migration from pip/poetry/pyenv.python-engineering:ty when the task involves running ty type checks, configuring ty.toml or [tool.ty], suppressing diagnostics, interpreting ty error codes, ty editor integration, or migrating from mypy/pyright to ty.python-engineering:hatchling when the task involves Hatchling build hooks, custom builders, wheel/sdist configuration, editable installs, VCS version sources, PEP 517/518/621/660 compliance, or setuptools migration.python-engineering:toml-python when the task requires advanced TOML manipulation: comment-preserving read-modify-write, atomic config updates, tomlkit API patterns, or XDG config file management.python-engineering:pre-commit when the task requires configuring hook stages, writing .pre-commit-hooks.yaml definitions, implementing prepare-commit-msg hooks, or distributing a tool as a pre-commit hook.python-engineering:pypi-readme-creator when the task involves creating or validating a PyPI README, choosing between Markdown and RST formats, configuring readme in pyproject.toml, or running twine check.references/tooling-defaults.md — full tooling referencereferences/compatibility-lanes.md — version compatibilitynpx claudepluginhub jamie-bitflight/claude_skills --plugin python-engineeringSets up Python projects with uv for deps/envs, ruff for linting/formatting, ty for types, pytest for testing. Use for new projects, scripts, or migrations from pip/Poetry.
Configures Python projects with modern tooling (uv, ruff, ty). Use when creating projects, writing standalone scripts, or migrating from pip/Poetry/mypy/black.
Configures pyproject.toml for Python packages: build backends (hatchling, setuptools, maturin), PEP 621 metadata, PEP 735 dependency groups, entry points, versioning, and tool settings (ruff, pytest).