What problem does it solve? Untyped Python code lets type errors slip through to runtime, causing bugs that only surface in production. This Skill provides patterns for adding type hints, generics, and protocols so static analysis tools like mypy and pyright catch errors before execution. ## Core Features & Use Cases - Type Annotations & Narrowing: Annotate all public function signatures and use guards to narrow union types like User | None within code blocks. - Generics & Protocols: Build reusable generic classes (e.g., Result[T, E], Repository[T, ID]) and define structural interfaces with Protocol without requiring inheritance. - Strict Checker Configuration: Configure mypy --strict or pyright in pyproject.toml, with incremental per-module adoption for existing codebases. - Use Case: When refactoring a data access layer, define a generic Repository[T, ID] abstract class, implement UserRepository(Repository[User, str]), and let the type checker verify every get, save, and delete call across the codebase. ## Quick Start Add type annotations to my Python module and configure mypy strict mode in pyproject.toml.