What problem does it solve? Python codebases without consistent type annotations accumulate hidden bugs, unclear interfaces, and tooling gaps. This Skill establishes a complete static typing discipline — annotation conventions, mypy strict-mode configuration, generics, Protocols, and library packaging — so type errors are caught at development time instead of in production. ## Core Features & Use Cases - Annotation Conventions: Enforces fully typed public interfaces using modern PEP 604 syntax (str | None, list[int]) instead of legacy typing module forms. - mypy Strict Configuration: Provides a pyproject.toml setup with strict = true, per-module overrides for untyped libraries, and CI commands via uv run mypy src. - Generics and Protocols: Shows how to build typed generic classes (including Python 3.12 native syntax) and use Protocol for structural typing without inheritance. - Library Packaging: Covers the py.typed marker so published packages expose their types to consumers' type checkers. - Use Case: You inherit an untyped Python service. Use this Skill to annotate the public API, enable mypy strict mode in CI, and replace ad-hoc isinstance checks with pydantic validation at trust boundaries. ## Quick Start Add type hints to my Python module and configure mypy strict mode in pyproject.toml.