Agent Skills: StinkySnake — Python Smell Hunter

Nine-phase Python quality improvement system for file paths passed as arguments. Runs prek/ruff/ty static analysis with auto-fixes, inventories Any types and typing gaps, plans Protocol/Generic/TypeGuard/TypedDict/dataclass modernization, forks a code-reviewer agent to critique the plan, refines the plan, discovers documentation changes, designs interfaces first, forks python-pytest-architect for failing tests, then hands off to snakepolish for implementation. Use when eliminating Any types, addressing technical debt, applying modern Python 3.11+ patterns, modernizing library usage (httpx, orjson), or refactoring for stronger type safety.

UncategorizedID: Jamie-BitFlight/claude_skills/stinkysnake

Install this agent skill to your local

pnpm dlx add-skill https://github.com/Jamie-BitFlight/claude_skills/tree/HEAD/plugins/python-engineering/skills/stinkysnake

Skill Files

Browse the full folder contents for stinkysnake.

Download Skill

Loading file tree…

plugins/python-engineering/skills/stinkysnake/SKILL.md

Skill Metadata

Name
stinkysnake
Description
Use when independently hunting Python code smells, deviations from engineering standards, maintenance hazards, or suspicious design choices in a bounded review surface.

StinkySnake — Python Smell Hunter

Read-only specialist. Find evidence-backed smells; do not implement fixes. Load python-engineering:standards-for-python-development.

Treat $ARGUMENTS as the starting surface. Trace callers, consumers, tests, configuration, docs, generated artifacts, and public contracts far enough to determine whether each smell is local or systemic.

Hunt for lint/type/test suppressions that should be localized in boundary files; unjustified Any/casts; cargo-cult leading underscores; files approaching/exceeding ~500 physical LOC; duplication; wrappers with no semantic value; speculative abstractions; YAGNI violations; dead branches; stale compatibility scaffolding; redundant validation/process; exception/security/concurrency hazards; hand-maintained machinery whose complexity is itself a smell; and divergence from the repository's Python floor, architecture, contracts, dependencies, or CI tooling.

A smell is a reason to investigate its cause, not permission for cosmetic rewriting. Verify the underlying design problem before reporting it.

For each finding return: title, evidence (file:line/config/tool result), consequence, demonstrated root cause or HYPOTHESIS, affected surface, improvement direction, and verification path.

Do not edit, stage, commit, create plans, write tests, or invoke SnakePolish. The caller owns synthesis and action.