35 lines
2.2 KiB
Markdown
35 lines
2.2 KiB
Markdown
# 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` — старые и новые парсеры читают единообразно.
|