Next.js with Supabase and Drizzle ORM
44
32%
Does it follow best practices?
Impact
Pending
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 indication of what actions the skill performs or when it should be selected. It lacks any verbs, use-case triggers, or explicit guidance for skill selection. Among a large set of skills, Claude would struggle to know when to choose this over other Next.js or Supabase-related skills.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Sets up Next.js projects with Supabase authentication, defines database schemas using Drizzle ORM, and generates type-safe database queries.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks about setting up Supabase with Next.js, creating database schemas with Drizzle, running migrations, or building full-stack apps with Supabase as the backend.'
Include natural keyword variations users might say, such as 'database', 'auth', 'migration', 'full-stack', 'PostgreSQL', 'type-safe queries', and 'server components'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description only names technologies (Next.js, Supabase, Drizzle ORM) without describing any concrete actions or capabilities. There are no verbs indicating what the skill does. | 1 / 3 |
Completeness | The description fails to answer both 'what does this do' and 'when should Claude use it'. There is no 'Use when...' clause and no description of capabilities—it's just a technology stack listing. | 1 / 3 |
Trigger Term Quality | It includes recognizable technology names (Next.js, Supabase, Drizzle ORM) that users might naturally mention, but lacks action-oriented trigger terms like 'database', 'schema', 'migration', 'API routes', 'authentication', or file extensions. | 2 / 3 |
Distinctiveness Conflict Risk | The specific combination of Next.js + Supabase + Drizzle ORM is somewhat distinctive, but without describing what the skill actually does, it could overlap with general Next.js skills, general Supabase skills, or general ORM skills. | 2 / 3 |
Total | 6 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is highly actionable with excellent, executable code examples covering the full Supabase + Next.js + Drizzle stack. However, it is far too verbose for a skill file—it reads more like a tutorial or starter template than a concise reference. The content would benefit enormously from splitting detailed implementations into separate files and keeping SKILL.md as a lean overview with key patterns and anti-patterns.
Suggestions
Extract complete component implementations (LoginForm, AvatarUpload, RealtimePosts, OAuthButtons) into separate reference files and replace with brief pattern descriptions and file links in SKILL.md
Add an explicit setup workflow with numbered steps including migration commands (drizzle-kit generate/push) and verification checkpoints (e.g., 'verify Supabase is running', 'test auth callback')
Reduce the Supabase client setup sections to just the server client pattern with a note about browser/middleware variants, since Claude can adapt the cookie handling pattern
Add a quick-start section at the top summarizing the 5-6 key decisions/patterns, then link to detailed sections for developers who need the full code
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | This is extremely verbose at ~500+ lines, inlining complete implementations for auth forms, realtime subscriptions, OAuth buttons, storage uploads, and more. Much of this is boilerplate that Claude can generate from brief instructions. The entire login form, upload component, and realtime component could be replaced with 2-3 line descriptions of the pattern. | 1 / 3 |
Actionability | Every section provides fully executable, copy-paste ready TypeScript code with correct imports, proper typing, and real-world patterns. The code is complete and specific, covering setup, schema, clients, middleware, server actions, queries, and components. | 3 / 3 |
Workflow Clarity | The setup steps (install, env vars, config) are listed but there's no explicit workflow sequence for the overall project setup or migration process. Missing validation checkpoints - e.g., no mention of running `drizzle-kit generate` or `drizzle-kit push`, no verification steps after setup, no guidance on testing auth flow end-to-end. | 2 / 3 |
Progressive Disclosure | Everything is inlined in a single monolithic file with no references to external files for detailed implementations. The complete login form, realtime component, storage upload, and OAuth buttons should be in separate reference files, with SKILL.md providing just the patterns and pointers. | 1 / 3 |
Total | 7 / 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 (734 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 | |
d4ddb03
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.