# postgresql-expert-best-practices-code-review

Набор правил по схемам, миграциям и индексам PostgreSQL. Агент подхватывает их, когда вы пишете или правите миграции.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 387 установок · ★ 8
- Автор: wispbit
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/wispbit-ai/skills/tree/HEAD/skills/postgresql-expert-best-practices-code-review/SKILL.md
- Обновлён: 2026-02-11
- HTML: https://affpapa.org/nevibecode/skills/postgresql-expert-best-practices-code-review

## Что делает

Скилл разбит на десять файлов-правил в папке `rules/`. Каждый файл — короткое объяснение, почему правило важно, уровень влияния, пример неудачной миграции и правильный вариант. Приоритеты расставлены по категориям: управление индексами идёт первым, дальше безопасность ограничений, проектирование схемы и стандарты именования.

Из правил видно, на чём чаще всего ломается продакшен. Индексы советует создавать через `CONCURRENTLY`, чтобы не блокировать запись. Внешние ключи добавлять без проверки, а валидировать отдельным шагом. `NOT NULL` ставить после проверочного ограничения. Для JSON брать `JSONB`, а не `JSON`. Уникальность оформлять как конкурентный индекс плюс ограничение.

Есть и договорённости по структуре: в каждой таблице `id`, `created_at` и `updated_at`, не более трёх колонок в неуникальном индексе, имена вида `idx_tablename_columnname` и snake_case для колонок. Скилл ничего не запускает сам — это справочник, который агент читает перед генерацией SQL. Без него модель спокойно выдаст `CREATE INDEX` без `CONCURRENTLY` на живой таблице, и это повод проверить миграцию до деплоя.

## Требования
- Работает с: PostgreSQL

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wispbit-ai/skills --skill postgresql-expert-best-practices-code-review -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/postgresql-expert-best-practices-code-review/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/postgresql-expert-best-practices-code-review/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wispbit-ai/skills --skill postgresql-expert-best-practices-code-review -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/postgresql-expert-best-practices-code-review/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wispbit-ai/skills --skill postgresql-expert-best-practices-code-review -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/postgresql-expert-best-practices-code-review/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install wispbit-ai/skills postgresql-expert-best-practices-code-review
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/postgresql-expert-best-practices-code-review/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wispbit-ai/skills --skill postgresql-expert-best-practices-code-review -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/wispbit-ai/skills --path skills/postgresql-expert-best-practices-code-review
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/postgresql-expert-best-practices-code-review/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add wispbit-ai/skills --skill postgresql-expert-best-practices-code-review -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/wispbit-ai/skills/tree/HEAD/skills/postgresql-expert-best-practices-code-review/SKILL.md

## Когда брать
- создать индекс на большой таблице и не заблокировать запись
- добавить внешний ключ без долгой блокировки
- перевести колонку в NOT NULL без простоя
- выбрать JSONB вместо JSON для индексируемых полей
- привести имена индексов и колонок к одному виду

## Примеры запросов агенту
- Напиши миграцию: добавляю колонку `status` в таблицу `orders`, проверь по правилам скилла
- Отревьюй эту миграцию и скажи, где я нарушил best practices PostgreSQL
- Спроектируй таблицу `payments` с учётом правил скилла

## Похожие
- [xlsx](https://affpapa.org/nevibecode/skills/xlsx.md) — скилл · 187223 установки
- [google-agents-cli-observability](https://affpapa.org/nevibecode/skills/google-agents-cli-observability.md) — скилл · 511300 установок
- [caveman-evidence-review](https://affpapa.org/nevibecode/skills/caveman-evidence-review.md) — скилл · 104500 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок
- [performance-optimization](https://affpapa.org/nevibecode/skills/performance-optimization.md) — скилл · 65200 установок
- [supabase](https://affpapa.org/nevibecode/skills/supabase.md) — скилл · 8 установок

Из того же набора: [wispbit-ai/skills](https://affpapa.org/nevibecode/by/wispbit-ai/skills.md) — 2 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
