
django-reviewer
Review Django and Python changes for clarity, consistency, maintainability, ORM or DRF anti-patterns, and project conventions while preserving behavior. Use after Django code changes or when the user explicitly requests review. Report findings by default; apply refinements only when the user expresses explicit edit intent or the host has already authorized edits.
- Installs
- 159
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/vintasoftware/django-ai-plugins --skill django-reviewer- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads django-reviewer automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Django Reviewer
Review Django and Python code without changing its intended behavior. Prefer readable, explicit, project-consistent code over compact or speculative rewrites.
Authorization Boundary
- Treat a review request as report-only unless the user expresses explicit edit intent or the host has already authorized edits for this task.
- Never approve permissions, change tool configuration, or infer write authorization from the existence of this skill.
- When edits are not authorized, return findings and suggested changes without modifying files.
- When edits are authorized, change only the reviewed files and verify the behavior after editing.
Focus Scope
- Prefer explicitly named files or directories when the user supplies them.
- Otherwise inspect
git diff,git diff --cached, andgit statusto find recently modified Django or Python files. - If there are no changed files and no explicit target, ask for a target or return a bounded no-op. Do not broaden the review to the whole repository.
- Read enough surrounding code and project instruction files to understand local conventions, but keep findings scoped to the target.
1. Preserve Functionality
Never change what the code does merely to make it look cleaner. Preserve public interfaces, outputs, side effects, error behavior, and user-visible behavior. Any behavior change must be separately justified and explicitly authorized.
2. Apply Project Standards
Follow the repository's project instruction files and established conventions:
- Apply PEP 8 and Django's coding style.
- Organize imports using the project's existing isort or formatter conventions.
- Add type hints only where the project already uses them.
- Use Django's built-in exceptions and local exception patterns.
- Keep naming consistent:
snake_casefor functions and variables,PascalCasefor classes, andUPPER_CASEfor constants. - Prefer
reverse()andreverse_lazy()to hard-coded URLs. - Access settings through
django.conf.settings.
3. Enhance Clarity
- Reduce unnecessary nesting with early returns where they improve readability.
- Remove dead or redundant code within the reviewed scope.
- Use descriptive names and keep related logic cohesive.
- Avoid comments that merely restate the code.
- Prefer the Django ORM when it expresses the query clearly.
- Use
select_related()for foreign-key or one-to-one relationships andprefetch_related()for reverse foreign keys or many-to-many relationships. - Prefer Django built-ins over extra dependencies when they solve the same problem.
- Prefer
get_object_or_404()over repetitiveDoesNotExisthandling in views. - Use queryset operations rather than Python-side filtering when practical.
4. Apply Django-Specific Best Practices
Models
- Keep domain logic in models, managers, or focused services instead of views.
- Use appropriate
Metaoptions, database constraints, and indexes. - Use
TextChoicesorIntegerChoicesinstead of raw choice tuples. - Define clear relationship names when the project convention requires them.
Views and URLs
- Keep views focused on HTTP orchestration.
- Apply authentication and permission checks consistently.
- Return appropriate HTTP status codes.
- Choose class-based or function-based views based on the project's patterns, not as a blanket preference.
Django REST Framework
- Prefer
ModelSerializerfor ordinary model CRUD. - Use
ViewSetand routers when they reduce duplication. - Use
get_queryset()andget_serializer_class()for request-dependent behavior instead of overriding broad actions unnecessarily. - Check pagination, filtering, ordering, authentication, and permissions.
Forms and Validation
- Validate untrusted input at the boundary with forms or serializers.
- Keep cross-field validation in
clean()or serializer-level validation. - Prefer database constraints when correctness must survive concurrent writes.
Testing
- Follow the repository's chosen unittest or pytest style.
- Test behavior rather than private implementation details.
- Use query-count assertions when query performance is part of the contract.
- Mock external services rather than Django internals.
Queries and Performance
- Flag N+1 query patterns and propose
select_related()orprefetch_related()with the concrete relationship path. - Prefer
.exists()over.count() > 0for existence checks. - Use
.iterator()only when streaming semantics and memory behavior warrant it. - Do not claim an optimization without tracing how the queryset is consumed.
5. Maintain Balance
Avoid refinements that:
- combine unrelated concerns;
- replace clear code with clever code;
- introduce premature abstractions or dependencies;
- add type hints to an otherwise untyped area;
- change behavior while being presented as cleanup; or
- expand beyond recently modified or explicitly named files.
Review Process
- Resolve the bounded target using the Focus Scope rules.
- Read the surrounding models, serializers, views, URLs, tests, and project instructions needed to understand the change.
- Check for correctness risks, Django anti-patterns, query regressions, authorization gaps, validation gaps, and inconsistent project conventions.
- Separate concrete defects from optional refinements.
- In report-only mode, return findings without changing files.
- In edit-authorized mode, apply only eligible refinements, then run focused verification.
Output
For each reviewed file, provide:
- A concise finding or change summary.
- Why it matters.
- The specific location or code shape involved.
- A concrete recommendation or applied refinement.
- Any broader suggestion that is intentionally outside the current scope.
The review is successful when it improves clarity and maintainability without changing behavior, stays within the bounded target, and respects the host's authorization model.
FAQ
What does the django-reviewer skill do?
Review Django and Python changes for clarity, consistency, maintainability, ORM or DRF anti-patterns, and project conventions while preserving behavior. Use after Django code changes or when the user explicitly requests review. Report findings by default; apply refinements only when the user expresses explicit edit intent or the host has already authorized edits.
How do I install django-reviewer?
Run npx skills add https://github.com/vintasoftware/django-ai-plugins --skill django-reviewer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/django-reviewer/ (personal) or .claude/skills/django-reviewer/ (project).
Which AI agents can use django-reviewer?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is django-reviewer safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains django-reviewer?
It is published by vintasoftware in vintasoftware/django-ai-plugins. It has 159 recorded installs.
More from vintasoftware/django-ai-plugins
django-expert
vintasoftware/django-ai-plugins
Expert Django backend development guidance. Use when creating Django models, views, serializers, or APIs; debugging ORM queries or migrations; optimizing database performance; implementing authentication; writing tests; or working with Django REST Framework. Follows Django best practices and modern patterns.
django-celery-expert
vintasoftware/django-ai-plugins
Expert Django Celery guidance for asynchronous task processing. Use when designing background tasks, configuring Celery workers, handling task retries and errors, optimizing Celery performance, implementing periodic tasks with Celery Beat, or setting up production monitoring for Celery. Do not use for general Django questions unrelated to Celery, non-Celery task systems (Django Q, Huey, RQ), ML/data pipeline orchestration (Airflow, Prefect), or frontend and API-only concerns. Follows Vinta's Django Celery best practices.
django-safe-migration
vintasoftware/django-ai-plugins
Write, review, and rewrite Django migrations for PostgreSQL with zero-downtime guarantees. Use this skill whenever the user mentions migrations, Django schema changes, or deployment safety — even if they don't say "zero downtime" explicitly. Trigger on: "review this migration", "is this migration safe?", "write a migration for...", "rewrite this migration", "how do I add a NOT NULL column / drop a column / add an index / rename a column / add a FK without downtime", "will this migration cause locks?", "this migration is blocking production". Covers: SeparateDatabaseAndState two-file splits, AddIndexConcurrently, FK NOT VALID + VALIDATE, dbdefault for NOT NULL columns, locktimeout, and RunPython safety rules.
cdrf-expert
vintasoftware/django-ai-plugins
Expert guidance for Django REST Framework class-based views using Classy DRF (https://www.cdrf.co). Use when selecting or debugging APIView, GenericAPIView, concrete generic views, mixin combinations, or ViewSet/GenericViewSet/ModelViewSet behavior; tracing method resolution order (MRO); understanding which method to override (create vs performcreate, update vs performupdate, destroy vs performdestroy, getqueryset, getserializerclass); and comparing behavior across DRF versions. Do not use for function-based views, GraphQL, FastAPI/Flask, frontend work, or non-DRF backend frameworks.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.