2.9 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-115 | architecture | architect | proposed | 2026-06-16 | claude-opus-4-8 |
08 — Требования к данным: ORCH-115 — детерминированный staging-раннер
Work Item: ORCH-115 · Repo: orchestrator · Стадия: architecture
When-applicable. Создан намеренно при
N/A-результате: «нет изменений схемы БД» — это критический инвариант NFR-1/AC-5, поэтому решение фиксируется явно и аудитопригодно.
D-1. Схема БД
Изменений нет. Ни новых таблиц, ни колонок, ни миграций. Раннер использует существующие таблицы read/write через существующие хелперы:
tasks— чтениеstage/work_item_id/branchпоtask_id(дискриминатор стадии D1, поля артефакта/гейта); запись стадии — только внутриadvance_stage(его существующий CAS/lease-контракт ORCH-114, раннер схему не трогает).jobs— статус джоба ведётсяmark_job(done|failed)самим раннером (зеркало_run_deploy_finalizer_job); requeue defer —enqueue_jobсвежегоdeployer-джоба (существующий механизм).
D-2. Restart-safe состояние без схемы (defer-счётчик D5)
Счётчик infra-defer (ограничение петли tool-error, D5) — без колонки БД: подсчёт
маркера-подстроки в task_content нового deployer-джоба (зеркало
merge_gate._merge_infra_retry_count ORCH-110 и _deploy_finalize_defer_count ORCH-036).
Сохраняет restart-safe семантику без миграции (NFR-1).
D-3. Артефакт 15-staging-log.md (контракт неизменен)
Формат/расположение/machine-key прежние: docs/work-items/<work_item_id>/15-staging-log.md,
frontmatter staging_status: SUCCESS|FAILED (UPPERCASE) + обязательная 52c-схема. Меняется
лишь продюсер (детерминированный код вместо LLM): author_agent: staging-runner,
model_used: n/a — имя и регистр ключа staging_status: не меняются; читается
неизменённым _parse_staging_status (AC-2/AC-5; TC-04).
D-4. Наблюдаемость — in-process, не БД
Счётчики staging_runner (runs/success/failed/tool_error/deferred) — in-process
(_STAGING_RUNNER_COUNTERS, паттерн _MERGE_GATE_COUNTERS ORCH-110), отдаются read-only в
GET /queue. В БД не персистятся.