Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
An unusually strong operational skill: every rule is backed by named commands, helper classes, or CI guards, and risky paths have explicit multi-phase sequences with validation. The residual gaps are minor — a few long prose passages could be trimmed, error-recovery loops are implicit, and some reference-grade detail is inlined in SKILL.md.
Suggestions
Add a brief 'if validation fails' branch to the Workflow section (e.g., what to check when sqlmigrate shows an unexpected DROP DEFAULT or the risk analyzer blocks a migration), making the existing validation steps into true feedback loops.
Tighten the longest prose passages (SafeDropTable deadlock mechanics, Django default= emission behavior) to the load-bearing rule plus a pointer, moving full explanations into safe-django-migrations.md alongside the other deferred detail.
Consider moving the DropForeignKey/DropColumnConstraints operational detail and the cross-language NOT NULL section into the referenced guides with section-anchored pointers, keeping SKILL.md's helper list as a routing table.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with project-specific, non-inferable knowledge (CI guard names, lock semantics, helper classes) and assumes Django competence — no padding like explaining what a migration is. A few passages could be tightened, e.g., the long prose on SafeDropTable deadlock mechanics and Django default= behavior partly re-states what an experienced model knows, which fits 'efficient; minor instances of over-explanation that could be trimmed' rather than the lean score-5 anchor. | 4 / 5 |
Actionability | Guidance is copy-paste ready throughout: exact commands ('DEBUG=1 ./manage.py makemigrations', './manage.py sqlmigrate <app> <migration_number>', the 'rg -n "INSERT INTO <table>|insertRow…"' grep), named helper operations (SafeAddIndexConcurrently, DropColumnConstraints, untrack_field), and complete executable code blocks for callable choices and db_default. This matches 'fully executable; copy-paste ready code or commands; specific examples cover the common cases'. | 5 / 5 |
Workflow Clarity | The Workflow section gives a clear classify → generate → apply safety rules → validate sequence, destructive operations carry explicit validation (sqlmigrate checks, 'confirm ./manage.py makemigrations --dry-run reports no state drift', audit_orphan_hot_table_fks, deploy-cycle waits), so the destructive-operations cap of 3 does not apply. It sits below the score-5 anchor because explicit error-recovery feedback loops ('if validation fails, do X') are mostly implicit — e.g., what to do when sqlmigrate shows a stray DROP DEFAULT is left to inference. | 4 / 5 |
Progressive Disclosure | No bundle files exist (references/, scripts/, assets/ are absent), and external material is deferred one level deep to clearly signaled repo docs with pinpointed sections — 'Read these files first' lists four docs with exact headings, and repeated pointers like 'Full guide: safe-django-migrations.md (## Dropping Columns)'. This is good structure with minor gaps: some deep inline detail (DropForeignKey/DropColumnConstraints semantics, the cross-language NOT NULL section) is arguably reference material embedded in the overview, which is the score-4 anchor rather than the cleanly split score-5 anchor. | 4 / 5 |
Total | 17 / 20 Passed |