CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

supabase-python

FastAPI with Supabase and SQLAlchemy/SQLModel

48

Quality

60%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/supabase-python/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 is a strong, largely copy-paste-ready reference implementation of the FastAPI + Supabase + SQLModel stack with almost no padding. Its weaknesses are structural: everything lives in one monolithic file with zero progressive disclosure, the workflow is never sequenced with validation checkpoints despite covering risky database/migration operations, and two sections (Alembic, Realtime) contain non-executable fragments.

Suggestions

Move the Storage, Realtime, Alembic, and Testing sections into references/ files (e.g., references/alembic.md, references/testing.md) and keep SKILL.md as a concise overview with one-level-deep, clearly signaled links.

Add explicit validation checkpoints to the database workflow — e.g., after 'alembic upgrade head', verify with '\dt' in psql or run the test suite before proceeding; include a rollback/retry loop for failed migrations.

Fix the non-executable fragments: import 'context'/'config' in the Alembic env.py snippet and define or import 'settings' in the Realtime example, and move pinned dependency versions into pyproject.toml only (already present) rather than restating them in prose.

DimensionReasoningScore

Conciseness

The body is almost entirely executable code with minimal prose and no explanations of concepts Claude already knows — every section (config, session, models, deps, routes) earns its place. Not a 5 because of time-sensitive pinned versions ('supabase>=2.0.0', 'fastapi>=0.109.0') presented outside any 'old patterns' section and some boilerplate (full CRUD delete/get handlers) that could be trimmed.

4 / 5

Actionability

Nearly all code is copy-paste ready and covers the common cases (auth flow, JWT dependency, CRUD routes, testing fixtures, storage upload), matching 'mostly executable... with minor gaps'. Not a 5 because the Alembic 'env.py (key changes)' block is a fragment missing its imports and the Realtime example references an undefined 'settings' variable, so those two sections are not directly executable.

4 / 5

Workflow Clarity

Content is organized by topic following the project layout (setup → config → db → client → auth → routes → main → migrations), so a sequence is implied but never made explicit, and there are no validation checkpoints. The rubric caps database/migration workflows without feedback loops at 3 — there is no 'verify migration applied', 'confirm auth works', or validate-and-retry step anywhere.

3 / 5

Progressive Disclosure

The single ~700-line SKILL.md has clear section headers making it navigable (better than anchor 2's headerless wall), but there are no reference files at all — bulk material that belongs in separate files (Storage, Realtime, Alembic, Testing) is fully inlined, matching anchor 3's 'content that should be separate is inline'.

3 / 5

Total

14

/

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 is a bare technology-stack label: specific enough to avoid conflicts, but it states no capabilities and provides no trigger guidance in the description field itself. The 'when to use' information exists only in a separate frontmatter field and uses vague phrasing ('When building a Python/FastAPI app with Supabase backend').

Suggestions

Rewrite the description to state concrete actions, e.g., 'Implements Supabase Auth (JWT validation, signup/signin flows), SQLAlchemy/SQLModel database access, storage uploads, and realtime subscriptions for FastAPI apps'.

Add an explicit 'Use when...' clause to the description itself (not just the separate when-to-use field): 'Use when building a Python/FastAPI backend on Supabase, wiring Supabase Auth to FastAPI dependencies, or using SQLModel/SQLAlchemy against a Supabase Postgres database'.

Include natural trigger keywords users would actually say — 'Python', 'Postgres', 'Supabase Auth', 'REST API' — to improve trigger term coverage.

DimensionReasoningScore

Specificity

The description "FastAPI with Supabase and SQLAlchemy/SQLModel" names concrete technologies but describes zero actions — it is a stack label, matching the anchor 'Names the domain but actions are minimal or generic'. It is not a 1 because the technologies are specific rather than vague, and not a 3 because no concrete capability (e.g., 'implements auth', 'builds CRUD APIs') is stated.

2 / 5

Completeness

Only a vague 'what' is present (a topic label with no described behavior) and the description field contains no 'when to use' clause — the trigger guidance lives in a separate 'when-to-use' field outside the evaluation target. This matches anchor 2 ('Has a vague what and no when') and the guideline capping missing 'Use when...' guidance at 3 is not even reached.

2 / 5

Trigger Term Quality

"FastAPI", "Supabase", and "SQLAlchemy/SQLModel" are natural terms a user would say, but coverage stops there — missing common variations such as "Python", "Postgres", "auth", or file extensions. This sits between anchor 3 ('some relevant keywords but missing common variations') and anchor 4, closer to 3.

3 / 5

Distinctiveness Conflict Risk

Naming the exact stack (FastAPI + Supabase + SQLAlchemy/SQLModel) carves out a clear niche with minimal wrong-skill trigger risk. Not a 5 because it could still overlap with generic FastAPI or SQLAlchemy-only skills, matching anchor 4 ('Mostly distinct; minor overlap risk with closely related skills').

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 (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

14

/

16

Passed

Repository

alinaqi/maggy

Path

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