CtrlK
BlogDocsLog inGet started
Tessl Logo

supabase-python

FastAPI with Supabase and SQLAlchemy/SQLModel

35

Quality

32%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/supabase-python/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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, capabilities, or trigger guidance. It fails to tell Claude what the skill does or when to use it, making it very difficult to select appropriately from a pool of skills. It needs substantial expansion to be functional.

Suggestions

Add concrete actions describing what the skill does, e.g., 'Sets up FastAPI projects with Supabase backend, defines SQLAlchemy/SQLModel database models, creates API endpoints, and configures database connections.'

Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks to build a FastAPI application, connect to Supabase, define ORM models, create REST APIs, or set up a Python backend with a database.'

Include natural keyword variations users might say, such as 'REST API', 'backend', 'database', 'ORM', 'Python web app', 'API endpoints', '.py'.

DimensionReasoningScore

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

There is no 'what does this do' beyond naming technologies, and there is no 'when should Claude use it' clause at all. Both dimensions are essentially missing.

1 / 3

Trigger Term Quality

It includes relevant technology keywords (FastAPI, Supabase, SQLAlchemy, SQLModel) that users might naturally mention, but lacks common variations like 'API', 'REST', 'database', 'ORM', 'backend', or file extensions that would improve matching.

2 / 3

Distinctiveness Conflict Risk

The specific combination of FastAPI + Supabase + SQLAlchemy/SQLModel is fairly distinctive, but without any described actions or triggers, it could overlap with general Python web development or database 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 essentially a complete project template/boilerplate rather than a focused skill document. While the code is high-quality and fully executable, it's far too verbose—most of the content (FastAPI setup, Alembic config, test fixtures, CORS middleware) is standard knowledge that Claude already possesses. The unique value proposition (Supabase auth + SQLAlchemy for queries) could be communicated in a fraction of the space.

Suggestions

Reduce to ~80-100 lines focusing only on Supabase-specific patterns: the auth dependency (JWT validation via supabase-py), the dual-client pattern (anon vs service role), and the core principle of SQLAlchemy for queries + Supabase for auth/storage. Remove boilerplate Claude already knows (FastAPI app setup, CORS, Alembic init, test fixtures, pyproject.toml).

Split detailed examples (full route implementations, storage patterns, realtime, testing setup) into separate referenced files like ROUTES_EXAMPLES.md, TESTING.md, STORAGE.md.

Add explicit validation checkpoints: verify Supabase connection on startup, check migration status before running the app, validate JWT configuration with a test command.

Remove the anti-patterns section or condense to 2-3 truly non-obvious items specific to the Supabase+SQLAlchemy combination.

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~400+ lines, essentially a full project template/boilerplate dump. Much of this (CORS setup, basic FastAPI routing, Alembic init, test fixtures, pyproject.toml) is standard knowledge Claude already has. The anti-patterns section lists obvious best practices. This could be condensed to ~100 lines focusing on the Supabase-specific integration patterns.

1 / 3

Actionability

All code examples are fully executable, copy-paste ready, and cover the complete stack from config to routes to testing. Concrete commands for running, migrating, and installing are provided with specific package versions.

3 / 3

Workflow Clarity

The migration workflow has clear sequential commands, and the project structure is well-defined. However, there are no validation checkpoints (e.g., verifying Supabase connection works, checking migration success, validating auth setup). The overall flow from setup to running is implicit rather than explicitly sequenced.

2 / 3

Progressive Disclosure

Everything is inlined in a single monolithic file with no references to external files for detailed content. The full route implementations, test fixtures, Alembic config, and storage examples could all be split into separate reference files, with SKILL.md serving as a concise overview with 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.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (711 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

Repository
alinaqi/claude-bootstrap
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.