# 08 — Требования к схеме БД: Security-гейт (ORCH-022) ## Решение: схема БД НЕ меняется Миграций нет. Обоснование (соответствует TRZ §6 и паттерну edge-под-гейтов ORCH-043/058): 1. **Вердикт гейта — артефакт-файл** `17-security-report.md` (YAML-frontmatter), как `14-deploy-log.md` / `15-staging-log.md`. Не хранится в БД. 2. **Состояние/идемпотентность** — детерминированная пересборка вердикта при каждом тике (гейт чистый, без долгоживущего состояния между прогонами); sentinel-файлы НЕ требуются (в отличие от deploy-state/post-deploy-state — там асинхронный self-restart). 3. **Retry-счётчик** — переиспользуется существующий `_developer_retry_count(task_id)` (подсчёт по `jobs`/`agent_runs`), общий с merge-gate/image-freshness. **Новой колонки `security_retry` НЕ вводим** (TRZ §6: предпочесть подсчёт по `jobs`/`agent_runs`). Это корректно: security-FAIL, как merge/freshness-FAIL, откатывает на `development` и запускает developer — он и есть единица retry; общий cap=3 защищает от петли. ## Используемые существующие таблицы (без изменений) - `tasks` — стадия задачи (`update_task_stage` при откате на `development`). - `jobs` — enqueue `developer` при FAIL; основа `_developer_retry_count`. - `agent_runs` — usage/duration; основа подсчёта retry. ## Что НЕ делаем - Не добавляем таблицу findings/CVE-журнала (история находок — в артефактах per-task; петля уроков ORCH-8 читает артефакт). - Не добавляем колонок в `tasks`/`jobs`.