CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/django-best-practices

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

1.63x
Quality

87%

Does it follow best practices?

Impact

100%

1.63x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

django-models.jsonverifiers/

{
  "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"
    }
  ]
}

tile.json