# 08 — Требования к данным / схеме БД: ORCH-076 (ORCH-52c)

Work Item: **ORCH-076** · Repo: **orchestrator** · Стадия: architecture

## Сводка

**Изменений схемы БД нет.** Контракт frontmatter работает исключительно на **файлах**
(YAML-frontmatter номерных документов `docs/work-items/<id>/*.md`) и **in-memory** строках.
SQLite (`src/db.py`) — таблицы, индексы, миграции — **не затрагиваются** (TRZ §5).

## Детали

| Аспект | Состояние |
|--------|-----------|
| Новые таблицы | нет |
| Изменённые таблицы / колонки | нет |
| Индексы | нет |
| Миграции | нет (restart-safe без миграции) |
| Persistent state | нет (writer пишет в файлы доков, не в БД) |

## Модель данных контракта (файлы, не БД)

- **Обязательная frontmatter-схема** (машинный источник — `frontmatter.REQUIRED_FIELDS`):
  `work_item`, `stage`, `author_agent`, `status`, `created_at`, `model_used`. Это контракт
  **документа**, не строки БД. Фактическое проставление полей агентами — ORCH-52d (вне scope).
- **Вердикт-ключи** (читаются единым API, семантика 1:1): `verdict:` (12), `result:`/`verdict:`/
  `status:` (13, ORCH-047), `deploy_status:` (14), `staging_status:` (15), `security_status:`
  (17), `post_deploy_status:` (16, информационный). Формат — ведущий YAML-блок `---…---`.

## Совместимость данных
- Старые документы-вердикты **без** новой схемы остаются валидными (схема аддитивна; её
  отсутствие не влияет на чтение вердикта — NFR-1).
- Формат writer'а (`render_frontmatter`) совместим с существующим
  `split("---", 2)` + `yaml.safe_load` — старые и новые парсеры читают единообразно.
