v
vibecode
Все скиллы
01Скилл
Деплой
адапт. из addyosmani/agent-skills
/ship

Выпуск в прод — чек-лист

Систематический чек-лист перед публикацией. Не пропустишь secrets, бэкапы, мониторинг, rollback план, security headers.


01aКогда брать

Когда хочешь нажать deploy в продакшен. Не «после деплоя посмотрим» — а **до** того как реальные пользователи попадут.

02Куда положить
~/.claude/skills/ship/SKILL.md

Создай эту папку и файл (если их нет), вставь содержимое ниже. Затем в Claude Code: /exit и запусти claude заново — команда появится.

03Содержимое

Скопируй всё что внутри блока и вставь в файл по пути выше.

SKILL.md
1---2name: ship3description: Систематический чек-лист перед выпуском в прод.4---5 6# /ship — готовность к выпуску7 8Пройди по каждому пункту **до** того как сказать "поехали".9 10## 🔐 Секреты11 12- [ ] Все ключи в `.env`, не в коде13- [ ] `.env` в `.gitignore` (проверь!)14- [ ] На сервере `.env` отдельно от git-репы (`/opt/app/.env`)15- [ ] Если был утёкший ключ — **ротирован** (не "потом")16 17## 💾 База данных18 19- [ ] Все миграции применены20- [ ] Backup настроен (минимум: `pg_dump` раз в день)21- [ ] **Восстановление протестировано** хотя бы раз (бэкап без проверки = не бэкап)22- [ ] План rollback миграции если что-то пошло не так23 24## 🌐 Сеть25 26- [ ] DNS прописан и пропагирован (`dig +short domain.com`)27- [ ] HTTPS работает (Caddy / nginx / Cloudflare)28- [ ] Редирект http → https29- [ ] CORS правильно настроен (не `*` на API с auth)30 31## 📊 Мониторинг32 33- [ ] Uptime-мониторинг настроен (UptimeRobot / Better Uptime — бесплатно)34- [ ] Где смотреть логи понятно (`docker logs` / Sentry / журнал)35- [ ] Алёрт о падении куда-то приходит (Telegram / email / Slack)36 37## 🛡 Безопасность38 39- [ ] Rate-limiting на критичных endpoints (login, register)40- [ ] Все формы валидируют ввод **на сервере**41- [ ] Headers безопасности (Content-Security-Policy, HSTS)42- [ ] Сервер: `ufw` / `fail2ban` / `unattended-upgrades`43 44## ⚡ Производительность45 46- [ ] Изображения оптимизированы (WebP, нужный размер)47- [ ] Кеширование где имеет смысл48- [ ] CDN если статика большая (Cloudflare бесплатно)49- [ ] Bundle размер проверен (`@next/bundle-analyzer`)50 51## 🔄 Rollback52 53- [ ] План: что делать если новая версия упала?54- [ ] Сколько минут откат? (если час — это плохо)55- [ ] Хватит ли тебя одного для отката или нужен план поддержки?56 57## 📝 Документация58 59- [ ] README обновлён (как запускать локально)60- [ ] `.env.example` со всеми обязательными переменными61- [ ] Известные ограничения задокументированы62 63## После деплоя — первые 30 минут64 65- [ ] Самостоятельно пройти основные сценарии66- [ ] Проверить логи на ошибки67- [ ] Если есть пользователи — наблюдать что сломается первым68 69## Если что-то идёт не так70 71- Не паникуй72- Не "ещё одну правку и заработает"73- **Откатывай** — потом разбираешься74- Помни: лучше работающая старая версия, чем сломанная новая
04Как использовать

Примеры команд

  • 01/ship — готовлюсь выпустить лендинг