6d798c01ef
docs(overview): витрина системы docs/overview/ — бизнес+тех, 3 аудитории, презентация (ORCH-011)
...
Единая точка входа в документацию платформы (ADR-001 D1–D9):
- docs/overview/ — 10 файлов: индекс (маршруты «Я заказчик / Я менеджер /
Я разработчик» + норматив «изменил функциональность → обнови витрину в том же
PR»), business.md (без жаргона, 6 сценариев), 7 тех-блоков (link-first),
presentation.md (16 слайдов + процедура сборки «команда + Проверка:»).
- scripts/build_presentation.py — генератор .pptx в тёмном дизайне (python-pptx;
чистый stdlib-парсер parse_slides + ленивый import pptx; бинарь не коммитится,
build/ в .gitignore; зависимость НЕ в прод-образе — машинный гард TC-09).
- tests/test_system_docs.py — структурный анти-дрейф: derive-сверки стадий/
гейтов/агентов импортом STAGE_TRANSITIONS/QG_CHECKS/glob промптов/config,
валидность ссылок, FORBIDDEN-скан + секрет-эвристика, слайды каноническим
парсером, NFR-2, указатели.
- reviewer.md — ось обзорных доков ORCH-079 расширена на витрину (D7; канон 52d
байт-в-байт, только текст внутри секций) + анти-регресс ассерт в
test_agent_prompts_canon.py.
- Указатели: README.md, CLAUDE.md (правила №2/№6, «Структура»),
PRODUCT_VISION.md (врезка-ссылка), CHANGELOG.md.
Рантайм байт-в-байт: src/**, docker-compose.yml, Dockerfile, requirements* —
ноль изменений (docs+tests+dev-скрипт, паттерн ORCH-102/103). pytest: 1873 passed.
Refs: ORCH-011
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 09:36:40 +03:00
f0cd19d748
feat(replication): ORCH-10b Bundled-тираж — bundle-compose всего стека + bootstrap-скрипт
...
Закрывает Type B эпика ORCH-10 (по ADR-001 ORCH-103, D1–D11):
- deploy/bundled/docker-compose.yml — самодостаточный compose всего стека
(орк + watchdog + Gitea 1.22.6 + зеркало upstream Plane CE v0.23.1,
~14 контейнеров); project name orchestrator-bundle (узнаваемый префикс),
container_name не пиннится, staging-контура нет; одна bridge-сеть,
машинный трафик — сервис-DNS, наружу только человеческие порты;
GITEA__webhook__ALLOWED_HOST_LIST=orchestrator; все образы пиннованы
неподвижными тегами. Корневой compose/Dockerfile/src/** — байт-в-байт.
- deploy/bundled/.env.example — конфиг-канон bundle (плейсхолдеры, ни одного
дефолтного пароля; key-set-sync интерполяций держит тест).
- scripts/bootstrap_bundle.py — python stdlib-only, режимы plan/apply/verify,
step-движок check→ensure, exit 0/2/1: preflight (fail-fast до мутаций) →
секреты (gen_secrets.py + stdlib secrets, без перетирания) → up+готовность →
init Gitea автоматом → init Plane (manual-step с API-верификацией) →
онбординг строго onboard_project.py apply+verify → token-remote клон →
сборка .env/.env.watchdog (единственный писатель, права 600) → health.
Delete-операций нет вообще (D9), секреты не печатаются (NFR-3).
- CHANGELOG.md, CLAUDE.md (абзац Type B), .gitignore (deploy/bundled/repos/).
Док BUNDLED_SETUP.md, REPLICATION §1, arch README, adr-0038 и три структурных
тест-модуля (TC-01…TC-11) — в предыдущих коммитах ветки; полный регресс
1844 passed, ruff по файлам задачи чистый.
Refs: ORCH-103
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 02:16:32 +03:00
8351e91382
docs(deployment): ORCH-10a Lite-тираж — LITE_SETUP.md + канон watchdog-конфига + анти-дрейф контур
...
Закрывает Type A эпика ORCH-10 (поверх 10-common ORCH-101). Docs+tests
(паттерн ORCH-077/092): src/**, docker-compose.yml, Dockerfile, scripts/** —
ноль изменений; конвейер (STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/
схема БД) — байт-в-байт.
- docs/deployment/LITE_SETUP.md (D1/D2): golden source Lite-тиража — 13
нормативных разделов в порядке маршрута оператора, каждый шаг =
fenced-команда + явная «Проверка:»/PASS/FAIL, хост-специфика только
плейсхолдерами; канон не форкается (статусы/env/вебхуки/smoke — ссылками
на ONBOARDING §1 / REPLICATION §2–§4 / SETUP_WEBHOOKS; явно — только
fail-closed Confirm Deploy/STOP и обязательные ключи нового хоста).
- .env.watchdog.example (D5, исход А-4): третий канонический env-example;
key-set = блок WATCHDOG_* .env.example (19 ключей, токены — пустые
плейсхолдеры); закрывает ловушку файла-носителя (sidecar читает ТОЛЬКО
.env.watchdog); C-1 ORCH-100 + когерентность порта в шапке; .env.watchdog
добавлен в .gitignore (секрет-гигиена, зеркало .env.staging).
- tests/test_lite_setup_doc.py (D8): 25 структурных тестов без
сети/LLM/subprocess — 13 разделов в порядке D2, кирпичи FR-6.1, key-sync
watchdog-канона, env-ключи ⊂ .env.example, compose-подмножество (ровно
орк+watchdog по дефолту, staging за профилем, анти-появление
plane*/gitea*), fenced-скан FORBIDDEN (импорт из test_no_host_hardcodes)
+ секрет-эвристика с негативным самочеком, «22 статуса» сверкой импорта
plane_sync._PLANE_NAME_TO_KEY, перекрёстность.
- Перекрёстные доки (FR-7): REPLICATION.md §1 (Type A — Lite → ✅ ORCH-102 +
ссылка), README.md (способность Lite + docs/deployment/ в структуре),
INFRA.md (.env.watchdog в секрет-нормативе + ссылка на deployment),
CLAUDE.md (блок ORCH-102), CHANGELOG.md.
Нормативы разделов: Gitea — branch protection на main НЕ включать (D3 /
ADR D10 ORCH-009 / INV-4), pre-receive не вводится, ОДИН глобальный
webhook-секрет; staging-вилка опциональна (D6); источник кода —
параметризованный git clone <ORCHESTRATOR_GIT_URL> (D7); stateless —
данные/задачи/секреты боевого хоста НЕ переносятся (AC-3).
Тесты: pytest tests/ -q — 1789 passed (полный регресс зелёный).
Refs: ORCH-102
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 00:42:15 +03:00
Dev Agent
6c1e5fff52
feat(staging): add isolated orchestrator-staging service (port 8501, separate DB)
...
CI / test (push) Successful in 10s
CI / test (pull_request) Successful in 9s
- Add orchestrator-staging compose service under profile 'staging'
so normal 'docker compose up -d' does NOT start it.
- Port 8501 via command override; network_mode: host (no ports mapping needed).
- DB isolation via separate volume ./data/staging:/app/data — physically
separate from prod ./data/orchestrator.db on the host.
- ORCH_DB_PATH=/app/data/orchestrator.db explicit in env (same container
path, isolated by volume mount).
- Add .env.staging.example with all required keys and placeholders.
- Update .gitignore: add .env.staging and data/staging/ exclusions.
- Add docs/STAGING.md: how to start staging, architecture table, roadmap.
Refs: ORCH-31 (Stage 1 of 5)
2026-06-05 07:34:48 +03:00
Dev Agent
3116ae67bb
chore: clean up .gitignore, remove cached files from tracking
2026-05-19 15:58:45 +03:00
Dev Agent
8859c38a2a
chore: add .gitignore, remove .env from tracking
2026-05-19 15:57:13 +03:00