Django patterns -- custom user model, project structure, models, views, URL routing, select_related/prefetch_related, signals vs save(), middleware, settings splitting, custom managers, management commands
92
87%
Does it follow best practices?
Impact
100%
1.63xAverage score across 5 eval scenarios
Passed
No known issues
{
"instruction": "Design Django models with TextChoices, timestamps, indexes, related_name, and query optimization",
"relevant_when": "Agent defines Django models or writes querysets that traverse relations",
"context": "Django models should use TextChoices for enum fields, auto_now_add/auto_now for timestamps, db_index on filtered fields, related_name on every ForeignKey, explicit on_delete, and select_related/prefetch_related to avoid N+1 queries.",
"sources": [
{
"type": "file",
"filename": "skills/django-best-practices/SKILL.md",
"tile": "tessl-labs/django-best-practices@0.2.0"
}
],
"checklist": [
{
"name": "text-choices-for-enums",
"rule": "Agent uses TextChoices (or IntegerChoices) for enum fields rather than raw string tuples",
"relevant_when": "Agent defines a model field with a fixed set of values"
},
{
"name": "auto-timestamps",
"rule": "Agent uses auto_now_add for created_at and auto_now for updated_at timestamps",
"relevant_when": "Agent adds timestamp fields to a model"
},
{
"name": "db-index-on-filtered-fields",
"rule": "Agent sets db_index=True on fields commonly used in filters, ordering, or lookups",
"relevant_when": "Agent defines model fields that will be queried"
},
{
"name": "related-name-on-fk",
"rule": "Agent sets related_name on ForeignKey and ManyToManyField for explicit reverse query access",
"relevant_when": "Agent defines ForeignKey or ManyToMany relationships"
},
{
"name": "explicit-on-delete",
"rule": "Agent specifies on_delete explicitly (CASCADE, PROTECT, SET_NULL, etc.) on every ForeignKey",
"relevant_when": "Agent defines ForeignKey fields"
},
{
"name": "select-related-for-fk",
"rule": "Agent uses select_related() when a queryset accesses ForeignKey or OneToOneField relations to avoid N+1 queries",
"relevant_when": "Agent writes a queryset that iterates over objects and accesses related ForeignKey fields"
},
{
"name": "prefetch-related-for-m2m",
"rule": "Agent uses prefetch_related() when a queryset accesses ManyToMany or reverse ForeignKey relations",
"relevant_when": "Agent writes a queryset that iterates over objects and accesses ManyToMany or reverse FK relations"
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
django-best-practices
verifiers