Next.js with Supabase and Drizzle ORM
40
40%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/supabase-nextjs/SKILL.mdQuality
Discovery
22%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description is essentially just a technology stack label with no actions, no use-case triggers, and no explanation of what the skill enables Claude to do. While the specific tech combination provides some distinctiveness, the description fails to communicate capabilities or selection criteria, making it very difficult for Claude to know when to choose this skill over others.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Scaffolds Next.js applications with Supabase backend integration and Drizzle ORM for type-safe database access, including schema definitions, migrations, authentication setup, and API route creation.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks to build a Next.js app with Supabase, set up Drizzle ORM schemas, create database migrations, or integrate authentication with Supabase in a Next.js project.'
Include natural keyword variations users might say, such as 'full-stack app', 'database schema', 'auth', 'serverless Postgres', 'type-safe queries', '.ts', 'app router'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names technologies (Next.js, Supabase, Drizzle ORM) but describes no concrete actions whatsoever. There are no verbs indicating what the skill actually does—it reads like a topic label rather than a capability description. | 1 / 3 |
Completeness | There is no 'what does this do' beyond naming a tech stack, and there is no 'when should Claude use it' clause at all. Both dimensions are essentially missing. | 1 / 3 |
Trigger Term Quality | It includes recognizable technology names (Next.js, Supabase, Drizzle ORM) that users might naturally mention, but lacks common variations or related terms like 'database', 'authentication', 'API routes', 'schema', 'migrations', or 'full-stack app'. | 2 / 3 |
Distinctiveness Conflict Risk | The specific combination of Next.js + Supabase + Drizzle ORM is fairly niche and unlikely to conflict with many other skills, but the lack of described actions means it could still overlap with generic Next.js or Supabase skills. | 2 / 3 |
Total | 6 / 12 Passed |
Implementation
57%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides highly actionable, executable code covering the full Supabase + Next.js + Drizzle stack, which is its primary strength. However, it is excessively long for a SKILL.md—much of the boilerplate code (login forms, upload components, realtime subscriptions) represents standard patterns that Claude can generate from brief instructions. The lack of progressive disclosure (no bundle files, no references to separate docs) and missing validation/verification steps in workflows are notable weaknesses.
Suggestions
Split into multiple files: keep SKILL.md as a concise overview with core principles, project structure, and setup, then reference separate files like AUTH.md, QUERIES.md, STORAGE.md, REALTIME.md for detailed code examples.
Reduce boilerplate code to key patterns and gotchas only—e.g., instead of a full LoginForm component, show only the Supabase-specific auth call and the critical router.refresh() pattern.
Add explicit validation checkpoints: verify migration success, add input validation in server actions, and include ownership checks before destructive operations like deletePost.
Add a quick-start workflow section with numbered steps (install → configure env → setup DB → run migrations → verify → implement auth) with explicit verification at each stage.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is quite long (~400+ lines) with extensive boilerplate code that Claude could generate from minimal guidance. Many code blocks (login form, upload component, realtime subscription) are standard patterns that don't need full reproduction—a brief description with key gotchas would suffice. However, it avoids explaining basic concepts and stays focused on implementation. | 2 / 3 |
Actionability | Every section provides fully executable, copy-paste ready TypeScript code with correct imports, proper file paths, and complete implementations. The code covers the full stack from setup through auth, CRUD, storage, realtime, and OAuth—all with concrete, working examples. | 3 / 3 |
Workflow Clarity | The skill is organized by concern (setup, auth, data, storage, realtime) which provides implicit sequencing, but there are no explicit validation checkpoints. For example, after running migrations there's no verification step, the server actions lack input validation, and the deletePost action doesn't verify ownership before deleting. The anti-patterns section partially compensates but doesn't constitute a proper workflow with feedback loops. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of code with no references to external files despite being well over 400 lines. The schema definitions, query functions, auth components, storage utilities, and realtime patterns could each be separate referenced files. Everything is inline, making it a large context burden with no layered navigation structure. | 1 / 3 |
Total | 8 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (733 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
65efb33
Table of Contents
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.