CtrlK
BlogDocsLog inGet started
Tessl Logo

database-migrations

Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL, Prisma, Drizzle, Kysely, Django, and golang-migrate. Use when writing a schema or data migration, adding a column or index to a large table, planning a rollback, or preparing a zero-downtime deploy.

72

Quality

89%

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

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 body: concrete executable patterns for every tool, clear expand-contract sequencing, and a genuine anti-pattern table. Its main weaknesses are structural (everything inlined in one long file with no reference files) and minor token waste on boilerplate examples, plus a missing verification loop on the batched backfill.

Suggestions

Split the five per-tool workflow sections into one-level-deep reference files (e.g., references/prisma.md, references/django.md), keeping SKILL.md as the safety principles, PostgreSQL patterns, and expand-contract overview with clearly signaled links.

Trim content Claude already knows — the Prisma model and Drizzle table schema examples and the Kysely programmatic migrator boilerplate — down to just the non-obvious warnings (e.g., the Kysely<any> rule and allowUnorderedMigrations caveat).

Add an explicit verification step after batched backfills (e.g., SELECT COUNT(*) WHERE normalized_email IS NULL must return 0) before proceeding to the contract phase.

DimensionReasoningScore

Conciseness

The safety patterns, SQL snippets, and tool commands are dense and earn their tokens, but sections like the Prisma/Drizzle schema examples and the ~35-line Kysely programmatic migrator restate boilerplate Claude already knows. This matches the 4 anchor (efficient, minor over-explanation that could be trimmed) rather than 5; it is not 3 because the padding is localized rather than pervasive.

4 / 5

Actionability

Nearly everything is copy-paste ready: executable ALTER/CREATE INDEX SQL with GOOD/BAD contrasts, a runnable batched-backfill DO block with FOR UPDATE SKIP LOCKED, exact CLI commands per tool, and complete Django/Kysely migration files. This matches the 5 anchor of fully executable guidance covering the common cases.

5 / 5

Workflow Clarity

The expand-contract pattern is clearly sequenced across phases with a concrete day-by-day timeline, and the pre-flight safety checklist plus "Verify data consistency" in Phase 2 provide real checkpoints. However, the batched backfill — a batch operation — has progress notices but no explicit post-run verification (e.g., confirm zero remaining NULLs), which is the 'minor validation gaps' of the 4 anchor rather than a clean 5.

4 / 5

Progressive Disclosure

Headers are clear and navigation within the file is easy, but this is a ~430-line monolith: the five per-tool workflow sections are exactly the content that belongs in one-level-deep reference files (e.g., references/prisma.md). This matches the 3 anchor (some structure, content that should be separate is inline); it is not 2 because the inlined content is well sectioned rather than a formless dump.

3 / 5

Total

16

/

20

Passed

Description

100%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.

An exemplary description: specific capability list, named tool coverage, explicit 'Use when' trigger clause, and clean third-person voice. It simultaneously satisfies the what, when, and which-tool questions a routing decision needs.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills" — plus named per-tool coverage for six tools (PostgreSQL, Prisma, Drizzle, Kysely, Django, golang-migrate). It matches the anchor for multiple specific concrete actions with comprehensive coverage; nothing is generic or padded.

5 / 5

Completeness

It explicitly answers both what (a named catalog of safe migration patterns with tool coverage) and when, via a literal "Use when..." clause with four concrete trigger conditions. This matches the 5 anchor exactly; the 4 anchor would require the 'when' to be less explicit.

5 / 5

Trigger Term Quality

Natural user phrasings are well covered: "writing a schema or data migration", "adding a column or index to a large table", "planning a rollback", "preparing a zero-downtime deploy", plus terms like backfill and rename. These are the phrases a user would actually say; only very peripheral synonyms (e.g., "ALTER TABLE") are absent, which is below the bar for dropping to the 4 anchor.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche (production database schema migrations) with tool-specific triggers that other skills would not fire on. Conflict risk with deployment or CI skills is minimal because triggers are anchored to schema/data migration language.

5 / 5

Total

20

/

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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
affaan-m/ECC
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.