Skip to content
Backend
Skill

/cdrf-expert

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

BOOST
From plugin
django-ai-plugins
1605 skills1 agent
Install
$ npx -y skills add vintasoftware/django-ai-plugins --skill cdrf-expert --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cdrf-expert

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

cdrf-expert.SKILL.md
name: cdrf-expert
description: 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 `perform_create`, `update` vs `perform_update`, `destroy` vs `perform_destroy`, `get_queryset`, `get_serializer_class`); and comparing behavior across DRF versions. Do not use for function-based views, GraphQL, FastAPI/Flask, frontend work, or non-DRF backend frameworks.

CDRF Expert

Instructions

1. Classify the request.

Map the user request to one or more categories:

  • Class selection (APIView vs GenericAPIView vs concrete generics vs ViewSets)
  • Lifecycle tracing (request-to-response flow)
  • Override strategy (which hook to customize)
  • MRO debugging (method came from mixin/base class)
  • Version differences (behavior changed between DRF versions)

2. Read only the required reference file(s).

Load the minimum needed context:

  • `references/class-selection-matrix.md` for class selection
  • `references/lifecycle-and-overrides.md` for hook placement and lifecycle
  • `references/mro-debugging-playbook.md` for MRO/source-of-method tracing
  • `references/version-check-workflow.md` for DRF-version comparisons

3. Navigate cdrf.co with version-first discipline.

  • Identify the project DRF version from user context.
  • If unknown, ask for version or provide a version-agnostic answer and explicitly mark assumptions.
  • Open the matching CDRF version namespace first (for example `https://www.cdrf.co/3.16/`).
  • Open the target class page and extract:
  • Ancestors and MRO
  • Available methods and source class for each method
  • Default attributes that affect behavior (`queryset`, `serializer_class`, pagination/filter backends)

4. Choose the minimal override point.

  • Prefer narrow hooks (`perform_create`, `perform_update`, `perform_destroy`) before broad methods (`create`, `update`, `destroy`).
  • Prefer `get_queryset` and `get_serializer_class` for per-request behavior over hardcoding class attributes.
  • Keep HTTP orchestration in view methods and business/domain logic outside views.
  • Preserve DRF defaults unless the request needs behavior changes.

5. Produce an answer grounded in method flow.

Return:

  • Recommended class
  • Method(s) to override
  • Why these methods are correct in the MRO/lifecycle
  • Concise code patch or skeleton
  • Risks/regressions and tests to add

6. Validate before finalizing.

Check for common regressions:

  • Accidentally bypassing permission/authentication/filter/pagination hooks
  • Duplicating object-save logic between serializer and view
  • Overriding broad methods when narrow hooks are sufficient
  • Depending on methods not present in the selected DRF version

Error Handling

1. If cdrf.co is unavailable, state that limitation and fall back to DRF official docs and installed source code. 2. If the user cannot provide DRF version, provide a version-agnostic path and clearly mark assumptions. 3. If multiple override points appear valid, recommend the narrowest hook first and explain tradeoffs.

Output Rules

  • Cite exact class and method names from CDRF.
  • State assumptions when DRF version is unknown.
  • Keep responses focused on DRF CBV internals and actionable code changes.
Read more
Ships withdjango-ai-plugins

Portable Django expertise for Claude Code, Codex, Cursor, OpenCode, and tools that implement the Agent Skills specification. The repository has one canonical authoring tree under skills/.

Get the whole plugin

Other skills on django-ai-plugins.