CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

supabase-node

Express/Hono with Supabase and Drizzle ORM

45

Quality

56%

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/supabase-node/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body delivers highly concrete, mostly executable TypeScript for a complete Supabase + Drizzle backend with good section organization and a useful anti-patterns list. Its weaknesses are inlined-duplicated content in a single monolithic file, no validation/verification checkpoints in the setup workflow, and a few placeholder code stubs (Hono auth, test setup).

Suggestions

Split detail sections (routes reference, Hono alternative, storage, testing) into separate reference files and keep SKILL.md as a lean overview with one-level-deep pointers, eliminating the triplicated posts CRUD.

Add explicit validation checkpoints to the setup workflow, e.g. 'Run `supabase start` and confirm keys in .env', 'Run `npm run db:push` then hit `/health` to verify the server and DB connection', and 'Run `npx vitest` before proceeding'.

Replace placeholder code — complete the Hono middleware's '// Verify with Supabase...' with a real verifyToken call and fill in tests/setup.ts's empty beforeAll/afterAll bodies (or remove them).

DimensionReasoningScore

Conciseness

Prose is lean and non-obvious comments earn their place ('// Required for Supabase pooling', '// Admin client (bypasses RLS)'), but the body is heavily duplicated: the same posts CRUD appears in full in 'src/routes/posts.ts', again in 'src/db/queries/posts.ts', and a third time in the Hono alternative. This matches anchor 3 ('mostly efficient but could be tightened') — below 4 because the duplication is more than minor, above 2 because nothing explains concepts Claude already knows.

3 / 5

Actionability

Nearly all code is complete, executable, and copy-paste ready (full imports, zod schemas, drizzle-kit scripts), matching anchor 4. It falls short of anchor 5 due to explicit stubs: the Hono middleware contains only '// Verify with Supabase...', tests/setup.ts has empty beforeAll/afterAll bodies, and the storage upload snippet floats without its router/import context.

4 / 5

Workflow Clarity

The setup sequence is coherent but only implicit in section order (install → env → config → db → middleware → routes → app → tests), with no validation checkpoints anywhere (no 'supabase start', no health-endpoint or migration verification, no test-run gate) despite database operations being a feedback-loop context. This is anchor 3 ('sequence present but checkpoints missing or implicit') — not 4 because validation is wholly absent rather than a minor gap, not 2 because the ordering is clear and complete.

3 / 5

Progressive Disclosure

No bundle files exist and nothing is split out: the full route library, Hono variant, storage endpoint, and testing guide are all inlined in a single ~830-line SKILL.md, though under well-organized headers. This matches anchor 3 ('some structure; content that should be separate is inline') — above 2 because the section structure is good rather than minimal, below 4 because virtually all detail content belongs in reference files.

3 / 5

Total

13

/

20

Passed

Description

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

The description names a precise, distinctive technology stack but says nothing about what the skill does or when to use it: it is a noun phrase with no actions and no 'Use when' clause. It would benefit most from verb-led capabilities and explicit trigger conditions.

Suggestions

Rewrite the description with verb-led capabilities, e.g. 'Builds Node.js backends with Express or Hono, Supabase Auth/storage, and Drizzle ORM queries, including project scaffolding, middleware, and migrations.'

Append an explicit trigger clause such as 'Use when building a Node.js backend or API with Supabase, Postgres, Drizzle, or Express/Hono' to answer 'when' directly in the description.

Include natural trigger terms users would say — 'Node.js backend', 'REST API', 'Postgres', 'auth' — alongside the library names to broaden keyword coverage.

DimensionReasoningScore

Specificity

The description 'Express/Hono with Supabase and Drizzle ORM' is a verbless stack listing: it names the domain but states no concrete actions, matching anchor 2. It is not 3 because no capability ('builds', 'authenticates', 'queries') is expressed at all, and not 1 because the technologies named are specific rather than abstract.

2 / 5

Completeness

The 'what' is vague (a stack, not capabilities) and the 'when' is entirely absent from the description — anchor 2 ('Has a vague what and no when'). Not 1 because the technology scope is explicitly stated; not 3 because anchor 3 requires a clear 'what', which a noun phrase without verbs is not.

2 / 5

Trigger Term Quality

'Express', 'Hono', 'Supabase', and 'Drizzle ORM' are precise terms users would actually say, but coverage is thin — 'Node.js backend', 'Postgres', 'auth', 'REST API' and any synonyms or extensions are missing, matching anchor 3 ('missing common variations or synonyms'). It is above 2 because the present keywords are specific natural terms, not generic filler, and below 4 because more than a few natural trigger phrases are absent.

3 / 5

Distinctiveness Conflict Risk

Naming four specific technologies (Express, Hono, Supabase, Drizzle) carves a distinct niche with minimal conflict risk against unrelated skills — anchor 4. Not 5 because the missing trigger guidance leaves plausible overlap with a generic Supabase or Express skill; not 3 because the stack combination is quite specific.

4 / 5

Total

11

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (837 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

alinaqi/maggy

Path

skills/supabase-node/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.