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.
Tunes and administers PostgreSQL: EXPLAIN-driven query tuning, index choice, JSONB, extensions, streaming or logical replication, VACUUM and pg_stat monitoring.
$ npx skills add Jeffallan/claude-skills --skill postgres-pro -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Jeffallan/claude-skills postgres-pro --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/Jeffallan/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/postgres-pro .claude/skills/postgres-pro && 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 "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .claude/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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/Jeffallan/claude-skills/tree/main/skills/postgres-proType 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 Jeffallan/claude-skills --skill postgres-pro -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Jeffallan/claude-skills postgres-pro --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/postgres-pro .agents/skills/postgres-pro && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .agents/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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 Jeffallan/claude-skills --skill postgres-pro -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Jeffallan/claude-skills postgres-pro --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/postgres-pro .cursor/skills/postgres-pro && 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 "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .cursor/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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/Jeffallan/claude-skills.git --path skills/postgres-pro--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 Jeffallan/claude-skills --skill postgres-pro -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Jeffallan/claude-skills postgres-pro --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/postgres-pro .gemini/skills/postgres-pro && 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 "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .gemini/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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 Jeffallan/claude-skills postgres-proInstalls 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 Jeffallan/claude-skills --skill postgres-pro -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/postgres-pro .github/skills/postgres-pro && 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 "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .github/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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 Jeffallan/claude-skills --skill postgres-pro -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Jeffallan/claude-skills postgres-pro --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/postgres-pro .opencode/skills/postgres-pro && 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 "postgres-pro" agent skill from https://github.com/Jeffallan/claude-skills/tree/main/skills/postgres-pro into .opencode/skills/postgres-pro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-pro", 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.
postgres-proTunes and administers PostgreSQL: EXPLAIN-driven query tuning, index choice, JSONB, extensions, streaming or logical replication, VACUUM and pg_stat monitoring.
The agent begins with EXPLAIN (ANALYZE, BUFFERS) to find bottlenecks, picks B-tree, GIN, GiST or BRIN indexes to fit the workload and checks them with EXPLAIN before deployment, then rewrites inefficient queries and refreshes statistics with ANALYZE. For replication it sets up streaming or logical replication and watches lag. For maintenance it tracks VACUUM, bloat and autovacuum through pg_stat views and verifies the result after each change.
An end-to-end example goes from finding slow queries in pg_stat_statements to a fix and its verification. Reference files cover performance, JSONB operators and GIN indexing, extensions such as PostGIS, pg_trgm, pgvector and uuid-ossp, replication and failover, and maintenance. SQL snippets show a GIN index for containment queries, a dead-tuple check for bloat and a replication lag query on the primary.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1be15d8. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are sql).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comsynergetic.solutionsjeffallan.github.ioFrom 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.
PostgreSQL Pro loads about 1.5k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 56 tokens; SKILL.md has 392 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 Jeffallan/claude-skills at commit 1be15d8, republished under its MIT licence (© Jeffallan). 392 words, ~1,496 tokens.
.claude/skills/postgres-pro/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Senior PostgreSQL expert with deep expertise in database administration, performance optimization, and advanced PostgreSQL features.
EXPLAIN (ANALYZE, BUFFERS) to identify bottlenecksEXPLAIN before deployingANALYZE to refresh statisticspg_stat views; verify improvements after each change-- Step 1: Identify slow queries
SELECT query, mean_exec_time, calls
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 10;
-- Step 2: Analyze a specific slow query
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT * FROM orders WHERE customer_id = 42 AND status = 'pending';
-- Look for: Seq Scan (bad on large tables), high Buffers hit, nested loops on large sets
-- Step 3: Create a targeted index
CREATE INDEX CONCURRENTLY idx_orders_customer_status
ON orders (customer_id, status)
WHERE status = 'pending'; -- partial index reduces size
-- Step 4: Verify the index is used
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM orders WHERE customer_id = 42 AND status = 'pending';
-- Confirm: Index Scan on idx_orders_customer_status, lower actual time
-- Step 5: Update statistics if needed after bulk changes
ANALYZE orders;Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Performance | references/performance.md | EXPLAIN ANALYZE, indexes, statistics, query tuning |
| JSONB | references/jsonb.md | JSONB operators, indexing, GIN indexes, containment |
| Extensions | references/extensions.md | PostGIS, pg_trgm, pgvector, uuid-ossp, pg_stat_statements |
| Replication | references/replication.md | Streaming replication, logical replication, failover |
| Maintenance | references/maintenance.md | VACUUM, ANALYZE, pg_stat views, monitoring, bloat |
-- Create GIN index for containment queries
CREATE INDEX idx_events_payload ON events USING GIN (payload);
-- Efficient JSONB containment query (uses GIN index)
SELECT * FROM events WHERE payload @> '{"type": "login", "success": true}';
-- Extract nested value
SELECT payload->>'user_id', payload->'meta'->>'ip'
FROM events
WHERE payload @> '{"type": "login"}';-- Check tables with high dead tuple counts
SELECT relname, n_dead_tup, n_live_tup,
round(n_dead_tup::numeric / NULLIF(n_live_tup + n_dead_tup, 0) * 100, 2) AS dead_pct,
last_autovacuum
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;
-- Manually vacuum a high-churn table and verify
VACUUM (ANALYZE, VERBOSE) orders;-- On primary: check standby lag
SELECT client_addr, state, sent_lsn, write_lsn, flush_lsn, replay_lsn,
(sent_lsn - replay_lsn) AS replication_lag_bytes
FROM pg_stat_replication;EXPLAIN (ANALYZE, BUFFERS) for query optimizationEXPLAIN before and after creationCREATE INDEX CONCURRENTLY to avoid table locks in productionANALYZE after bulk data changes to refresh statisticsautovacuum_vacuum_scale_factor for high-churn tablespg_stat_replicationuuid type for UUIDs, not textSELECT * in production queriesWhen implementing PostgreSQL solutions, provide:
EXPLAIN (ANALYZE, BUFFERS) output and interpretationPostgreSQL 12-16, EXPLAIN ANALYZE, B-tree/GIN/GiST/BRIN indexes, JSONB operators, streaming replication, logical replication, VACUUM/ANALYZE, pg_stat views, PostGIS, pgvector, pg_trgm, WAL archiving, PITR
Maintained by @jeffallan, Principal Consultant at Synergetic Solutions
© Jeffallan, MIT. 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 5 other files (references) in skills/postgres-pro of Jeffallan/claude-skills.
Open the folder on GitHubat commit 1be15d8
PostgreSQL Pro 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 |
|---|---|---|---|---|---|---|
| PostgreSQL Pro this skillJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Supabase Postgres Best Practicessupabase/agent-skills | 2.7k | 24 repos | ~808 | Automated safety check: Pass | MIT | |
| PostgreSQL Documentation Reference2025Emma/vibe-coding-cn | 23k | 1 repos | ~19k | Automated safety check: Pass | MIT | |
| Discover Databaserand/cc-polymath | 181 | — | ~2k | Automated safety check: Pass | MIT | |
| Postgresdbericrisco/rsc-harness | 156 | — | ~4.4k | Automated safety check: Pass | MIT | |
| DatabasesMicrock/ordinary-claude-skills | 401 | — | ~1.9k | Automated safety check: Notes | MIT |
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.
2025Emma/vibe-coding-cn
PostgreSQL database documentation - SQL queries, database design, administration, performance tuning, and advanced features. Use when working with PostgreSQL…
rand/cc-polymath
Automatically discover database skills when working with SQL, PostgreSQL, MongoDB, Redis, database schema design, query optimization, migrations, connection pooling, ORMs, or database selection.
ericrisco/rsc-harness
A skill your agent uses when PostgreSQL engine behaviour decides the answer — schema and type design, index choice, reading EXPLAIN on a slow query, zero-downtime DDL and backfills, or ops (roles…
Microck/ordinary-claude-skills
Work with MongoDB (document database, BSON documents, aggregation pipelines, Atlas cloud) and PostgreSQL (relational database, SQL queries, psql CLI, pgAdmin).
theneoai/awesome-skills
PostgreSQL expert with advanced SQL, JSONB, indexing, performance tuning, replication, and extensions.
Jeffallan/claude-skills
Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.
Jeffallan/claude-skills
Walks through designing, building and polishing a command-line tool: user workflow and command hierarchy, implementation in commander, click, typer or cobra, completions and cross-platform testing.
Jeffallan/claude-skills
Guides LLM fine-tuning with LoRA and QLoRA through Hugging Face PEFT, from dataset validation and training checks to adapter merging, quantization and deployment.
Jeffallan/claude-skills
Designs GraphQL schemas and Apollo Federation graphs, with DataLoader resolvers, subscriptions, query complexity limits and caching.
Jeffallan/claude-skills
Creates and checks Kubernetes manifests, Helm charts, RBAC and network policies, and helps debug pod problems, with kubectl checks and rollback steps.
Jeffallan/claude-skills
Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.
Works with
Categories
Tunes and administers PostgreSQL: EXPLAIN-driven query tuning, index choice, JSONB, extensions, streaming or logical replication, VACUUM and pg_stat monitoring. The agent begins with EXPLAIN (ANALYZE, BUFFERS) to find bottlenecks, picks B-tree, GIN, GiST or BRIN indexes to fit the workload and checks them with EXPLAIN before deployment, then rewrites inefficient queries and refreshes statistics with ANALYZE. For replication it sets up streaming or logical replication and watches lag.
PostgreSQL Pro fits situations like: finding out why a query is slow using EXPLAIN ANALYZE; choosing between B-tree, GIN, GiST and BRIN indexes; storing and indexing JSONB documents; setting up streaming or logical replication and watching lag.
Run `npx skills add Jeffallan/claude-skills --skill postgres-pro -a claude-code`. Or copy the skill folder (skills/postgres-pro in Jeffallan/claude-skills) into .claude/skills/postgres-pro in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Jeffallan/claude-skills --skill postgres-pro -a codex`. Or copy the skill folder (skills/postgres-pro in Jeffallan/claude-skills) into .agents/skills/postgres-pro 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 Jeffallan/claude-skills --skill postgres-pro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/postgres-pro, .gemini/skills/postgres-pro, .github/skills/postgres-pro and .opencode/skills/postgres-pro in your project.
SKILL.md names no scripts, command-line tools or credentials: PostgreSQL Pro is instructions for the agent only. Our summary lists: Access to a PostgreSQL database.
SKILL.md names 3 domains. As links in the text: github.com, synergetic.solutions and jeffallan.github.io. 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.
PostgreSQL Pro is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with PostgreSQL Pro: Supabase Postgres Best Practices (supabase/agent-skills, 2.7k stars), PostgreSQL Documentation Reference (2025Emma/vibe-coding-cn, 23k stars), Discover Database (rand/cc-polymath, 181 stars) and Postgresdb (ericrisco/rsc-harness, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Jeffallan (a GitHub user) maintains it in Jeffallan/claude-skills, which has 11,754 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 3, 2026.
Source: Jeffallan/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.