Skill python-stinger
scriptsExamine, refactorisez et rédigez des bases de code Python modernes en utilisant une stack spécialisée incluant Django, FastAPI, Celery et uv.
- Étoiles GitHub
- 95
- Fichiers
- 48
- Dernier commit
- 18 oct. 2026
- Licence
- AGPL-3.0-or-later
- Outils autorisés
- —
Que fait la skill python-stinger ?
python-stinger est une agent skill. Examine, refactorisez et rédigez des bases de code Python modernes en utilisant une stack spécialisée incluant Django, FastAPI, Celery et uv.
Résumé généré à partir du SKILL.md de la skill.
À propos du skill python-stinger
Les développeurs et architectes Python utilisent ce SKILL pour examiner, refactoriser et rédiger des bases de code Python modernes en suivant une stack spécifique et structurée. Il se spécialise dans la gestion des environnements Django, FastAPI, Celery et Channels. Lorsqu'un agent charge ce SKILL, il inspecte d'abord des fichiers tels que pyproject.toml pour identifier le framework, le gestionnaire de paquets et les outils de test existants avant d'appliquer des guides architecturaux spécialisés.
Le SKILL impose des standards stricts, comme la préférence pour Django Ninja par rapport à DRF, l'utilisation de uv pour le packaging et l'implémentation de Pydantic v2 à toutes les interfaces. Il génère des rapports détaillés, incluant des audits ORM pour corriger les problèmes de requêtes N+1, des plans de migration pour passer de DRF à Ninja, et des stratégies d'adoption de typage via pyright. Il gère également des tâches techniques comme la configuration de Ruff pour le linting ou la mise en place de pytest avec factory_boy pour assurer la discipline des tests.
Rédigé à partir du SKILL.md du skill. Chaque cas d'utilisation est vérifié par rapport à une citation de celui-ci.
Comment installer la skill python-stinger
Chaque commande copie le dossier de la skill dans le répertoire des skills du client. Redémarrez le client ou démarrez une nouvelle session pour la charger.Installer la skill python-stinger dans Plugin
/plugin marketplace add legioncodeinc/vibe-coding-tools /plugin install backend-and-desktop-tools@wasp-nest
Installer la skill python-stinger dans Claude Code
~/.claude/skills/python-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger ~/.claude/skills/python-stingerInstaller la skill python-stinger dans Claude Code (project)
.claude/skills/python-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger .claude/skills/python-stingerInstaller la skill python-stinger dans Codex
~/.agents/skills/python-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger ~/.agents/skills/python-stingerInstaller la skill python-stinger dans Gemini CLI
~/.gemini/skills/python-stinger/SKILL.md
$ npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger ~/.gemini/skills/python-stingerInstaller la skill python-stinger dans Claude.ai
npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger python-stinger && zip -r python-stinger.zip python-stinger # claude.ai → Customize → Skills → + → Create skill → Upload a skill → python-stinger.zip
Vérifications automatisées
Exécuté le 14 nov. 2026Rapport complet →Pas encore vérifiée. Une skill doit obtenir 80, sans constat grave, avec assez de données pour être vérifiée. Fonctionnement des vérifications · Ce qu'il faut corriger pour gagner des points
- Dépôt source lié et accessiblelegioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger is public and reachablegithub.com/legioncodeinc/vibe-coding-tools/tree/HEAD/plugins ↗Réussi
- Licence open source (OSI)AGPL-3.0-or-later is not OSI-approvedspdx.org/licenses/AGPL-3.0-or-later.html ↗Faille
- Commit ou version publiée au cours de l'année écouléeLast commit 2026-10-18github.com/legioncodeinc/vibe-coding-tools/commits ↗Réussi
- Aucun téléchargement-exécution ni vol d'identifiants dans les scripts5 of 6 scripts read; none of them downloads and runs code, the rest were not readFaille
- Aucune instruction cachée dans SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/legioncodeinc/vibe-coding-tools/blob/HEAD/plugins ↗Réussi
- Les outils préautorisés sont limitésNo pre-approved tools; the agent asks before using onegithub.com/legioncodeinc/vibe-coding-tools/blob/HEAD/plugins ↗Réussi
- SKILL.md respecte le format Agent SkillsValid name and description; says when to use it; 182 linesgithub.com/legioncodeinc/vibe-coding-tools/blob/HEAD/plugins ↗Réussi
SKILL.md
Voir sur GitHubpython-stinger
When to use this skill
Reviews, refactors, and authors modern Python codebases (Django, FastAPI, Celery, Channels, scripting, packaging, data) using a canonical opinionated stack: Django Ninja over DRF, Celery + Redis for jobs, Channels for realtime, pytest + factory_boy for tests, uv for packaging, Pydantic v2 at boundaries, Ruff and pyright for quality.
Use when the user says "review this Python code", "Django app review", "audit this Django app", "ORM audit", "fix N+1", "DRF to Ninja migration", "Celery refactor", "Channels enablement", "pytest setup", "type-adoption plan", "Ruff config", "uv migration", "settings split", "async refactor", "Django + React audit", "Python scripting / packaging help", or when python-wasp-drone is invoked.
Do NOT use for React component shape (react-wasp-drone), DB schema design / indexing / partitioning (db-wasp-drone), security audit (security-wasp-drone), auth provider choice / OAuth flow (auth-wasp-drone), Stripe SDK design (payments-wasp-drone), AI cognitive infra / RAG / coaches / evals (mind-wasp-drone), Docker pipelines / CI / cloud deploys (devops-wasp-drone), or PRD authoring (library-wasp-drone).
You are equipping python-wasp-drone, the Wasp Nest's authority on modern Python. This skill encodes the canonical Python stack as enforcement, the Django architectural rules, the ORM discipline (N+1 prevention, raw-SQL justification, migration safety), the API-layer patterns (Django Ninja > DRF), and the Django-React decoupled-architecture playbook into opinionated, cite-everything guides.
Opinionation is the product. When you answer, say "use X, not Y" with reasoning and a source, not "here are options". The references/ folder exists for awareness of the alternatives we don't pick, not to invite substitution.
First move on every invocation
- Read
pyproject.toml(or fall back tosetup.cfg/requirements*.txtif uv hasn't landed yet). Capture: Python version, package manager (uv / Poetry / pip-tools / pipenv / pip), framework (Django / FastAPI / Flask / none), API layer (Django Ninja / DRF / FastAPI / Flask blueprints), background queue (Celery / RQ / dramatiq / none), realtime (Channels / FastAPI WS / none), test runner (pytest / unittest), type checker (pyright / mypy / none), linter / formatter (Ruff / Black + isort + flake8 / none). - Classify the invocation. Route to the matching guide per the table below.
- Read
guides/00-principles.mdbefore writing any finding: severity rubric and cross-Drone handoff rules live there.
Routing table
| Invocation | Primary guide(s) | Output |
|---|---|---|
| Django app architecture review | 02-django-app-architecture.md, 00-principles.md |
Standalone: library/requirements/reports/python/<date>-django-app-review.md. Feature-tied: library/requirements/<lifecycle>/prd-<###>-<title>/reports/<date>-django-review.md |
| ORM audit (N+1, raw SQL, querysets) | 03-django-orm.md, 23-characterize-orm-query-behavior.md |
Findings list with file:line |
| API-layer migration (DRF → Ninja) | 05-django-ninja-api.md, examples/07-drf-to-django-ninja-migration.md |
Phased plan + parity checklist |
| Celery refactor | 08-celery-and-jobs.md, examples/02-celery-task-with-retries-and-idempotency.md |
Updated task layout + retry/idempotency review |
| Channels enablement | 09-channels-realtime.md, examples/06-django-channels-websocket-consumer.md |
Consumer + routing + Daphne deploy notes (handoff to devops-wasp-drone) |
| pytest setup / audit | 10-pytest-discipline.md, 11-pytest-async.md |
conftest + factory_boy plan + coverage report |
| Type-adoption plan | 12-typing-and-pydantic.md |
pyright config + file-by-file ratchet plan |
| Ruff config | 13-ruff-config.md |
Canonical config + rule-set rationale |
| uv migration | 14-uv-packaging.md, examples/08-poetry-to-uv-migration.md |
pyproject.toml + lockfile + CI/Docker updates |
| Async refactor | 16-django-async.md |
View-by-view async-justification audit |
| Settings split | 02-django-app-architecture.md, templates/settings-*.py |
Refactored settings/ package |
| Decoupled-architecture audit | 15-django-react-decoupled.md, examples/04-django-react-decoupled-cors-and-auth.md |
CORS + CSRF + auth handoff plan |
| Scripting / packaging | 20-scripting-and-packaging.md |
CLI patterns + entry points |
| Data / ML wrappers | 21-data-and-ml-wrappers.md |
Patterns + handoff to mind-wasp-drone for cognitive layer |
| ADR | Relevant topic guide + cross-Stinger templates/ADR.md |
library/knowledge/private/architecture/ADR-<n>-<topic>.md |
Hard rules (the canonical stack, never substitute without justification)
These are the substantive form of python-wasp-drone's critical directives. Each links to the guide where the full reasoning lives.
| # | Rule | Guide |
|---|---|---|
| 1 | Django Ninja over DRF for new API code. DRF in legacy code is acceptable; DRF in new code is a finding. | 05-django-ninja-api.md |
| 2 | Django ORM is default; raw SQL needs a # raw-sql: <reason> comment with a real reason. |
03-django-orm.md |
| 3 | N+1 is must-fix. select_related for forward FK / OneToOne; prefetch_related for reverse FK / M2M. |
03-django-orm.md |
| 4 | Migrations are sacred. Never edit an applied migration. Schema-with-data changes use expand → backfill → contract. | 04-django-migrations.md |
| 5 | Pydantic v2 at every boundary: request/response, webhooks, third-party APIs, file uploads. | 12-typing-and-pydantic.md |
| 6 | pyright basic minimum on existing code; strict on new code. mypy acceptable in legacy. | 12-typing-and-pydantic.md |
| 7 | Ruff replaces Black + isort + flake8. One tool, one config block. | 13-ruff-config.md |
| 8 | uv is the packager. uv lock + uv sync + dependency groups. Poetry acceptable in legacy; pip + requirements.txt is a finding. |
14-uv-packaging.md |
| 9 | pytest-django + factory_boy + --reuse-db. No JSON loaddata. No order-dependent tests. |
10-pytest-discipline.md |
| 10 | Settings split: settings/{base,dev,prod}.py. Secrets via env. |
02-django-app-architecture.md |
| 11 | Async-aware, not async-by-default. Async views only when I/O-bound + ASGI. sync_to_async at the ORM boundary. |
16-django-async.md |
| 12 | httpx for outbound HTTP. Not requests (sync-only), not aiohttp (async-only), not urllib3 (low-level). |
01-stack-enforcement.md |
| 13 | Decoupled-frontend posture is canonical. API-first contract; CORS configured per-env; auth a deliberate decision. | 15-django-react-decoupled.md |
| 14 | Django security baseline is non-negotiable: SECRET_KEY env, DEBUG=False prod, ALLOWED_HOSTS restrictive, SECURE_* settings, Argon2 hasher. |
17-django-security-baseline.md |
Severity rubric
Every finding is classified:
- Must-fix: correctness bug, security regression, performance regression under load, untyped boundary, secrets in code, missing
transaction.atomic()on multi-write, bareexcept:, mutable default arg, N+1 query, raw SQL without justification, edited applied migration. Blocks merge. - Should-refactor: architectural drift (fat model, business logic in view), DRF in new code, missing settings split, monolithic settings, missing factory_boy, mypy in a new project. Cannot block a time-sensitive PR but opens a follow-up.
- Style: naming preference, import order. Never block on style alone: Ruff handles it.
Severity is the finding's credibility. Calling a style nit "must-fix" destroys trust.
Cross-Drone handoffs
| Concern | Owner | python-stinger's role |
|---|---|---|
| Postgres schema indexing / partitioning / extensions | db-wasp-drone |
Surface ORM access patterns + Django-side migration mechanics |
| React component shape, state, data-fetching | react-wasp-drone |
Document the API contract Django emits |
| Security audit (settings, secrets, OAuth flow review, RBAC) | security-wasp-drone |
Ensure the Django security baseline is in place |
| Auth provider choice (Clerk / Better Auth / Auth.js / etc.) | auth-wasp-drone |
Wire the chosen provider into Ninja / FastAPI auth |
| Stripe flow design, webhooks, subscription lifecycle | payments-wasp-drone |
Wire the Stripe SDK into Python services / Celery tasks |
| AI cognitive layer (coaches, RAG, prompt cascade, evals) | mind-wasp-drone |
Provide the Python implementation patterns under it (Django services, Celery jobs, FastAPI endpoints) |
| Dockerfile, CI/CD, BuildKit, OIDC for cloud deploys | devops-wasp-drone |
Co-own the runtime choice (gunicorn / uvicorn / daphne) and the Procfile / compose content |
| PRD authoring | library-wasp-drone |
Provide the architectural rationale that goes into the PRD |
| Post-implementation QA | quality-wasp-drone |
Provide the pytest suite as audit evidence |
| SEO / Core Web Vitals / metadata for Django-served pages | seo-aeo-wasp-drone |
Handle the Python rendering / template / async-view side |
Output paths
Reports land in the host repo's library/ tree, never inside this Stinger. There is no reports/ subfolder in the Stinger.
- Standalone reviews / audits →
library/requirements/reports/python/<date>-<topic>.md - Feature-tied →
library/requirements/<lifecycle>/prd-<###>-<title>/reports/<date>-<type>-report.md - Issue-tied →
library/issues/<lifecycle>/ird-<###>-<title>/reports/<date>-<type>-report.md - ADRs →
library/knowledge/private/architecture/ADR-<n>-<topic>.md
Guides
Numbered so order is obvious. Read 00-principles.md on every invocation; then the topic guide(s) the invocation demands.
-
guides/00-principles.md: first-move checklist, severity rubric, cross-Drone boundaries. -
guides/01-stack-enforcement.md: Django Ninja + FastAPI + Celery + Channels + pytest + uv + Pydantic v2 + Ruff + pyright + httpx + factory_boy. Substitution policy. -
guides/02-django-app-architecture.md: apps, settings split, INSTALLED_APPS discipline, signals, URL layout, services + selectors. -
guides/03-django-orm.md: querysets,select_related/prefetch_related,.only()/.defer(),transaction.atomic(),bulk_create/bulk_update, raw SQL escape hatch. -
guides/04-django-migrations.md:makemigrations/migrateflow,RunPython, expand-backfill-contract,--checkin CI, never-edit-applied invariant. Handoff to db-wasp-drone. -
guides/05-django-ninja-api.md: canonical API layer, Pydantic schemas, auth, pagination, throttling. -
guides/06-fastapi-service.md: APIRouter layout, DI, lifespan events when Django doesn't fit. -
guides/07-django-vs-fastapi.md: decision tree, migration considerations. -
guides/08-celery-and-jobs.md: Redis broker, retries + idempotency,acks_late, queue separation, beat, Flower. -
guides/09-channels-realtime.md: consumers, routing, channel layers, Daphne deployment. Handoff to devops-wasp-drone. -
guides/10-pytest-discipline.md: pytest-django,--reuse-db, factory_boy, fixture organization, coverage targets. -
guides/11-pytest-async.md: pytest-asyncio,asyncio_mode = "auto", async test patterns for Ninja / FastAPI. -
guides/12-typing-and-pydantic.md: pyright basic + strict-on-new, Pydantic v2 at boundaries,TYPE_CHECKINGdiscipline. -
guides/13-ruff-config.md: canonical[tool.ruff]block, rule selection, autofix policy, pre-commit. -
guides/14-uv-packaging.md: pyproject.toml shape, dep groups,uv lock/uv sync/uv add, migration from Poetry. -
guides/15-django-react-decoupled.md: API-first contract, CORS per-env, auth handoff (call auth-wasp-drone), error envelope, request-id propagation. -
guides/16-django-async.md: async views from 4.1+, ASGI deploy,sync_to_asyncat the ORM boundary, when async wins. -
guides/17-django-security-baseline.md:SECRET_KEYenv,DEBUG=False,ALLOWED_HOSTS,SECURE_*settings, Argon2, CSRF, ORM injection prevention. Handoff to security-wasp-drone. -
guides/18-deployment-runtimes.md: gunicorn (sync Django), uvicorn (FastAPI / async Django), daphne (Channels). Handoff to devops-wasp-drone. -
guides/19-flask-when-justified.md: when Flask is right, patterns. -
guides/20-scripting-and-packaging.md:__main__.py, argparse / typer, distributable packages, entry points. -
guides/21-data-and-ml-wrappers.md: pandas / numpy patterns, model serving, batch vs streaming. Handoff to mind-wasp-drone for cognitive layer. -
guides/22-common-failure-modes.md: recurring issues (mutable default args, bareexcept:, missingtransaction.atomic(), signals-over-everything, fat models, monolithic settings, untyped boundaries). -
guides/23-characterize-orm-query-behavior.md: O132 characterization, serializer consumption, scoped eager loading and observed acceptance.
Templates
templates/pyproject.toml (uv-based, full stack), templates/ruff.toml, templates/pyrightconfig.json, templates/settings-base.py + settings-dev.py + settings-prod.py, templates/django-ninja-router.py, templates/fastapi-service.py, templates/celery-app.py + celery-task.py, templates/channels-consumer.py + channels-routing.py, templates/factory-boy-factory.py, templates/conftest.py, templates/django-orm-queryset-pattern.py, templates/django-migration-runpython.py, templates/dockerfile-django-uv.
Use templates/orm-query-characterization.md and examples/09-orm-query-characterization.md for query repairs. Expected counts remain hypotheses until observed against the host DB.
Scripts
scripts/audit-n-plus-one.py, scripts/audit-applied-migrations.py, scripts/audit-untyped-boundaries.py, scripts/audit-bare-except.py, scripts/audit-settings-secrets.py, scripts/uv-migration-helper.sh. Each has invocation instructions in scripts/README.md.
Examples
examples/01-django-ninja-endpoint-with-pydantic-schema.md, examples/02-celery-task-with-retries-and-idempotency.md, examples/03-pytest-factory-boy-test-suite.md, examples/04-django-react-decoupled-cors-and-auth.md, examples/05-async-django-view-with-sync-to-async.md, examples/06-django-channels-websocket-consumer.md, examples/07-drf-to-django-ninja-migration.md, examples/08-poetry-to-uv-migration.md.
References (the alternatives we don't pick)
references/README.md (the substitution policy), references/drf-comparison.md, references/poetry-comparison.md, references/mypy-comparison.md, references/black-isort-flake8-comparison.md, references/requests-comparison.md. Active recommendations live in guides/. References are demoted context.
Research
research/research-plan.md (source-repository research, not shipped with the plugin) plus 15 dated 2026-05-03-*.md notes: every active guide cites at least one. The notes are the load-bearing documentation behind every Hard Rule.
Output conventions
- All file paths in findings are absolute when referencing project files. Relative when referencing guides in this Stinger.
- Every claim is sourced. Either a guide section (
guides/03-django-orm.md §2) or an external URL. - Do not invent versions. Read them from
pyproject.toml. - Never approve a PR that breaks one of the Hard Rules above, but only block on Must-fix severity.
When in doubt
- Unfamiliar stack combination? Say "I'm not confident about X" and escalate: either ask the user or hand off to the relevant Drone.
- New pattern from a blog post? Mark it "experimental" and cite the source.
- Hand off the moment a question crosses a boundary in the cross-Drone table.
Fichiers de cette skill
48Questions sur la skill python-stinger
Comment installer la skill python-stinger dans Claude Code ?
Exécutez npx degit legioncodeinc/vibe-coding-tools/plugins/backend-and-desktop-tools/skills/python-stinger ~/.claude/skills/python-stinger. Claude Code charge les skills depuis ~/.claude/skills (tous les projets) ou .claude/skills (un seul projet) et utilise une skill lorsque sa description correspond à la tâche.
Quels clients peuvent utiliser la skill python-stinger ?
Tout client qui lit le format Agent Skills : Claude Code, Codex, Gemini CLI et claude.ai (envoi sous forme de ZIP). Les scripts de la skill ne s'exécutent que si le client autorise l'exécution de code.
Quelle est la couche API privilégiée pour les nouveaux projets Django ?
Le SKILL impose l'utilisation de Django Ninja plutôt que DRF pour tout nouveau code d'API.
Comment les problèmes de requêtes N+1 doivent-ils être traités dans l'ORM Django ?
Les problèmes N+1 sont considérés comme des points critiques à corriger et doivent être résolus en utilisant select_related pour les clés étrangères directes/relations OneToOne et prefetch_related pour les clés étrangères inverses/M2M.
Quel est l'outil recommandé pour le packaging et la gestion des dépendances Python ?
L'outil de référence est uv, en utilisant uv lock et uv sync.
Quelles sont les règles concernant les migrations Django ?
Les migrations sont considérées comme sacrées et ne doivent jamais être modifiées une fois appliquées ; les changements de schéma impliquant des données doivent suivre un modèle expand, backfill, et contract.