7.3 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-103 | architecture | architect | proposed | 2026-06-11 | claude-opus-4-8 |
10 — Технические риски: ORCH-103 — Bundled-тираж: весь стек одним комплектом + bootstrap
Work Item: ORCH-103 · Repo: orchestrator · Стадия: architecture
Информационный (гейтом не парсится). Риски реализации и эксплуатации bundle; решения —
06-adr/ADR-001-bundled-stack-compose-and-bootstrap.md(D1…D11).
Реестр рисков
| ID | Риск | Вер. | Влия. | Митигейшн |
|---|---|---|---|---|
| TR-1 | Ресурсоёмкость Plane (≈13–14 контейнеров): OOM/вечные миграции на слабом хосте → «bundle не работает» | Сред. | Выс. | Preflight bootstrap (RAM/диск/CPU до мутаций, BR-7); честные цифры в BUNDLED_SETUP §2 по замеру (AC-4); таймауты ожидания готовности с диагностикой «кто не дождался + хвост логов» (D5 ш.3); траблшутинг §14 |
| TR-2 | Дыры Plane CE API: instance-setup/workspace/API-токен UI-only → UX «одной команды» размывается; молчаливый пропуск шага ломает всё дальше | Выс. | Сред. | Контракт manual-step (инструкция → подтверждение → API-верификация результата, exit 2 без TTY; D5/D7); число ручных шагов минимизировано (Gitea — полностью автоматом, D6); прогрессивная автоматизация разрешена без смены контракта |
| TR-3 | Дрейф upstream-образов: «плавающий» тег ломает воспроизводимость; пиннованные версии стареют (CVE/несовместимость) | Сред. | Сред. | Неподвижные теги литералом + тест формы TC-03 (не latest/безтеговых); теги фиксируются по фактически проверенному стенду (D3); апгрейд — отдельные задачи (NFR-6, BRD §6) |
| TR-4 | Сетевая недостижимость вебхуков (труднодиагностируемое «задача не появилась»): приватные адреса, рассинхрон URL | Сред. | Выс. | Одна bridge-сеть + строго сервис-DNS для машинного трафика (D4); явный GITEA__webhook__ALLOWED_HOST_LIST=orchestrator (Gitea по умолчанию режет приватные таргеты); URL подставляет bootstrap, не оператор; smoke проверяет ОБА направления (FR-6); траблшутинг §14 |
| TR-5 | Соблазн форкнуть/расширить корневой compose (упадёт анти-дрейф ORCH-102 TC-04) | Низ. | Выс. | Bundle строго отдельным файлом deploy/bundled/ (D1); TC-02 зеркалит заморозку корневого compose; правило эскалации TRZ §7 — если всплывёт незакрытая параметризация src/**, остановиться и вернуть задачу, не «дотачивать молча» |
| TR-6 | Утечка секретов в репо/логи при генерации bundle-кред | Низ. | Выс. | В гите — только плейсхолдеры (канон D2); bootstrap не печатает значения (имена ключей/пути, D5); права 600; секрет-эвристика hex≥32/alnum≥40 + FORBIDDEN-скан на новых артефактах (TC-06); live-файлы в .gitignore |
| TR-7 | Токен-remote агентов: токен бот-юзера plaintext в .git/config чекаутов; один бот = широкие права |
Сред. | Низ. | Осознанный компромисс тестовой инсталляции (D8): порты БД/брокера не публикуются, каталог локальный, права 600; ssh-контур сознательно не вводится (меньше поверхность); зафиксировано в BUNDLED_SETUP §1 «рамка» |
| TR-8 | Путаница двух .env-слоёв (bundle-инфра deploy/bundled/.env vs runtime орка корневой .env): ручная правка не того файла |
Сред. | Сред. | Bootstrap — единственный писатель всех live-файлов (D2); авто-чтение compose из project dir (нет --env-file-футгана); шапки-комментарии в канонах перекрёстно ссылаются; key-set-sync тест TC-04 |
| TR-9 | Хост-python/venv для onboard: onboard_project.py требует venv с requirements.txt (канон ONBOARDING) — на голом хосте шаг 6 падает |
Сред. | Сред. | Preflight проверяет python3/venv (D5 ш.1); создание venv — идемпотентный ensure-шаг bootstrap; сам bootstrap stdlib-only и от venv не зависит (D5) |
| TR-10 | Повторный запуск/грязный хост: bootstrap портит чужое состояние или дублирует своё | Низ. | Выс. | Step-движок check→ensure (skip-семантика, AC-8); детект «грязи» по префиксу orchestrator-bundle до мутаций; delete-операций в скрипте нет вообще — teardown только документированной процедурой §13 (D9); unit-тесты чистых функций preflight (TC-08) |
Сводный вывод
Доминирующий класс — эксплуатационные риски целевого хоста (TR-1/TR-2/TR-4): они не
затрагивают наш прод и гасятся честным preflight, контрактом manual-step и smoke в обе стороны.
Рисков для прод-конвейера self-hosting нет по построению (NFR-1/NFR-2: рантайм байт-в-байт,
артефакты в нашем контуре инертны, kill-switch не требуется — паттерн ORCH-009; все существующие
анти-дрейф тесты остаются зелёными). Эскалация arch:major-change не требуется: новых стадий/
компонентов рантайма/смены БД нет — задача целиком в слое дистрибуции (паттерн ORCH-101/102).
Возврат в анализ не требуется: ТЗ выполнимо без нарушения принципов; единственный заранее
оговорённый стоп-кран — TR-5 (обнаружение незакрытой параметризации src/** ⇒ остановка по
TRZ §7). Остаточный риск — низкий.