Routes to appropriate Python specialist skill based on symptoms and problem type
Routes Python issues to the right specialist skill based on symptoms. Use when encountering type errors, lint warnings, slow performance, async problems, or needing project setup. Triggers on keywords like "mypy", "pytest", "pandas", "Textual", or "Python code is slow".
/plugin marketplace add tachyon-beep/skillpacks/plugin install axiom-python-engineering@foundryside-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
async-patterns-and-concurrency.mddebugging-and-profiling.mdml-engineering-workflows.mdmodern-syntax-and-types.mdproject-structure-and-tooling.mdresolving-mypy-errors.mdscientific-computing-foundations.mdsystematic-delinting.mdtesting-and-quality.mdtextual-tui-development.mdThis meta-skill routes you to the right Python specialist based on symptoms. Python engineering problems fall into distinct categories that require specialized knowledge. Load this skill when you encounter Python-specific issues but aren't sure which specialized skill to use.
Core Principle: Different Python problems require different specialists. Match symptoms to the appropriate specialist skill. Don't guess at solutions—route to the expert.
Load this skill when:
Don't use for: Non-Python languages, algorithm theory (not Python-specific), deployment infrastructure (not Python-specific)
IMPORTANT: All reference sheets are located in the SAME DIRECTORY as this SKILL.md file.
When this skill is loaded from:
skills/using-python-engineering/SKILL.md
Reference sheets like systematic-delinting.md are at:
skills/using-python-engineering/systematic-delinting.md
NOT at:
skills/systematic-delinting.md ← WRONG PATH
When you see a link like [systematic-delinting.md](systematic-delinting.md), read the file from the same directory as this SKILL.md.
Symptoms - Learning Type Syntax:
Route to: See modern-syntax-and-types.md for comprehensive type system guidance.
Why: Learning type hint syntax, patterns, and configuration.
Symptoms - Fixing Type Errors:
Route to: See resolving-mypy-errors.md for systematic mypy error resolution.
Why: Resolving type errors requires systematic methodology, understanding error messages, and knowing when to fix vs ignore.
Example queries:
Symptoms:
Route to: project-structure-and-tooling.md
Why: Project setup involves multiple tools (ruff, mypy, pre-commit) and architectural decisions (src vs flat layout). Need comprehensive setup guide.
Example queries:
Symptoms:
Route to: systematic-delinting.md
Why: Delinting requires systematic methodology to fix warnings without disabling them or over-refactoring. Process-driven approach needed.
Example queries:
Note: If setting UP linting (not fixing), route to project-structure-and-tooling.md first.
Symptoms:
Route to: testing-and-quality.md
Why: Testing requires understanding pytest architecture, fixture scopes, mocking patterns, and test organization strategies.
Example queries:
Symptoms:
Route to: async-patterns-and-concurrency.md
Why: Async programming has unique patterns, pitfalls (blocking event loop), and requires understanding structured concurrency.
Example queries:
Symptoms:
Route to: textual-tui-development.md
Why: Textual has unique patterns for composition, reactivity, CSS styling, and testing that differ from standard Python. The async architecture and reactive data binding require specific approaches.
Example queries:
Note: For general async issues (event loop, TaskGroup), route to async-patterns-and-concurrency.md first. Textual skill is for Textual-specific patterns.
Symptoms:
Route to: debugging-and-profiling.md FIRST
Why: MUST profile before optimizing. Many "performance" problems are actually I/O or algorithm issues. Profile to identify the real bottleneck.
After profiling, may route to:
Example queries:
Symptoms:
Route to: scientific-computing-foundations.md
Why: NumPy/pandas have specific patterns for vectorization, memory efficiency, and avoiding anti-patterns (iterrows).
Example queries:
Symptoms:
Route to: ml-engineering-workflows.md
Why: ML workflows require experiment tracking, reproducibility patterns, configuration management, and monitoring strategies.
Example queries:
Some scenarios require multiple specialized skills in sequence:
New Python project setup with ML:
Legacy code cleanup:
Slow pandas code:
Type hints for existing code:
modern-syntax-and-types (add types)Load in order of execution: Setup before optimization, diagnosis before fixes, structure before specialization.
When symptom unclear, ASK ONE clarifying question:
"Fix my Python code" → Ask: "What specific issue? Type errors? Lint warnings? Tests failing? Performance?"
"Optimize my code" → Ask: "Optimize what? Speed? Memory? Code quality?"
"Setup Python project" → Ask: "General project or ML-specific? Starting fresh or fixing existing?"
"My code doesn't work" → Ask: "What's broken? Import errors? Type errors? Runtime errors? Tests?"
Never guess when ambiguous. Ask once, route accurately.
| Symptom | Wrong Route | Correct Route | Why |
|---|---|---|---|
| "Code slow" | async-patterns | debugging-and-profiling FIRST | Don't optimize without profiling |
| "Setup linting and fix" | systematic-delinting only | project-structure THEN delinting | Setup before fixing |
| "Pandas slow" | debugging only | debugging THEN scientific-computing | Profile then vectorize |
| "Add type hints" | modern-syntax only | project-structure THEN modern-syntax | Setup mypy first |
| "Fix 1000 lint warnings" | project-structure | systematic-delinting | Process for fixing, not setup |
| "Fix mypy errors" | modern-syntax-and-types | resolving-mypy-errors | Syntax vs resolution process |
| "100 mypy errors" | modern-syntax-and-types | resolving-mypy-errors | Need systematic approach |
Key principle: Diagnosis before solutions, setup before optimization, profile before performance fixes.
If you catch yourself about to:
modern-syntax-and-types for comprehensive guideAll of these mean: You're about to give incomplete advice. Route to the specialist instead.
| Excuse | Reality | What To Do |
|---|---|---|
| "User is rushed, skip routing" | Routing takes 5 seconds. Wrong fix wastes hours. | Route anyway - specialists have quick answers |
| "Simple question" | Simple questions deserve complete answers. | Route to specialist for comprehensive coverage |
| "Just need quick syntax" | Syntax without context leads to misuse. | Route to get syntax + patterns + anti-patterns |
| "User sounds experienced" | Experience in one area ≠ expertise in all Python. | Route based on symptoms, not perceived skill |
| "Already tried X" | May have done X wrong or incompletely. | Route to specialist to verify X properly |
| "Too many skills" | 8 focused skills > 1 overwhelming wall of text. | Use router to navigate - that's its purpose |
If you catch yourself thinking ANY of these, STOP and route to the specialist.
Before giving ANY Python advice, ask yourself:
❓ Did I identify the symptom?
❓ Is this symptom in my routing table?
❓ Am I about to give advice directly?
❓ Is this a diagnosis issue or solution issue?
❓ Is query ambiguous?
❓ Am I feeling pressure to skip routing?
If you failed ANY check above, do NOT give direct advice. Route to specialist or ask clarifying question.
After routing, load the appropriate specialist skill for detailed guidance:
Skip Python pack when:
Python pack is for: Python-specific implementation, tooling, patterns, debugging, and optimization.
Critical: Many Python issues require diagnosis before solutions:
| Issue Type | Diagnosis Skill | Then Solution Skill |
|---|---|---|
| Performance | debugging-and-profiling | async or scientific-computing |
| Slow arrays | debugging-and-profiling | scientific-computing-foundations |
| Type errors | modern-syntax-and-types | modern-syntax-and-types (same) |
| Lint warnings | systematic-delinting | systematic-delinting (same) |
If unclear what's wrong, route to diagnostic skill first.
Phase 1 - Standalone: Python skills are self-contained
Future cross-references:
Current focus: Route within Python pack only. Other packs handle other concerns.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.