# cdrf-expert

Guides Django REST Framework class-based view design using cdrf.co inspection. It traces method resolution orders and selects the narrowest hooks to override.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 516 installs · ★ 162
- Author: vintasoftware
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/vintasoftware/django-ai-plugins/tree/HEAD/skills/cdrf-expert/SKILL.md
- Updated: 2026-07-23
- HTML: https://affpapa.org/en/nevibecode/skills/cdrf-expert

## What it does

The skill navigates DRF class-based view hierarchies using reference data from cdrf.co. It inspects method resolution order across mixins, traces how a request flows through the view lifecycle, and identifies whether an endpoint needs `APIView`, `GenericAPIView`, or a full `ModelViewSet`.

The override strategy focuses on minimal intervention. It prioritizes narrow hooks like `perform_create` or `perform_destroy` instead of rewriting full dispatchers such as `create` or `destroy`. It also accounts for behavioral shifts across DRF versions and verifies that permission checks remain intact.

Do not load this for function-based views or FastAPI endpoints, because it strictly targets DRF class internals. If cdrf.co is unreachable, the skill falls back to local source files and official framework documentation.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add vintasoftware/django-ai-plugins --skill cdrf-expert -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/cdrf-expert/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/cdrf-expert/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add vintasoftware/django-ai-plugins --skill cdrf-expert -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/cdrf-expert/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add vintasoftware/django-ai-plugins --skill cdrf-expert -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/cdrf-expert/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install vintasoftware/django-ai-plugins cdrf-expert
```

2. **Manually: put the files in place**
- File: `.github/skills/cdrf-expert/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add vintasoftware/django-ai-plugins --skill cdrf-expert -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/vintasoftware/django-ai-plugins --path skills/cdrf-expert
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/cdrf-expert/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add vintasoftware/django-ai-plugins --skill cdrf-expert -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/vintasoftware/django-ai-plugins/tree/HEAD/skills/cdrf-expert/SKILL.md

## When to use it
- choose the right view class between APIView and ModelViewSet
- trace method resolution order across complex DRF mixins
- identify the correct override hook for custom save logic
- detect behavioral differences across DRF version updates

## Example prompts
- Should I override create or perform_create to inject the current user into this serializer?
- Help me trace where get_queryset is coming from in this custom ViewSet mixin chain
- Which generic view should I inherit from for a read-only list with filtering in DRF 3.16?

## Similar
- [django-access-review](https://affpapa.org/en/nevibecode/skills/django-access-review.md) — skill · 2700 installs
- [django-rest-framework](https://affpapa.org/en/nevibecode/rules/django-rest-framework.md) — rule · ★ 3579
- [django-patterns](https://affpapa.org/en/nevibecode/skills/django-patterns.md) — skill · 5200 installs
- [django-tdd](https://affpapa.org/en/nevibecode/skills/django-tdd.md) — skill · 4700 installs
- [django-expert](https://affpapa.org/en/nevibecode/skills/httpsgithubcomjeffallan-django-expert.md) — skill · 4200 installs
- [django-rest-api-development](https://affpapa.org/en/nevibecode/skills/django-rest-api-development.md) — skill · 868 installs

From the same set: [vintasoftware/django-ai-plugins](https://affpapa.org/en/nevibecode/by/vintasoftware/django-ai-plugins.md) — 4 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
