CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

generate-migration

Generate or review Django database migrations for Sentry. Use when creating or reviewing migrations and data migrations, adding/removing columns or tables, adding indexes, or resolving migration conflicts.

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A high-quality skill body: it is dense with project-specific knowledge Claude could not infer, fully executable, and well-structured with explicit validation checkpoints for destructive migration operations. The main improvements are removing the duplicated phase-1/phase-2 gating paragraph and making error-recovery loops explicit.

Suggestions

Deduplicate the repeated paragraph in 'Deleting Columns' and 'Removing a Model' ("Write both up front, but they must be two separate PRs... merging them together drops the column/table while old code is still running") into a single shared statement, e.g. a brief 'Two-phase deletions' preamble both sections reference.

Add an explicit error-recovery loop after the local-apply safety check in 'After Generating', e.g. 'If the apply fails or flags an unsafe operation, fix the migration (add is_post_deployment, use SafeDeleteModel, etc.) and re-apply before opening the PR.'

Consider moving the complete two-phase deletion walkthroughs (Deleting Columns / Removing a Model) into a references/ file (e.g. DELETIONS.md), keeping a one-line summary and trigger in SKILL.md to reduce the inline length.

DimensionReasoningScore

Conciseness

The body is dense with Sentry-specific, non-obvious knowledge (SafeRemoveField/DeletionAction.MOVE_TO_PENDING, historical_silo_assignments, TestMigrations mechanics) and assumes Claude's competence rather than explaining Django basics. Minor trimming is possible: the phase-1/phase-2 PR-and-deploy-gating paragraph appears nearly verbatim in both 'Deleting Columns' and 'Removing a Model', and the is_post_deployment comment guidance is slightly discursive. This sits at 'efficient with minor instances of over-explanation', above score 3 (which would require noticeable padding) and below the every-token-earns-its-place ideal.

4 / 5

Actionability

Guidance is fully executable throughout: concrete commands ('sentry django makemigrations <app_name> --empty', 'sentry django sqlmigrate', 'bin/update-migration <migration_name>'), a complete copy-paste-ready TestMigrations example, a full operations list for the two-phase deletion, and specific pytest flags (--migrations, --reuse-db, --create-db). This matches the anchor for copy-paste ready commands and code covering the common cases.

5 / 5

Workflow Clarity

Sequences are clear and well-ordered: the 'After Generating' numbered checklist includes explicit validation checkpoints (verify SQL with sqlmigrate, apply locally so the framework's safety checks catch unsafe ops before CI), and the destructive column/model deletion workflows include the safety-critical ordering rationale ('Run makemigrations twice, in this order') and deploy gating. It falls just short of a 5 because error-recovery feedback loops are implicit — there is no explicit 'if the safety check fails, do X and re-run' path, which the top anchor requires.

4 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/), and the single SKILL.md is well-organized with clear section headers covering commands, verification, testing, and per-operation guidelines — nothing is buried or nested. At ~155 lines it exceeds the under-50-line simple-skill case, and some inline material (the full two-phase deletion recipes and the complete test example) could arguably live in a reference file, which is the 'minor organization gaps' of score 4 rather than the fully-optimized-split of 5.

4 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it states concrete capabilities in third person, gives an explicit 'Use when' clause with a comprehensive list of trigger scenarios, and is tightly scoped to Django migrations for Sentry. The only gap is a few missing natural synonyms (e.g., 'schema changes', 'backfill').

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Generate or review Django database migrations' — and comprehensively enumerates the sub-tasks: 'creating or reviewing migrations and data migrations, adding/removing columns or tables, adding indexes, or resolving migration conflicts'. This matches the anchor for multiple specific concrete actions with comprehensive coverage; nothing above that anchor exists and score 4 would understate the breadth of enumerated operations.

5 / 5

Completeness

It explicitly answers 'what' ('Generate or review Django database migrations for Sentry') and 'when' with a concrete 'Use when...' clause enumerating specific triggers. This matches the anchor for clearly and explicitly answering both; score 4 would apply only if the 'when' were less specific than the enumerated trigger list.

5 / 5

Trigger Term Quality

Good natural keyword coverage — 'migrations', 'data migrations', 'adding/removing columns or tables', 'adding indexes', 'migration conflicts' are phrases users would plausibly say. A few natural synonyms are missing (e.g., 'schema changes', 'backfill', 'renaming'), keeping it just below the comprehensive-with-synonyms anchor of 5; it is clearly above score 3, which requires missing common variations.

4 / 5

Distinctiveness Conflict Risk

The niche is tightly scoped — Django database migrations specifically for Sentry — with distinct, unambiguous triggers that would rarely conflict with other skills. Only a hypothetical general-Django-migrations skill would overlap, and the Sentry scoping minimizes that; this fits the clear-niche-with-minimal-conflict anchor.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

getsentry/sentry

Path

.agents/skills/generate-migration/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.