From python-engineering
Selects and applies strongest Python typing strategy per project version, enforcing boundaries with stdlib, Pydantic, or Hypothesis. Use for type checker failures, model design, data validation, reducing Any.
npx claudepluginhub jamie-bitflight/claude_skills --plugin python-engineeringThis skill uses the workspace's default tool permissions.
Choose the strongest valid lane automatically. Do not ask the user to pick a typing philosophy.
references/hypothesis-boundaries.mdreferences/modernization-guide.mdreferences/mypy-docs/additional_features.rstreferences/mypy-docs/generics.rstreferences/mypy-docs/protocols.rstreferences/mypy-docs/type_narrowing.rstreferences/mypy-docs/typed_dict.rstreferences/pydantic-boundaries.mdreferences/type-patterns.mdreferences/type-safety-mypy.mdreferences/typing-policy.mdGenerates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Choose the strongest valid lane automatically. Do not ask the user to pick a typing philosophy.
Consult references/typing-policy.md for the full policy document.
Any, broad object, and unchecked cast() in normal internal codeAny only in approved boundary modulesdataclasses, TypedDict, Protocol, Literal, TypeGuard, NewTypeSelf, assert_type, and reveal_type where useful during refactoringTypedDict with NotRequiredTypeAdapter for annotated types that do not need full modelsreferences/pydantic-boundaries.mdfrom_type() where practicalreferences/hypothesis-boundaries.mdtype statement for explicit type aliases: type JSONValue = str | int | ...TypeIs for clearer custom narrowing helpers (replaces TypeGuard where bidirectional narrowing needed)ReadOnly in TypedDict fields that must not mutate after validationannotationlib.get_annotations() in infrastructure that inspects annotations at runtimeUse dedicated wrappers named like:
parse_*validate_*decode_*coerce_**_from_rawBoundary modules should return typed objects only.
from typing import TypedDict, NotRequired
from dataclasses import dataclass
class _RawIncoming(TypedDict):
user_id: int
email: str
metadata: NotRequired[dict[str, str]]
@dataclass(frozen=True, slots=True)
class IncomingPayload:
user_id: int
email: str
metadata: dict[str, str]
def parse_incoming(data: _RawIncoming) -> IncomingPayload:
return IncomingPayload(
user_id=data["user_id"],
email=data["email"],
metadata=data.get("metadata", {}),
)
from pydantic import BaseModel, TypeAdapter
class IncomingPayload(BaseModel):
user_id: int
email: str
metadata: dict[str, str] = {}
model_config = {"strict": True}
def parse_incoming(data: dict[str, object]) -> IncomingPayload:
return IncomingPayload.model_validate(data)
references/typing-policy.md — full boundary validation policyreferences/pydantic-boundaries.md — Pydantic model and TypeAdapter patternsreferences/hypothesis-boundaries.md — property-based testing for validators