FastAPI with Supabase and SQLAlchemy/SQLModel
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-python/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 a technology stack label with no verbs, actions, or trigger guidance. It fails to communicate what the skill does or when it should be selected, making it very difficult for Claude to choose it appropriately from a list of skills. It needs a complete rewrite with concrete capabilities and explicit usage triggers.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Build REST APIs using FastAPI with Supabase as the backend database, using SQLAlchemy/SQLModel for ORM modeling, migrations, and query construction.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks to create FastAPI endpoints, connect to Supabase, define SQLModel/SQLAlchemy models, or build a Python backend with database integration.'
Include natural keyword variations users might say, such as 'REST API', 'backend', 'CRUD operations', 'database models', 'API routes', '.py files', 'async endpoints'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names technologies (FastAPI, Supabase, SQLAlchemy/SQLModel) but describes no concrete actions whatsoever. There are no verbs or capabilities listed—it reads as a topic label, not a capability description. | 1 / 3 |
Completeness | It answers neither 'what does this do' nor 'when should Claude use it'. There is no 'Use when...' clause and no description of capabilities—just a list of technology names. | 1 / 3 |
Trigger Term Quality | It includes relevant technology keywords (FastAPI, Supabase, SQLAlchemy, SQLModel) that users might naturally mention, but lacks action-oriented trigger terms like 'API endpoint', 'database', 'REST', 'CRUD', 'backend', or file extensions. | 2 / 3 |
Distinctiveness Conflict Risk | The specific combination of FastAPI + Supabase + SQLAlchemy/SQLModel is somewhat distinctive, but without actions or scope, it could overlap with any general Python web development or database skill. | 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.
The skill provides highly actionable, executable code covering the full FastAPI+Supabase+SQLModel stack, which is its main strength. However, it is far too verbose for a skill file — it reads more like a project template or tutorial than a concise reference. The lack of progressive disclosure (everything inline, no external file references) and missing validation checkpoints in the workflow significantly reduce its effectiveness as a skill document.
Suggestions
Reduce the SKILL.md to a concise overview (~80-100 lines) covering the core principle, project structure, key patterns (auth dependency, async session, SQLModel models), and anti-patterns — move full route implementations, test fixtures, alembic config, storage, and realtime examples to separate referenced files.
Add explicit validation checkpoints: verify DB connection after setup, confirm migrations applied successfully, test auth flow before building protected routes.
Remove boilerplate that Claude can generate from minimal instruction (e.g., full CORS middleware setup, complete pyproject.toml, health check endpoint) and focus on the non-obvious integration patterns specific to Supabase+SQLModel.
Add a 'Quick start' section at the top with the 3-4 most important patterns in minimal code, then link to detailed files for full implementations.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~400+ lines, presenting a full project scaffold that Claude could generate from minimal guidance. Most of this is boilerplate code (config, models, routes, tests, alembic setup) that doesn't need to be spelled out in full — a concise skill would state the core principle and show only the non-obvious patterns (auth dependency, SQLModel+async session setup) with brief examples. | 1 / 3 |
Actionability | Every section contains fully executable, copy-paste ready code with correct imports, proper async patterns, and complete type annotations. The code examples are concrete and specific — from config to models to routes to tests — with no pseudocode. | 3 / 3 |
Workflow Clarity | The content follows a logical sequence (setup → config → db → auth → routes → migrations → testing → running), but lacks explicit validation checkpoints. For example, there's no step to verify the database connection works, no validation after running migrations, and no guidance on verifying auth is properly configured before building routes. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of code with no references to external files for detailed content. The full route implementations, test fixtures, alembic config, storage helpers, and realtime examples are all inline when most should be split into separate reference files (e.g., ROUTES.md, TESTING.md, STORAGE.md) with the SKILL.md serving as an overview. | 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 (712 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.