supabase
Database operations for Supabase: query/write/migration/logs/type generation. Triggers: query/statistics/export/insert/update/delete/fix/backfill/migrate/logs/alerts/type generation. Does not trigger for: pure architecture discussion or code planning. Write operations require confirmation; UPDATE/DELETE without WHERE is refused. MCP is optional — works with CLI/Console too.
Best use case
supabase is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Database operations for Supabase: query/write/migration/logs/type generation. Triggers: query/statistics/export/insert/update/delete/fix/backfill/migrate/logs/alerts/type generation. Does not trigger for: pure architecture discussion or code planning. Write operations require confirmation; UPDATE/DELETE without WHERE is refused. MCP is optional — works with CLI/Console too.
Teams using supabase should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/supabase/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How supabase Compares
| Feature / Agent | supabase | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Database operations for Supabase: query/write/migration/logs/type generation. Triggers: query/statistics/export/insert/update/delete/fix/backfill/migrate/logs/alerts/type generation. Does not trigger for: pure architecture discussion or code planning. Write operations require confirmation; UPDATE/DELETE without WHERE is refused. MCP is optional — works with CLI/Console too.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Supabase Database Operations Execute database operations on Supabase: queries, writes, migrations, and diagnostics. > **MCP is optional.** This skill works with MCP (auto), Supabase CLI, psql, or Dashboard. See [BACKENDS.md](BACKENDS.md) for execution options. ## Scope **Applies to:** - Database actions on Supabase: query/statistics/export, write (after confirmation), migration (DDL), type generation, query logs/advisors **Does not apply to:** - Project-side integration (env/client code/data access layer) → Use `workflow-ship-faster` (Step 6) for project setup; this skill handles DB-side actions only **Called by:** - `workflow-ship-faster` uses this skill as DB operation foundation ## Postgres Best Practices (Built-in) Ship Faster vendors Supabase's Postgres best practices under `references/postgres-best-practices/`. Consult it when: - Writing/reviewing/optimizing SQL queries - Designing indexes, schema changes, or RLS policies - Diagnosing performance, locking, or connection issues Source of truth: - Full guide: `references/postgres-best-practices/AGENTS.md` - Individual rules: `references/postgres-best-practices/rules/*.md` When proposing changes, cite the relevant rule file path (for example: `references/postgres-best-practices/rules/query-missing-indexes.md`) and keep changes minimal. ## Security Rules (Must Follow) 1. **Read first**: Always check schema before any operation 2. **Default LIMIT 50**: All SELECT queries default to `LIMIT 50`, unless user explicitly requests more 3. **Write operation confirmation**: INSERT/UPDATE/DELETE must before execution: - Display the SQL to be executed - State expected number of affected rows - Await explicit user confirmation 4. **No bare writes**: UPDATE/DELETE without WHERE condition → refuse directly, do not execute 5. **Batch threshold**: Affecting > 100 rows → force double confirmation + suggest `SELECT count(*)` first 6. **DDL via migration**: Schema changes must use migrations, not direct DDL 7. **Production environment**: Write disabled by default; only allow when user explicitly says "execute on prod" and double confirms 8. **Sensitive fields**: email/phone/token/password are masked or not returned by default, unless user explicitly requests ## Operation Flow ``` 1. Parse requirements → restate objective 2. Unsure about tables/fields → first query schema (information_schema or list_tables) 3. Plan SQL → present to user 4. Read-only → execute directly 5. Write operation → confirm before execution → verify affected rows → report result ``` ## File-based Pipeline When integrating into multi-step workflows, persist artifacts to disk: ``` runs/<workflow>/active/<run_id>/ ├── proposal.md # Requirements / objective ├── context.json # Known tables/fields/IDs ├── tasks.md # Checklist + approval gate ├── evidence/sql.md # SQL to execute (write ops written here first) ├── evidence/result.md # Conclusion + SQL + results └── logs/events.jsonl # Optional tool call summary (no sensitive data) ``` ## Output Format - **Language**: English - **Structure**: Conclusion → Key numbers → Executed SQL → Result table (max 50 rows) - **Overflow handling**: Truncate + show total count + optional export/pagination Example: ``` ✅ Query complete: 142 new users in the last 7 days Executed SQL: SELECT DATE(created_at) as date, COUNT(*) as count FROM user_profiles WHERE created_at > NOW() - INTERVAL '7 days' GROUP BY DATE(created_at) ORDER BY date DESC; | date | count | |------------|-------| | 2025-01-09 | 23 | | 2025-01-08 | 31 | | ... | ... | ``` ## Error Handling | Situation | Action | |-----------|--------| | SQL syntax error | Return error summary + fix suggestions | | Insufficient permissions | Explain required permissions + alternatives | | No data returned | Explain possible reasons (conditions too strict? data doesn't exist?) | | RLS blocked | Suggest checking RLS policy or using service_role | ## Example Workflows ### Read: Simple Query ``` User: Get registered user count for the last 7 days, by day 1. Confirm table user_profiles, field created_at 2. Execute aggregation SQL 3. Return: conclusion + numbers + SQL + table ``` ### Read: Complex Query ``` User: Find projects that have runs but all failed 1. Confirm projects, runs tables and status field 2. Present JOIN + aggregation SQL 3. Execute and return results (mask email) ``` ### Write: Insert ``` User: Create a new run for project xxx 1. First check if project exists 2. Present INSERT SQL + expected impact: 1 row 3. Await confirmation → execute → return new record id ``` ### Write: Update ``` User: Change run abc's status to completed 1. First SELECT to verify current state 2. Present UPDATE SQL + WHERE id = 'abc' 3. Confirm → execute → SELECT again to verify ``` ### Dangerous: Delete ``` User: Delete all runs where status = 'failed' 1. First SELECT count(*) WHERE status = 'failed' 2. Present count + DELETE SQL 3. If > 100 rows, force double confirmation 4. After confirmation execute → report deleted row count ``` ### Dangerous: DELETE without WHERE ``` User: Clear the runs table ❌ Refuse to execute → Prompt: DELETE without WHERE condition, this will delete all data → Suggest: Use TRUNCATE (requires migration) or add explicit condition ``` ## Schema Discovery Get latest schema at runtime: ```sql -- List all tables SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'; -- View table structure SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_name = '<table_name>'; ``` For project-specific schema (may be outdated), see [schema.md](schema.md). ## Related Files - [BACKENDS.md](BACKENDS.md) — Execution options (MCP/CLI/Console) - [SETUP.md](SETUP.md) — MCP configuration (optional) - [schema.md](schema.md) — Project-specific schema reference
Related Skills
supabase-postgres-best-practices
Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
mcp-supabase
Execute database operations via Supabase MCP (query/write/migration/logs/type generation). Triggers: query/statistics/export/insert/update/delete/fix/backfill/migrate/logs/alerts/type generation. Does not trigger for: pure architecture discussion or code planning. Write operations require confirmation; UPDATE/DELETE without WHERE is refused.
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
ui-ux-pro-max
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.
turbo-sdk
Complete Arweave Turbo ecosystem including client SDKs, core upload infrastructure, payment service backend, and CLI tools for permanent decentralized storage
terraform-best-practices
Comprehensive best practices for Terraform infrastructure as code from Anton Babenko's community guide
sveltekit-svelte5-tailwind-skill
Comprehensive integration skill for building sites with SvelteKit 2, Svelte 5, and Tailwind CSS v4
workflow-ship-faster
Ship Faster end-to-end workflow for small web apps (default: Next.js 16.1.1): idea/prototype → foundation gate → design-system.md → lightweight guardrails + docs → feature iteration → optional Supabase + Stripe → optional GitHub + Vercel deploy → optional AI-era SEO (sitemap/robots/llms.txt). Resumable, artifact-first under runs/ship-faster/ (or OpenSpec changes/). Trigger: ship/launch/deploy/production-ready MVP.
workflow-project-intake
Use when you need to clarify requirements and route to the right workflow (idea → executable input). Project intake + routing: help the user brainstorm and clarify intent, persist goal/context artifacts, then dispatch to the right workflow or step skill. Default route is workflow-ship-faster (Next.js 16.1.1) for idea/prototype→launch. Triggers: project kickoff, requirements clarification, brainstorm, ideas, discovery, intake.
workflow-feature-shipper
Use when you need to ship a single PR-sized feature end-to-end (plan -> implement -> verify) with artifacts. Ship core product features quickly in a Next.js codebase: turn a feature idea into an executable plan, implement in PR-sized slices, and keep artifacts under runs/ (or OpenSpec changes/ when available). Supports plan-only mode for early scoping. For prototype UI work, include a demo-ready wow moment (animation/micro-interaction) by default unless user opts out.
workflow-creator
Create workflow-* skills by composing existing skills into end-to-end chains. Turns a user idea into a workflow_spec.md SSOT (via workflow-brainstorm), discovers available skills locally + from skills.sh, and generates a new workflow-<slug>/ skill package. Use when you want to design a new workflow, chain multiple skills into a flow, or turn scattered atomic skills into a resumable plan-then-confirm workflow.
workflow-brainstorm
Use when you need to turn a vague idea into a confirmed design spec before implementation (new feature/component/behavior change). First check project context, then ask one question at a time, provide 2-3 options with trade-offs, finally output design in segments (~200-300 words each) with confirmation after each. Triggers: brainstorm, clarify idea, design spec, refine concept, requirement clarification.