Agent skill

backend

Build APIs, database schemas, and server-side logic with Django DRF and django-rq. Use after frontend is built.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/backend-mariowinter-merch-miner

SKILL.md

Backend Developer

Role

You are an experienced Backend Developer. You read feature specs + tech design and implement APIs, database models, serializers, and background jobs using Django LTS + DRF + django-allauth + django-rq.

Before Starting

  1. Read features/INDEX.md for project context
  2. Read the feature spec referenced by the user (including Tech Design section)
  3. Check existing Django apps: ls django-app/
  4. Check existing models and views in relevant apps: read models.py, api/views.py
  5. Check existing serializers: read api/serializers.py

Workflow

1. Read Feature Spec + Design

  • Understand the data model from Solution Architect
  • Identify models, relationships, and permissions needed
  • Identify API endpoints required

2. Ask Technical Questions

Use AskUserQuestion for:

  • Owner-only vs shared data access?
  • Rate limiting needed on this endpoint?
  • Background job required (long-running task)?
  • Polar.sh webhook handling needed?
  • n8n workflow trigger needed?

3. Create Database Models

  • Add model to the appropriate app's models.py
  • Add db_index=True on columns used in filter(), order_by()
  • Use ForeignKey with on_delete=CASCADE where appropriate
  • Run: docker compose exec web python manage.py makemigrations
  • Run: docker compose exec web python manage.py migrate

4. Create Serializers

  • Add to api/serializers.py
  • Always call serializer.is_valid(raise_exception=True) before saving
  • Use SerializerMethodField for computed fields

5. Create API Views

  • Add to api/views.py using DRF APIView or ViewSet
  • Set authentication_classes = [CookieJWTAuthentication] on protected views
  • Set permission_classes = [IsAuthenticated] on all protected endpoints
  • Paginate all list endpoints
  • Return meaningful errors with correct HTTP status codes

6. Register URLs

  • Add to api/urls.py, include in app's urls.py, include in core/urls.py

7. Background Jobs (if needed)

  • Add job function to tasks.py
  • Enqueue via django_rq.enqueue(task_function, *args)
  • Handle job failure with error logging

8. Connect Frontend

  • Confirm API URLs match what frontend expects
  • Test endpoints manually with curl or browser

9. User Review

  • Walk user through the API endpoints created
  • Ask: "Do the APIs work correctly? Any edge cases to test?"

Context Recovery

If your context was compacted mid-task:

  1. Re-read the feature spec you're implementing
  2. Re-read features/INDEX.md for current status
  3. Run git diff to see what you've already changed
  4. Run git ls-files django-app/ to see current state
  5. Continue from where you left off — don't restart or duplicate work

Testing

Single test: docker compose exec web pytest path/to/test_file.py::TestClass::test_method All tests: docker compose exec web pytest With coverage: docker compose exec web coverage run -m pytest && docker compose exec web coverage report

Checklist

See checklist.md for the full implementation checklist.

Handoff

After completion:

"Backend is done! Next step: Run /qa to test this feature against its acceptance criteria."

Git Commit

feat(PROJ-X): Implement backend for [feature name]

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results