CtrlK
BlogDocsLog inGet started
Tessl Logo

database

Use BEFORE editing any file in `supabase/migrations/` or `supabase/schemas/`, OR when the user runs a `/database` subcommand (`compact local migration`, `rls scenarios`, `align`). Encodes the three contracts that protect the Grida database layer: applied migrations are immutable, RLS implementation mirrors tests (never the reverse), `schemas/*.sql` is the human-readable end-state. Companion to `supabase/AGENTS.md` (RLS, grants, security boundaries).

71

Quality

88%

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

88%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 well-crafted instruction-only skill body: concrete, sequenced procedures with validation and user-confirmation around destructive operations, a genuinely instructive worked example, and delegation of detail to external files instead of duplication. Its main lever is length — the three subcommand sections could be split into reference files to make the overview leaner.

Suggestions

Split each subcommand's detailed procedure ('compact', 'rls scenarios', 'align') into a reference file, keeping SKILL.md to the three contracts, the classification table, and the when-to-invoke summaries — the body is ~275 lines where a leaner overview would suffice.

Tighten the 'Spell out the silent edges' bullet list and the rhetorical asides ('A test failing because the policy is wrong is the test doing its job') into terse checklists — several sentences restate the same injunction.

Add an explicit error-recovery step after 'supabase db reset' (e.g. 'if reset or tests fail, fix the consolidated SQL and re-run') to close the feedback loop the validation checkpoints imply.

DimensionReasoningScore

Conciseness

The body is dense and prescriptive — no padded explanation of what migrations, RLS, or Supabase are, and judgment calls are compressed into table form (the migration classification table, the schemas-vs-migrations concern table). A few rhetorical flourishes ('A test failing because the policy is wrong is the test doing its job', 'Read both') and the long prose enumeration of RLS silent edges could be trimmed, but most tokens earn their place — matching anchor 4's 'efficient; minor instances of over-explanation'.

4 / 5

Actionability

For an instruction-only skill the guidance is fully concrete: numbered procedures for all three subcommands, a classification table with explicit signals and allowed actions, a worked example with real filenames showing both the right and the wrong move, exact commands ('supabase db reset', 'supabase test db', 'supabase migration new'), named personas, and specific assertion anti-patterns ('Replace is(count, 0) with ok(count >= 0)'). The rubric's scoring note confirms instruction-only skills are judged on guidance concreteness, which this fully meets — matching anchor 5's 'specific examples cover the common cases'.

5 / 5

Workflow Clarity

Each subcommand has a clearly sequenced numbered procedure with explicit validation checkpoints: compact requires classifying every migration, verifying the classification with the user before any destructive step, then a post-merge 'supabase db reset' plus 'supabase test db' check; align ends with a 'db reset' smoke check and forbids touching migrations; rls scenarios mandates both positive and negative assertions. Because destructive operations (deleting migration files) are guarded by classification, user confirmation, and post-hoc resets, the missing-validation cap at 3 does not apply — this matches anchor 5's clear sequence with explicit validation for risky operations.

5 / 5

Progressive Disclosure

The body is well organized into three clearly headed subcommand sections with per-section 'When to invoke' and procedure subheadings, and it delegates rather than duplicates — 'Skeleton + fixture/session conventions live in supabase/AGENTS.md § RLS testing — point readers there rather than re-list', plus one-level-deep links to AGENTS.md, seed.sql, and the opt-library skill. It falls short of anchor 5 only because at ~275 lines covering three distinct workflows, the per-subcommand detail is a natural candidate for reference files that would keep the top-level SKILL.md a leaner overview.

4 / 5

Total

18

/

20

Passed

Description

87%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: explicit before/when trigger guidance, a concrete statement of what the skill enforces, and tight scoping that eliminates conflict risk. Its only weakness is that trigger coverage leans on paths and subcommand names rather than the natural-language phrases ('merge/consolidate migrations') users might say.

Suggestions

Add the natural-language trigger phrases the body already recognizes — e.g. 'merge/consolidate migrations', 'schema drift', 'RLS test scenarios' — so the description fires on prose requests, not just path edits and subcommand invocations.

State the operational actions ('merges local-only migrations into one', 'writes pgTAP RLS scenario coverage', 'resyncs schemas/*.sql to the migrated end-state') in addition to the contracts, to sharpen the 'what' for readers who don't know the subcommands.

DimensionReasoningScore

Specificity

The description names concrete domain objects and actions — 'editing any file in supabase/migrations/', 'compact local migration', 'rls scenarios', 'align', and the three specific contracts ('applied migrations are immutable', 'RLS implementation mirrors tests', 'schemas/*.sql is the human-readable end-state'). It stops just short of anchor 5 because it describes the contracts it enforces more than the operational actions it performs (merge local migrations, write pgTAP scenarios, sync schema files), leaving a minor coverage gap.

4 / 5

Completeness

Both questions are answered explicitly: 'when' via the exemplary 'Use BEFORE editing any file in ... OR when the user runs a /database subcommand (...)' clause with concrete trigger phrases, and 'what' via the enumerated contracts ('applied migrations are immutable, RLS implementation mirrors tests (never the reverse), schemas/*.sql is the human-readable end-state'). This matches the anchor-5 good example's structure of a concrete what followed by an explicit when-with-triggers.

5 / 5

Trigger Term Quality

Strong coverage of natural trigger terms: 'supabase/migrations/', 'supabase/schemas/', the '/database' subcommand names ('compact local migration', 'rls scenarios', 'align'), 'RLS', 'grants'. It misses a few natural phrases a user would actually say — 'merge migrations', 'consolidate migrations', 'schema drift' — which the body itself lists as trigger phrases but the description omits, keeping it below anchor 5.

4 / 5

Distinctiveness Conflict Risk

The niche is unmistakable — scoped to 'supabase/migrations/', 'supabase/schemas/', the Grida database layer, and named /database subcommands — so no other skill would plausibly trigger on these phrases. Conflict risk is minimal, matching anchor 5's 'clear niche with distinct triggers'.

5 / 5

Total

18

/

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

relative_links

Relative link issues: 3 suspicious

Warning

Total

15

/

16

Passed

Repository
gridaco/grida
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.