Claude-skill-registry faion-python-developer
Python development: Django, FastAPI, async patterns, testing, type hints.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/faion-python-developer" ~/.claude/skills/majiayu000-claude-skill-registry-faion-python-developer && rm -rf "$T"
manifest:
skills/data/faion-python-developer/SKILL.mdsource content
Entry point:
— invoke this skill for automatic routing to the appropriate domain./faion-net
Python Developer Skill
Python development specializing in Django, FastAPI, async programming, and modern Python patterns.
Purpose
Handles all Python backend development including Django full-stack apps, FastAPI async APIs, pytest testing, and Python best practices.
Context Discovery
Auto-Investigation
Gather Python project context before asking questions:
| Signal | How to Check | What It Tells Us |
|---|---|---|
| | Django project |
| | Dependencies, Python version, tools |
| | Dependencies (legacy setup) |
| | Django settings structure |
| | Service layer exists → follow pattern |
| | pytest fixtures exist → check style |
| | Factory Boy used for tests |
or | | Celery async tasks used |
| | Pre-commit hooks, linting tools |
or | Check for mypy config | Type checking enforced |
Read existing code to understand patterns:
- Read a model file to see BaseModel pattern - Read a service file to see service layer style - Read a test file to see testing conventions - Read serializers to see DRF patterns
Discovery Questions
Use
AskUserQuestion for Python-specific decisions not clear from investigation.
Q1: Framework Choice (only if not detected)
question: "Which Python framework are you using?" header: "Framework" multiSelect: false options: - label: "Django" description: "Full-featured web framework with ORM" - label: "FastAPI" description: "Modern async API framework" - label: "Flask" description: "Lightweight microframework" - label: "No framework (scripts/CLI)" description: "Pure Python application"
Routing:
- "Django" → django-* methodologies
- "FastAPI" → python-fastapi, python-async
- "Flask" → python-web-frameworks
- "No framework" → python-basics, python-code-quality
Q2: Code Placement (for new code in Django)
question: "What type of code are you writing?" header: "Code Type" multiSelect: false options: - label: "Database operations (create/update/delete)" description: "Code that modifies data" - label: "Business logic (calculations, transformations)" description: "Pure functions, no side effects" - label: "API endpoint" description: "HTTP request handling" - label: "Background task" description: "Async/scheduled processing" - label: "Not sure" description: "I'll help you decide based on what it does"
Routing (Django decision tree):
- "Database operations" →
directoryservices/ - "Business logic" →
directory (pure functions)utils/ - "API endpoint" →
orviews/viewsets/ - "Background task" →
with Celerytasks/ - "Not sure" → Ask what the code does, apply decision tree
Q3: Async Requirements
question: "Does this need async/concurrent execution?" header: "Async" multiSelect: false options: - label: "Yes, I/O bound (API calls, file ops)" description: "Multiple external calls that can run in parallel" - label: "Yes, background processing" description: "Long-running tasks that shouldn't block" - label: "No, synchronous is fine" description: "Simple request-response flow" - label: "Not sure" description: "I'll analyze and recommend"
Routing:
- "I/O bound" → python-async, asyncio patterns
- "Background processing" → django-celery or FastAPI BackgroundTasks
- "Synchronous" → Standard patterns
- "Not sure" → Analyze task characteristics
Q4: Type Safety Level
question: "What level of type safety do you want?" header: "Types" multiSelect: false options: - label: "Strict (full type hints, mypy strict)" description: "Maximum type safety, catch errors early" - label: "Gradual (key interfaces typed)" description: "Type public APIs, internal can be looser" - label: "Minimal (match existing code)" description: "Follow project's current style"
Routing:
- "Strict" → python-type-hints strict mode, Protocol, TypedDict
- "Gradual" → Type annotations on public functions
- "Minimal" → Match existing codebase style
Q5: Testing Approach (for new features)
question: "How should we approach testing?" header: "Testing" multiSelect: false options: - label: "TDD (tests first)" description: "Write tests before implementation" - label: "Tests after implementation" description: "Write tests once code works" - label: "Match existing test coverage" description: "Follow project's testing patterns" - label: "No tests needed" description: "Spike/prototype, tests later"
Routing:
- "TDD" → tdd-workflow, write test first
- "Tests after" → django-pytest or python-testing-pytest
- "Match existing" → Read conftest.py, follow patterns
- "No tests" → Skip testing methodologies
When to Use
- Django projects (models, services, API, testing)
- FastAPI async APIs
- Python async patterns and concurrency
- Python type hints and strict typing
- Python testing with pytest
- Python code quality and tooling
Methodologies
| Category | Methodology | File |
|---|---|---|
| Django Core | ||
| Django standards | Django coding standards, project structure | django-coding-standards.md |
| Django models | Model design, base model patterns | django-base-model.md |
| Django models reference | Model fields, managers, migrations | django-models.md |
| Django services | Service layer architecture | django-services.md |
| Django API | DRF patterns, serializers, viewsets | django-api.md |
| Django testing | Django test patterns, factories | django-testing.md |
| Django pytest | pytest-django, fixtures, parametrize | django-pytest.md |
| Django celery | Async tasks, queues, beat | django-celery.md |
| Django quality | Code quality, linting, formatting | django-quality.md |
| Django imports | Import organization, circular imports | django-imports.md |
| Django decision tree | Framework selection, when to use Django | django-decision-tree.md |
| Django decomposition | Breaking down Django monoliths | decomposition-django.md |
| FastAPI | ||
| FastAPI basics | Routes, dependencies, validation | python-fastapi.md |
| Web frameworks | Django vs FastAPI vs Flask comparison | python-web-frameworks.md |
| Async Python | ||
| Async basics | asyncio, await, event loop | python-async.md |
| Async patterns | Concurrent patterns, asyncio best practices | python-async-patterns.md |
| Type Safety | ||
| Type hints | Gradual typing, annotations | python-type-hints.md |
| Python typing | TypedDict, Protocol, Generic | python-typing.md |
| Testing | ||
| pytest basics | Fixtures, parametrize, markers | python-testing-pytest.md |
| Python Core | ||
| Python basics | Language fundamentals, patterns | python-basics.md |
| Python overview | Quick reference | python.md |
| Python modern 2026 | Python 3.12/3.13 features | python-modern-2026.md |
| Python code quality | ruff, mypy, black, isort | python-code-quality.md |
| Poetry setup | Dependency management, pyproject.toml | python-poetry-setup.md |
Tools
- Frameworks: Django 5.x, FastAPI 0.1x, Flask
- Testing: pytest, pytest-django, pytest-asyncio, factory-boy
- Type checking: mypy, pyright
- Linting: ruff, flake8, pylint
- Formatting: black, isort
- Package management: poetry, pip-tools, uv
Related Sub-Skills
| Sub-skill | Relationship |
|---|---|
| faion-backend-developer | Database patterns (PostgreSQL, Redis) |
| faion-api-developer | REST/GraphQL API design |
| faion-testing-developer | Advanced testing patterns |
| faion-devtools-developer | Architecture patterns, code quality |
Integration
Invoked by parent skill
faion-software-developer when working with Python code.
faion-python-developer v1.0 | 24 methodologies