CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

database-migrations

Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments across PostgreSQL, MySQL, and common ORMs (Prisma, Drizzle, Kysely, Django, TypeORM, golang-migrate).

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/database-migrations/SKILL.md

The canonical home for this skill is database-migrations in affaan-m/ECC

SKILL.md
Quality
Evals
Security

Quality

Content

78%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 strong, highly actionable reference with executable examples and genuinely non-obvious guidance (expand-contract, concurrent indexing, batched backfills) organized under clear headers. Its weaknesses are the absence of any progressive disclosure — everything is inlined in one large SKILL.md with no references/ files — and the lack of an explicit post-migration validation/feedback loop.

Suggestions

Split the per-ORM sections into one-level-deep reference files (e.g., references/prisma.md, references/django.md) and keep SKILL.md as the overview + PostgreSQL patterns + safety checklist.

Add an explicit post-apply validation loop: run the tool's status command (e.g., 'prisma migrate status', 'migrate ... up' exit code), verify schema, and fix/retry on failure — especially given destructive/batch operations.

Trim token cost by cutting the Timeline Example and per-ORM schema samples (Claude can generate idiomatic Prisma/Drizzle schemas already), keeping only tool-specific migration gotchas.

DimensionReasoningScore

Conciseness

Code-first and dense; comments carry only non-obvious facts ('Postgres 11+ is instant, no rewrite', 'CONCURRENTLY cannot run inside a transaction block') rather than re-explaining basics. Not 5: at ~430 lines, sections like the Timeline Example and per-ORM schema samples add tokens beyond what the core guidance needs.

4 / 5

Actionability

Fully executable throughout: copy-paste-ready SQL with GOOD/BAD contrasts, complete CLI workflows per tool, full migration file examples (Kysely, golang-migrate, Django), and a batching DO-block that covers the common large-table case.

5 / 5

Workflow Clarity

Clear sequencing with most checkpoints present: a pre-flight Migration Safety Checklist, expand-contract phases with 'Verify data consistency', code-first-then-drop-column ordering, and dirty-state recovery via 'migrate force VERSION'. Not 5: no explicit post-apply validation loop (e.g., verify migration status/schema, fix and retry on failure), which matters for destructive database operations.

4 / 5

Progressive Disclosure

No bundle files exist and all ~430 lines are inline. Section headers are clear, but the per-ORM guides (Prisma, Drizzle, Kysely, Django, golang-migrate) each cover workflow + schema + advanced usage and clearly belong in separate one-level-deep reference files, matching the anchor for content that should be separate being inline.

3 / 5

Total

16

/

20

Passed

Description

70%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 specific, well-scoped description naming concrete capability areas and the exact tools covered, with excellent distinctiveness. Its main weakness is the absence of any 'Use when...' trigger clause, so a reader must infer activation conditions from the topic alone.

Suggestions

Append an explicit trigger clause, e.g. 'Use when creating or altering tables, adding columns or indexes, running data backfills, or planning zero-downtime schema deploys.'

Add natural trigger synonyms users actually say — 'backfill', 'add column', 'alter table', 'migrate database' — to strengthen trigger_term_quality.

Consider dropping or trimming the exhaustive tool list ('TypeORM', etc.) in favor of the trigger clause, since the list adds length without activation guidance.

DimensionReasoningScore

Specificity

Lists several concrete action types — 'schema changes, data migrations, rollbacks, and zero-downtime deployments' — plus named tools (PostgreSQL, MySQL, Prisma, Drizzle, Kysely, Django, TypeORM, golang-migrate). Not 5: 'Database migration best practices' framing is generic and common sub-tasks like adding columns, creating indexes, or backfilling data are not surfaced.

4 / 5

Completeness

Has a clear 'what' (migration best practices for schema changes, data migrations, rollbacks, zero-downtime deployments across named tools) but no 'Use when...' clause or any equivalent trigger guidance, which caps completeness at 3 per the rubric guidelines.

3 / 5

Trigger Term Quality

Includes natural user phrases like 'database migration', 'schema changes', 'rollbacks', 'zero-downtime' plus widely-said tool names. Not 5: misses common variations users actually say such as 'backfill', 'add column', 'alter table', or 'deploy without downtime'.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers — database migrations, rollbacks, zero-downtime deployments — and specific named ORMs/migration tools, giving minimal overlap risk with generic SQL or backend skills.

5 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

valeriibeck-star/claude-skills

Path

skills/database-migrations/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.