Supabase Postgres Best Practices
supabase/agent-skills
Gives the agent Postgres rules to consult before writing or changing tables, queries, indexes, RLS policies or migrations, and when diagnosing slow queries.
Restructure, reorder, and improve existing Supabase docs pages under apps/docs: clarity, connective text, section grouping, and brevity.
$ npx skills add supabase/supabase --skill edit-the-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install supabase/supabase edit-the-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/edit-the-docs .claude/skills/edit-the-docs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .claude/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add supabase/supabase --skill edit-the-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install supabase/supabase edit-the-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/edit-the-docs .agents/skills/edit-the-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .agents/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add supabase/supabase --skill edit-the-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install supabase/supabase edit-the-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/edit-the-docs .cursor/skills/edit-the-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .cursor/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/supabase/supabase.git --path .agents/skills/edit-the-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add supabase/supabase --skill edit-the-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install supabase/supabase edit-the-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/edit-the-docs .gemini/skills/edit-the-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .gemini/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install supabase/supabase edit-the-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add supabase/supabase --skill edit-the-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/edit-the-docs .github/skills/edit-the-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .github/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add supabase/supabase --skill edit-the-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install supabase/supabase edit-the-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/supabase/supabase.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/edit-the-docs .opencode/skills/edit-the-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "edit-the-docs" agent skill from https://github.com/supabase/supabase/tree/master/.agents/skills/edit-the-docs into .opencode/skills/edit-the-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-the-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
edit-the-docsRestructure, reorder, and improve existing Supabase docs pages under apps/docs: clarity, connective text, section grouping, and brevity.
Edit The Docs is an agent skill from supabase/supabase, published by the product's own GitHub organization. Restructure, reorder, and improve existing Supabase docs pages under apps/docs: clarity, connective text, section grouping, and brevity. Use when asked to edit, reorganize, restructure, tighten prose, add glue between sections, or split a page edit into stacked PRs. Not for net-new feature drafts, which belong to write-the-docs, and not for PR triage or verification, which belong to review-the-docs.
Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `reference/stacked-prs.md`).
It works with Supabase. The repository describes itself as: The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 0b85e0d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Edit The Docs loads about 5k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 2,871 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from supabase/supabase at commit 0b85e0d, republished under its Apache-2.0 licence (© supabase). 2,871 words, ~5,024 tokens.
.claude/skills/edit-the-docs/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Improves existing Supabase docs pages: structure, order, connective text, and clarity.
Not this skill: write-the-docs drafts net-new content or product-grounded rewrites from intent and code. review-the-docs covers build and PR triage.
Output is one pull request, with one change type per commit. A reviewer reads the style diff apart from the structure diff without holding several PRs in their head. Split into a stack of PRs only when the requester asks for one, or approves the split you offer because the diff turned out large. Phase 0 covers when to raise it, and reference/stacked-prs.md covers the mechanics.
write-the-docs grounding rules: read the code, separate shipped behavior from product intent, and flag what you inferred.ask-the-docs. Get validation and self-review from review-the-docs. Apply the style guide's timeless documentation rather than duplicating it here.Identify the document type per 03-page-structure.md. The types are explainer, tutorial, guide, reference, and troubleshooting.
State the reader's goal and prerequisites in one or two lines.
Note structural problems: mixed information types interrupting a procedure, missing intro navigation on a long page, weak transitions, redundancy, or over-explained mechanics.
Sort the diagnosis into the buckets below. Drop any bucket that comes back empty, and say so. Style, structure, and technical revision take one commit or branch each. Additions take as many as the content needs, so the edit has no fixed size. A style edit plus a structural edit is the common shape, because most pages that need restructuring are already correct. Two buckets is a complete result, not a truncated one.
Know where the edit ends. The edit is only the buckets that have content. Any bucket you drop is beyond the edit, and a later request for that change type is a new request. That includes one you raise yourself. Name it, keep the work in progress clean, and ask whether it belongs in this edit, in a separate ticket, or nowhere. Absorbing it into a bucket that's already open is what turns an edit into a rewrite.
Size the edit. When it comes out large, offer a stack. Don't choose one. One PR with each bucket as its own commit is the output unless the requester approves a split. Raise the question when both hold:
Say how large the diff is and propose the branches. Name the trade in the ask: a stack gives a reviewer clean per-change-type diffs, and it also means no PR page shows the whole edit, so reading it end to end costs them an extra command. Their reviewers pay that cost, so it's their call. No answer means one PR.
Summarize the diagnosis and the proposed split to the requester, and wait for confirmation before creating any branch. Name which buckets are empty and why. When nobody is available to confirm, record the diagnosis in the PR body and ship one PR.
When the diff outgrows the estimate mid-edit, stop and offer the split then. A size call made at diagnosis can be wrong by the time the style pass lands. Say how large it got and ask. Splitting unasked is the failure here, and so is carrying on quietly because you already have an answer.
The sections below are named for the stacked case. In a single PR they're commits, in the same order and under the same rules.
Inline changes only. Nothing in this PR moves a line from one place to another.
Rewrite:
02-elements.md; how many steps to present at once and when to split into phases is in 03-page-structure.md.02-elements.md for admonitions, emphasis, links, and lists, and 01-voice-and-tone.md for person, tense, and sentence-level grammar.apps/docs/content/_partials/ over copied blocks.Cut:
02-elements.md.WORD_LIST.md. Run both passes from Use with an AI agent: Phrase groups gives you every literal term list in one read, then grep '^### ' WORD_LIST.md and open only the entries matching words on the page. Cover terms already on the page, not only the ones you introduce. An existing page is where nonconforming terminology accumulates.Apply 03-page-structure.md — section grouping, navigation, and glue. This section is the procedure for doing that on an existing page; the rules live in the guide.
Work in this order, and settle the outline before you move a line. A restructure invalidates every branch above it in the stack, so each revision costs a full restack, and a restack is where content gets dropped in conflict resolution. Reworking the shape twice costs far more than getting it right once.
Grep the whole repo for #<slug> against every heading on the page, not just apps/docs/content. Studio renders Docs buttons that deep-link into guide anchors, and apps/www links into them too. Those are the matches that break a button in the product rather than a link between two pages.
Write the matched heading texts down. For the rest of this PR they are immutable. Moving a section preserves its slug, and so does changing its level. Only renaming breaks it. That is what makes an aggressive regroup safe.
Classify each one against the information types in 03-page-structure.md, then collapse them into the three buckets you'll group by: procedural (Procedure), contextual (Concept and Process), and reference (Structure and Fact). A principle or a fact usually rides along in the section it qualifies rather than getting one of its own.
The guide has the two rules that decide the hard cases: classify by what the reader is doing rather than what the section is about, and split a section that serves two types instead of filing it under the larger half.
Write the bucket for every section down before moving anything. A page where every section lands in one bucket is a page that wasn't really classified.
Produce the whole heading tree, with levels, and check it against the locked list from step 1. Put it in front of the requester along with the Phase 0 diagnosis. The outline is the artifact that gets revised, not the page.
Order the groups per 03-page-structure.md, which has the order that works and a worked outline. A short concept opener can precede the procedure group; keep that group uninterrupted, and put the remaining background after it.
When a section held two types and you split it in step 2, the half that keeps the original heading text stays in its original group, so the locked anchor from step 1 survives. The new half takes a new heading and moves to the group its type belongs to.
Move and regroup, and preserve meaning. Don't silently rewrite facts while restructuring. A pure set of moves is what makes this PR reviewable, so call out in the PR body any deletion that isn't a move.
Then:
When a topic outgrows the page, give it its own page rather than its own group. Navigation that overflows the sidebar is one signal. A section carrying its own subsections several levels deep, sharing nothing with the rest of the page but a single word, is another.
Update every navigation entry, repoint every inbound anchor, and cross-reference the new page. Confirm the nav-registration mechanism through ask-the-docs rather than assuming it.
Re-run the step 1 grep. Every locked heading text is still present, at whatever level it ended up.
A move that only reads correctly once new content exists isn't a PR 2 move. It belongs to the branch that adds the content. Leave the section where it is, and say in the PR body which move you deferred and what it is waiting on. Otherwise PR 2 stops standing on its own, and a stack merged partway leaves the page reading worse than before.
If nothing needs to move, PR 2 doesn't exist. A page can be well organized and still need a style pass. Drop the branch and say the structure held up.
Validate the truth of the content and correct what's wrong.
Change a claim only when leaving it would produce a wrong outcome. A reader following the page would hit an error, get a different result than the page promises, or decide on a fact that isn't true. That's the test.
Leave it alone otherwise. Don't open PR 3 for imprecise but harmless phrasing, a claim you'd have worded differently, an accurate detail that isn't the newest way to do it, or a stale-looking value you can't verify against code. The last one is a note to the author, not an edit.
An external rule isn't a wrong outcome by itself. A best-practices rule that a reader would never hit as a failure doesn't clear the gate, however high the rule's stated impact. Weigh what the reader experiences against the page, not how the rule is ranked.
PR 3 corrects what's on the page. A missing safeguard is an absence, and absences are additions. When the fix is to add something the page never had, it belongs above this branch, not in it. This is the line that keeps a verification pass from quietly becoming a rewrite.
When a claim does fail the test, verify before you change it, per Phase 1 of write-the-docs:
supabase/supabase PR over a general codebase read.Run the snippets when the page has them. Offer test-the-docs before you start, and don't run it unasked. A snippet that fails in the sandbox is the most direct evidence a claim fails the wrong-outcome test, because the reader hits the same error. Attach the verification report to the PR body. If the author declines, record the artifacts as deferred and carry on with the code read. If the sandbox fails for an environmental reason, that's a deferral rather than a result — retry it before the branch merges.
Run every fence in document order, not only one path. The reader pastes top to bottom, so that order is the claim. Snippets that each work alone can still fail as a sequence, by re-creating an object an earlier one made or by depending on one no fence ever creates. Nothing in a code read surfaces that, and it's the failure a reader hits first.
Testing covers procedural content only. Claims that nothing executes, such as limits, defaults, and positioning, still need the code read above.
A branch above can change the answer. The test is applied to the page as it stands, so a claim that passes inspection here can become wrong once an additions branch contradicts it. That correction belongs to the branch that creates the conflict, not back down here. Say so when you leave the claim, so the later change reads as intended rather than as a missed finding.
If every finding fails the test, PR 3 is empty. Say what you checked and what you're deliberately leaving, then drop the branch. An empty PR 3 means verified and fine, not skipped. A technical concern raised later in the stack is then a new request, per the boundary rule in Phase 0.
Additions sit on top of the stack, so they stay out of the edit. New content is a different job from editing what's already there. Keeping it on its own branches is what stops an edit from turning into a rewrite halfway through.
Additions take as many branches as the content needs. Split them by diff size so each branch stays reviewable, and name each branch for what it adds rather than for its position in the stack. One branch is right when the additions are one topic and a small diff.
Don't scope these branches from the diagnosis. Additions are empty by default. Don't propose them because the page looks thin.
A tracked request is the request. An assigned ticket or issue that asks for new content has already made the ask, so treat it as scoped and get on with it. The rule forbids inventing additions yourself. It doesn't ask you to wait for someone to repeat a request that's already written down.
Route mid-edit requests up here instead. When the author asks for new content while you're on an earlier branch, or when you spot a gap yourself, say it's additions material and keep the current branch clean. Then ask whether they want it in this stack, in a separate ticket, or not at all. Naming it is how you keep the conversation from reopening PR 1.
Once it's scoped:
test-the-docs before it ships. New content is where an untested snippet is likeliest to be wrong, because nothing has ever executed it.Run this per change type, before you submit the commit or branch that carries it, not once at the end:
01-voice-and-tone.md and terminology matches WORD_LIST.mdAnchors. PR 2 step 1 builds the locked-heading list and step 6 re-checks it. Any branch that renames or rewords a heading clears the same gate.
Frontmatter title. It follows the same sentence-case rule as a heading. Renaming it moves a navigation label and a search entry, not just a line of prose, so it clears this same gate and lands in PR 2 rather than PR 1.
Format and build. Follow write-the-docs/reference/drafting-mechanics.md. Then run the review-the-docs local self-review, plus pnpm build:guides-markdown when a guide, explainer, or tutorial changed.
build:guides-markdown writes apps/docs/public/markdown/manifest.json, which the repo tracks and commits as []. Discard that file before committing. It's a build artifact, not part of the edit.
Stacking:
gh stack commands: reference/stacked-prs.mdreview-the-docsStyle and structure:
style-guide/README.md03-page-structure.md02-elements.mdWORD_LIST.mdSibling skills:
drafting-mechanics.mdtest-the-docsask-the-docswrite-the-docs© supabase, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/edit-the-docs of supabase/supabase.
Open the folder on GitHubat commit 0b85e0d
Edit The Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Edit The Docs this skillsupabase/supabase | 111k | — | ~5k | Automated safety check: Pass | Apache-2.0 | |
| Supabase Postgres Best Practicessupabase/agent-skills | 2.7k | 24 repos | ~808 | Automated safety check: Pass | MIT | |
| Supabase Development and Debuggingsupabase/agent-skills | 2.7k | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Security Reviewjewbetcha/opentrace | 116 | 18 repos | ~3.1k | Automated safety check: Notes | MIT | |
| Add Cursor Ambassadorcursor/community-plugins | 4k | — | ~773 | Automated safety check: Pass | None | |
| Supabasecurvenote/curvenote | 170 | 5 repos | ~2.2k | Automated safety check: Pass | Custom licence |
supabase/agent-skills
Gives the agent Postgres rules to consult before writing or changing tables, queries, indexes, RLS policies or migrations, and when diagnosing slow queries.
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
jewbetcha/opentrace
A skill your agent uses when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features.
cursor/community-plugins
Adds Cursor Directory ambassador badges by name or email via Supabase.
curvenote/curvenote
A skill your agent uses when doing ANY task involving Supabase.
mikehasa/golive-skill
Take an agent-written app from repo to live production on the user's OWN accounts, with providers they choose (hosting, database, auth, payments, email, domain/DNS).
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
supabase/supabase
Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).
supabase/supabase
Review Supabase docs changes locally in your supabase/supabase checkout — either an open PR (triage, classify, verify) or your own branch before opening a PR (local self-review).
supabase/supabase
Vitest API and config reference (Jest-compatible) — mocking with vi., spies, fake timers, coverage configuration, fixtures, snapshots, and test filtering.
supabase/supabase
A skill your agent uses whenever code will build, return, fetch, or execute SQL that runs against a user's real Postgres database — even when the request reads like an ordinary feature or bug fix…
supabase/supabase
Write and run Playwright E2E tests for Supabase Studio (e2e/studio).
Works with
Restructure, reorder, and improve existing Supabase docs pages under apps/docs: clarity, connective text, section grouping, and brevity. Edit The Docs is an agent skill from supabase/supabase, published by the product's own GitHub organization. Restructure, reorder, and improve existing Supabase docs pages under apps/docs: clarity, connective text, section grouping, and brevity.
Edit The Docs fits situations like: add glue between sections; split a page edit into stacked PRs.
Run `npx skills add supabase/supabase --skill edit-the-docs -a claude-code`. Or copy the skill folder (.agents/skills/edit-the-docs in supabase/supabase) into .claude/skills/edit-the-docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add supabase/supabase --skill edit-the-docs -a codex`. Or copy the skill folder (.agents/skills/edit-the-docs in supabase/supabase) into .agents/skills/edit-the-docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add supabase/supabase --skill edit-the-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/edit-the-docs, .gemini/skills/edit-the-docs, .github/skills/edit-the-docs and .opencode/skills/edit-the-docs in your project.
Going by SKILL.md and its folder, Edit The Docs needs the command-line tools its instructions call (pnpm and gh).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Edit The Docs is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Edit The Docs: Supabase Postgres Best Practices (supabase/agent-skills, 2.7k stars), Supabase Development and Debugging (supabase/agent-skills, 2.7k stars), Security Review (jewbetcha/opentrace, 116 stars) and Add Cursor Ambassador (cursor/community-plugins, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
supabase (a GitHub organization, an official publisher) maintains it in supabase/supabase, which has 111,256 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.
Source: supabase/supabase on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.