Skill · em Construir backend e dados

supabase-postgres-best-practices

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files,…

Procedência

Antes de instalar

36 arquivos · 60,6 KB · só texto, nenhum script

Instalar na sua CLI

O comando baixa a versão fixada (commit 551274e) direto da origem, para a pasta que a CLI lê. Precisa de curl (macOS e Linux); no Windows não há comando, porque o Rook Labs é para macOS.

Claude Code

Neste projeto: instala em .claude/skills/supabase-postgres-best-practices/.

d=".claude/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Global: instala em ~/.claude/skills/supabase-postgres-best-practices/.

d="$HOME/.claude/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Codex

Neste projeto: instala em .agents/skills/supabase-postgres-best-practices/.

d=".agents/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Global: instala em ~/.agents/skills/supabase-postgres-best-practices/.

d="$HOME/.agents/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Antigravity

Neste projeto: instala em .agents/skills/supabase-postgres-best-practices/.

d=".agents/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Global: instala em ~/.gemini/antigravity-cli/skills/supabase-postgres-best-practices/.

d="$HOME/.gemini/antigravity-cli/skills/supabase-postgres-best-practices"
u="https://raw.githubusercontent.com/supabase/agent-skills/551274ed2fe97c8fea1325f7ceb05803a542f8df/skills/supabase-postgres-best-practices"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/CHANGELOG.md" "$u/CHANGELOG.md" \
  -o "$d/references/_contributing.md" "$u/references/_contributing.md" \
  -o "$d/references/_sections.md" "$u/references/_sections.md" \
  -o "$d/references/_template.md" "$u/references/_template.md" \
  -o "$d/references/advanced-full-text-search.md" "$u/references/advanced-full-text-search.md" \
  -o "$d/references/advanced-jsonb-indexing.md" "$u/references/advanced-jsonb-indexing.md" \
  -o "$d/references/conn-idle-timeout.md" "$u/references/conn-idle-timeout.md" \
  -o "$d/references/conn-limits.md" "$u/references/conn-limits.md" \
  -o "$d/references/conn-pooling.md" "$u/references/conn-pooling.md" \
  -o "$d/references/conn-prepared-statements.md" "$u/references/conn-prepared-statements.md" \
  -o "$d/references/data-batch-inserts.md" "$u/references/data-batch-inserts.md" \
  -o "$d/references/data-n-plus-one.md" "$u/references/data-n-plus-one.md" \
  -o "$d/references/data-pagination.md" "$u/references/data-pagination.md" \
  -o "$d/references/data-upsert.md" "$u/references/data-upsert.md" \
  -o "$d/references/lock-advisory.md" "$u/references/lock-advisory.md" \
  -o "$d/references/lock-deadlock-prevention.md" "$u/references/lock-deadlock-prevention.md" \
  -o "$d/references/lock-short-transactions.md" "$u/references/lock-short-transactions.md" \
  -o "$d/references/lock-skip-locked.md" "$u/references/lock-skip-locked.md" \
  -o "$d/references/monitor-explain-analyze.md" "$u/references/monitor-explain-analyze.md" \
  -o "$d/references/monitor-pg-stat-statements.md" "$u/references/monitor-pg-stat-statements.md" \
  -o "$d/references/monitor-vacuum-analyze.md" "$u/references/monitor-vacuum-analyze.md" \
  -o "$d/references/query-composite-indexes.md" "$u/references/query-composite-indexes.md" \
  -o "$d/references/query-covering-indexes.md" "$u/references/query-covering-indexes.md" \
  -o "$d/references/query-index-types.md" "$u/references/query-index-types.md" \
  -o "$d/references/query-missing-indexes.md" "$u/references/query-missing-indexes.md" \
  -o "$d/references/query-partial-indexes.md" "$u/references/query-partial-indexes.md" \
  -o "$d/references/schema-constraints.md" "$u/references/schema-constraints.md" \
  -o "$d/references/schema-data-types.md" "$u/references/schema-data-types.md" \
  -o "$d/references/schema-foreign-key-indexes.md" "$u/references/schema-foreign-key-indexes.md" \
  -o "$d/references/schema-lowercase-identifiers.md" "$u/references/schema-lowercase-identifiers.md" \
  -o "$d/references/schema-partitioning.md" "$u/references/schema-partitioning.md" \
  -o "$d/references/schema-primary-keys.md" "$u/references/schema-primary-keys.md" \
  -o "$d/references/security-privileges.md" "$u/references/security-privileges.md" \
  -o "$d/references/security-rls-basics.md" "$u/references/security-rls-basics.md" \
  -o "$d/references/security-rls-performance.md" "$u/references/security-rls-performance.md"

Peça ao Rook

Já usa o Rook Labs? Cole no chat do Rook: instale a skill https://rooklabs.sh/marketplace/supabase.agent-skills.supabase-postgres-best-practices

Prévia do SKILL.md

---
name: supabase-postgres-best-practices
description: "Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS polic…
license: MIT
metadata:
  author: supabase
  version: "1.1.1"
  organization: Supabase
  date: January 2026
  abstract: Comprehensive Postgres performance optimization guide for developers using Supabase and Postgres. Contains performance rules across 8 categories, prioritized by impact from critical (query performance, connection management) to incremental (advanced features). Each rule includes detailed explanations, incor…
---

# Supabase Postgres Best Practices

Comprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.

## When to Apply

Reference these guidelines when:
- Writing SQL queries or designing schemas
- Implementing indexes or query optimization
- Reviewing database performance issues
- Configuring connection pooling or scaling
- Optimizing for Postgres-specific features
- Working with Row-Level Security (RLS)

## Rule Categories by Priority

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Query Performance | CRITICAL | `query-` |
| 2 | Connection Management | CRITICAL | `conn-` |
| 3 | Security & RLS | CRITICAL | `security-` |
| 4 | Schema Design | HIGH | `schema-` |
| 5 | Concurrency & Locking | MEDIUM-HIGH | `lock-` |
| 6 | Data Access Patterns | MEDIUM | `data-` |
| 7 | Monitoring & Diagnostics | LOW-MEDIUM | `monitor-` |
| 8 | Advanced Features | LOW | `advanced-` |

## How to Use
…

Ver todo o marketplace