From python-engineering
Establishes Python 3.11+ engineering standards: SOLID principles, strict typing policy, pytest testing defaults, ruff linting, uv tooling, code smell detection. Auto-activates on Python tasks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-engineering:python3-coreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Consult `references/python3-standards.md` for the full standards document.
assets/example.pre-commit-config.yamlassets/hatch_build.pyassets/version.pyreferences/PEP723.mdreferences/modern-modules.mdreferences/python-development-orchestration.mdreferences/python3-standards.mdreferences/python311-features.mdreferences/python312-features.mdreferences/python313-features.mdreferences/python314-features.mdreferences/tool-library-registry.mdreferences/typing-matrix.mdreferences/user-project-conventions.mdConsult references/python3-standards.md for the full standards document.
list[str], str | None, Self, TypeAlias__all__ in public modulesAny, broad object, or unchecked cast() in internal codeAny is permittedtest_{fn}_{scenario}_{result})uv for dependency managementruff for linting and formattingty (Astral) as default type checker; keep mypy/pyright when the project already uses thempytest for testinghatchling as default build backend.pre-commit-config.yaml then CI, not from presence of config sectionse.add_note() for exception context; never swallow exceptionsAny, broad object, and unchecked cast() are FORBIDDEN in normal internal codeTypeAdapterAnyLoad python3-typing for the full matrix. Summary:
| Python Version | Dependencies Available | Strategy |
|---|---|---|
| 3.10 constrained | stdlib only | TypeAlias, Protocol, TypeGuard; no third-party |
| 3.11+ stdlib | stdlib only | TypeAlias, TypeVar, Self, TypedDict + NotRequired |
| 3.11+ with Pydantic | pydantic available | Pydantic models at boundaries; TypeAdapter for ad-hoc |
| 3.11+ with Hypothesis | hypothesis available | Property-based tests for validators and boundaries |
| 3.12 | — | type statement for type aliases |
| 3.13 | — | TypeIs (PEP 742) replaces TypeGuard where bidirectional narrowing needed |
| 3.14 | — | Deferred evaluation of annotations (PEP 649) |
Only load when the task clearly matches. Do NOT preload all of these.
Load python3-tdd when the task involves test-driven development, writing tests before implementation, or red-green-refactor workflows.
Load python3-cli when building Typer/Rich CLI tools, scripts with progress bars, or terminal output.
Load python3-web when working with FastAPI, Starlette, Django, or Flask.
Load python3-data when working with pandas, numpy, scipy, jupyter, or data pipelines.
Load python3-stdlib-only ONLY when confirmed environment restrictions prevent dependency installation (airgapped, no uv, no internet). Do NOT assume restrictions.
Load python3-test-design when designing test suites before implementation — coverage strategy, test pyramid distribution, fixture hierarchy, mutation testing plan.
Load analyze-test-failures when analyzing failing tests to determine whether the failure is a genuine bug or a test implementation issue.
Load comprehensive-test-review when conducting a full test quality audit — coverage, isolation, mock usage, naming, completeness.
Load test-failure-mindset when resetting investigation approach to test failures — dual-hypothesis protocol, red flags, worked examples.
Load python3-add-feature when adding a new feature to an existing Python project — discovery, MoSCoW prioritization, TDD implementation, integration, verification.
Load create-feature-task when creating a structured feature task with SAM tracking — produces task documentation with phases, acceptance criteria, and context preservation ready for the SAM pipeline.
Load python3-packaging when configuring package metadata or build targets — pyproject.toml templates, build backend options (Hatchling/Setuptools/Flit), entry points, dependency specification.
Load python3-publish-release-pipeline when publishing to PyPI or cutting a release — GitHub Actions / GitLab CI workflows, trusted publishing, version management, TestPyPI.
Load specialist-skill-routing at the start of any Python task to activate granular trigger-based routing across all 17+ specialist categories. This is the master router — agents activate it before starting work when broad task classification is insufficient.
/python-engineering:review — comprehensive code review (manual entrypoint)/python-engineering:cleanup — progressive quality improvement (manual entrypoint)/python-engineering:lint — deterministic quality checks (manual entrypoint)/python-engineering:debug — structured debugging (manual entrypoint)Load async-python-patterns when the task involves async/await patterns, asyncio, concurrent I/O operations, task scheduling, or non-blocking systems.
Load mkdocs when the task involves generating a documentation site with MkDocs or Material theme.
Load python3-tools when the task involves uv, Hatchling, ty, pre-commit, TOML editing, or PyPI packaging.
Templates available at ${CLAUDE_PLUGIN_ROOT}/skills/python3-core/assets/:
version.py — dual-mode version managementhatch_build.py — build hook templateexample.pre-commit-config.yaml — standard git hooks.editorconfig — editor formattingnpx claudepluginhub jamie-bitflight/claude_skills --plugin python-engineeringGuides Python 3.11+ CLI apps with Typer/Rich, pytest test suites, ruff/mypy fixes, pyproject.toml config, portable scripts, and code reviews. Routes to specialist sub-skills.
Provides tiered Python development guidance from simple scripts to production systems, covering PEP-8 style, Ruff linting, pytest testing, mypy typing, uv tooling, security, and packaging.
Provides index of 12 principle skills for Python package creation, review, modernization including project structure, pyproject.toml, testing, CI/CD, docs, releases. Use when selecting skills or starting projects.