# Post-deploy checklist

## Паспорт документа

- Статус документа: working reference
- Актуально на: 29 марта 2026 года
- Владелец: backend/platform-команда
- Пересмотр: при изменении release workflow, smoke-check набора или runtime topology
- Область применения: обязательный post-deploy контроль для production-сервера Qadam
- Связанные документы:
  - [Runbook эксплуатации и деплоя](./deployment-runbook.md)
  - [Change package standard](../governance/change-package-standard.md)
  - [Project change log](../project/project-change-log.md)

## Цель документа

Этот документ фиксирует короткий и обязательный чеклист после любого production-релиза. Релиз не считается завершённым, пока этот чеклист не выполнен и его результаты не отражены в change package.

## 1. Шапка релиза

- [ ] `Package ID` зафиксирован.
- [ ] Указаны commit/refs для `qadam-core`.
- [ ] Указаны commit/refs для `qadam-web`, если он участвовал в релизе.
- [ ] Понятно, есть ли migration.
- [ ] Понятно, есть ли frontend-impact.
- [ ] Понятно, есть ли rollback note.

## 2. До рестарта production

- [ ] Пройдены `pnpm check-types`, `pnpm test`, `pnpm build` в `qadam-core`, если пакет меняет backend.
- [ ] Пройден `pnpm export:openapi`, если пакет меняет API-контракт.
- [ ] Пройдены `pnpm generate:api-contract`, `pnpm check:api-contract`, `pnpm check-types`, `pnpm build` в `qadam-web`, если пакет меняет web/roadmap.
- [ ] Пройден `pnpm check:docs` в `qadam-core`, если менялись канонические документы.
- [ ] Если есть рискованные данные или migration, снят backup по [backup-restore-runbook.md](./backup-restore-runbook.md).

## 3. Production smoke-check

- [ ] `systemctl status qadam-api qadam-web qadam-roadmap nginx` показывает `active`.
- [ ] `curl -I https://qadam.2fab.app` возвращает `200`.
- [ ] `curl https://qadam.2fab.app/api/v1/health` возвращает `200`.
- [ ] `curl -I https://qadam.2fab.app/api/docs` возвращает `200`.
- [ ] `curl https://qadam.2fab.app/api/openapi.json` возвращает валидный JSON.
- [ ] `curl -I https://qadam.2fab.app/roadmap` возвращает `404`.
- [ ] `curl -I -u <login>:<password> https://qadam-roadmap.2fab.app` возвращает `200`.
- [ ] `curl -u <login>:<password> https://qadam-roadmap.2fab.app/api/health` возвращает `200`.

## 4. Контрактные проверки

- [ ] Если менялся API-контракт, обновлены [api-routes.md](../architecture/api-routes.md) и OpenAPI artifact.
- [ ] Если пакет важен для frontend-команды, обновлён [frontend-change-log.md](../frontend/frontend-change-log.md).
- [ ] Если изменился status большого этапа, обновлён [execution-checkpoints.md](../project/execution-checkpoints.md).
- [ ] В [project-change-log.md](../project/project-change-log.md) добавлена запись о релизе.

## 5. Документальные проверки

- [ ] Обновлён `current-state.md`, если изменилось фактическое состояние production.
- [ ] Обновлён `deployment-runbook.md`, если изменился deploy/runtime контур.
- [ ] Обновлён `roadmap.md`, если пакет сдвинул стратегический порядок работ.
- [ ] Обновлены связанные docs/specs в том же change package.

## 6. Основания для немедленного rollback

Rollback не откладывается, если после релиза наблюдается хотя бы одно из условий:

- [ ] broken auth-flow на production;
- [ ] API health не поднимается;
- [ ] web или roadmap runtime не стартует;
- [ ] migration повредила данные или сделала сервис нестабильным;
- [ ] новый релиз открыл критичную security-дыру;
- [ ] smoke-check не проходит, а hotfix не решает проблему быстро.

## 7. Минимальная запись по факту релиза

После закрытия checklist в change package должны остаться:

1. `Package ID`
2. дата и UTC-время
3. какие сервисы обновлялись
4. какие проверки пройдены
5. есть ли ограничения или follow-up
6. ссылка на запись в `project/project-change-log.md`
