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
c455931ae7
architect(ET): auto-commit from architect run_id=633
2026-06-11 09:36:40 +03:00
47479a9b75
analyst(ET): auto-commit from analyst run_id=632
2026-06-11 09:36:40 +03:00
6d1230bcc5
docs: init ORCH-011 business request
2026-06-11 09:36:40 +03:00
9b7bdc0c6c
docs(ORCH-011): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 09:36:21 +03:00
2c72a889b6
Merge pull request 'feat(replication): ORCH-10b Bundled-тираж — весь стек одним комплектом + bootstrap (ORCH-103)' ( #124 ) from feature/ORCH-103-orch-10b-bundled-bootstrap into main
CI / test (push) Has been cancelled
2026-06-11 02:22:42 +03:00
deploy-finalizer
cf94fb813f
deploy(ORCH-036): finalize SUCCESS for ORCH-103
CI / test (push) Successful in 54s
2026-06-11 02:22:41 +03:00
6e17f33be4
tester(ET): auto-commit from tester run_id=630
CI / test (push) Successful in 57s
CI / test (pull_request) Successful in 1m1s
2026-06-11 02:16:32 +03:00
8512dad29e
reviewer(ET): auto-commit from reviewer run_id=629
2026-06-11 02:16:32 +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
215930fb90
developer(ET): auto-commit from developer run_id=627
2026-06-11 02:16:32 +03:00
054b78c8ca
architect(ET): auto-commit from architect run_id=626
2026-06-11 02:16:32 +03:00
4050ccbfde
analyst(ET): auto-commit from analyst run_id=625
2026-06-11 02:16:32 +03:00
d282d25659
docs: init ORCH-103 business request
2026-06-11 02:16:32 +03:00
c74a68a251
docs(ORCH-103): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 02:16:04 +03:00
0d15719676
Merge pull request 'docs(deployment): ORCH-102 — ORCH-10a Lite-тираж (LITE_SETUP + watchdog-канон + анти-дрейф)' ( #123 ) from feature/ORCH-102-orch-10a-lite-watchdog into main
CI / test (push) Has been cancelled
2026-06-11 00:48:29 +03:00
deploy-finalizer
f09aff6b43
deploy(ORCH-036): finalize SUCCESS for ORCH-102
CI / test (push) Successful in 54s
2026-06-11 00:48:28 +03:00
a5f904b56a
tester(ET): auto-commit from tester run_id=623
CI / test (push) Successful in 59s
CI / test (pull_request) Successful in 1m1s
2026-06-11 00:42:15 +03:00
56cbf9bd0e
reviewer(ET): auto-commit from reviewer run_id=611
2026-06-11 00:42:15 +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
443ddc6b6f
architect(ET): auto-commit from architect run_id=609
2026-06-11 00:42:15 +03:00
30f1f33af1
analyst(ET): auto-commit from analyst run_id=608
2026-06-11 00:42:15 +03:00
3a103a6e92
docs: init ORCH-102 business request
2026-06-11 00:42:15 +03:00
7d6251d4b6
docs(ORCH-102): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
2026-06-11 00:41:48 +03:00
ede5ec9473
Merge pull request 'feat(replication): ORCH-101 — расхардкод хоста + секреты нового хоста + smoke (фундамент тиража 10-common)' ( #122 ) from feature/ORCH-101-orch-10-common-smoke into main
CI / test (push) Has been cancelled
2026-06-10 21:09:38 +03:00
deploy-finalizer
c1e3c46f98
deploy(ORCH-036): finalize SUCCESS for ORCH-101
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 58s
2026-06-10 21:09:37 +03:00
cb1f27e9c0
docs(ORCH-101): staging gate log — staging_status SUCCESS (8/10, C9a/C9b infra-waived)
...
CI / test (push) Successful in 1m2s
CI / test (pull_request) Successful in 1m3s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 21:02:45 +03:00
c55f956d78
tester(ET): auto-commit from tester run_id=606
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 55s
2026-06-10 21:00:13 +03:00
26fe4cdd5e
reviewer(ET): auto-commit from reviewer run_id=605
CI / test (push) Successful in 1m1s
CI / test (pull_request) Successful in 59s
2026-06-10 20:57:20 +03:00
f1635ddb39
feat(replication): расхардкод хоста + секреты нового хоста + smoke-runbook
...
CI / test (push) Successful in 57s
CI / test (pull_request) Successful in 55s
Фундамент тиража 10-common (эпик ORCH-10): платформа разворачивается на
новой инфре без правки кода — только env/конфиг. Каждый дефолт = боевому
значению (пустой .env => поведение 1:1, kill-switch-природа, NFR-2);
STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/схема БД не тронуты.
- config: agent_home_dir / agent_git_name / git_email_domain / staging_port
(ADR-001 D2/D4); код-блокеры A1-A4 закрыты: plane_sync ссылки из
gitea_public_url+gitea_owner, launcher - единый agent_git_env() (x2 места),
self_deploy/post_deploy - HOME+домен из Settings (имена системных акторов -
платформенные литералы)
- image_freshness: staging_port из конфига + fail-closed guard
staging_port == прод-порт -> отказ ДО ssh/build (инвариант ORCH-058 AC-9
стал исполняемым); REPO= передаётся хуку явно обоими инвокерами (D7)
- SELF_HOSTING_REPO - нормативная платформенная константа (D3, пин-тест)
- compose: полная ${VAR:-default}-интерполяция (реестр B, карта D6); группа
ORCH-040 uid/gid/HOME/маунты двигается согласованно (build.args APP_*);
group_add "МИНА 1" сохранён x3; оба app-сервиса с явным command:
- Dockerfile: ARG APP_UID/APP_GID/APP_USER/APP_HOME (CMD exec-form 8500
сознательно не тронут - D5); deploy-hook: REPO="${REPO:-...}" (D1 реестра)
- секреты: stdlib scripts/gen_secrets.py (token_hex(32); печать по умолчанию;
--write никогда не перезаписывает существующий .env молча, exit=2;
перезапись только --force); .env.example дополнен до полноты ключей старта
- доки: новый docs/operations/REPLICATION.md (карта env, чек-лист секретов,
smoke-процедура с PASS/FAIL, границы 10-common/Lite/Bundled), INFRA.md,
README, CLAUDE.md, CHANGELOG
- анти-регресс: tests/test_no_host_hardcodes.py (tokenize-сканер запрещённых
литералов, config-модули - структурное исключение, allowlist пуст,
негативная самопроверка) + test_host_config_keys / test_infra_parametrization
/ test_secrets_gen / test_replication_smoke; согласованные структурные
правки test_orch040_compose (судит резолв дефолтов) и
test_deploy_hook_rollback_sim (REPO через env-override = контракт D7)
Полный регресс: 1764 passed.
Refs: ORCH-101
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 20:50:43 +03:00
26bdd783d6
architect(ET): auto-commit from architect run_id=603
CI / test (push) Successful in 59s
2026-06-10 20:23:50 +03:00
69aa6eacde
analyst(ET): auto-commit from analyst run_id=602
CI / test (push) Successful in 1m9s
2026-06-10 20:02:14 +03:00
9d0f2e40b7
docs: init ORCH-101 business request
CI / test (push) Successful in 59s
2026-06-10 19:50:40 +03:00
4c232112d4
Merge pull request 'feat(onboarding): turnkey project onboarding — kit + CLI + runbook (ORCH-009)' ( #120 ) from feature/ORCH-009-turnkey-plane into main
CI / test (push) Has been cancelled
2026-06-10 19:50:38 +03:00
deploy-finalizer
2fb6dc32f6
deploy(ORCH-036): finalize SUCCESS for ORCH-009
CI / test (push) Successful in 58s
2026-06-10 19:50:37 +03:00
e5c3774bc5
tester(ET): auto-commit from tester run_id=600
CI / test (push) Successful in 58s
CI / test (pull_request) Successful in 57s
2026-06-10 19:40:51 +03:00
b97ffae7a1
reviewer(ET): auto-commit from reviewer run_id=593
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 1m3s
2026-06-10 17:26:44 +03:00
b26a391fa3
developer(ET): auto-commit from developer run_id=592
CI / test (push) Successful in 55s
CI / test (pull_request) Successful in 55s
2026-06-10 16:18:27 +03:00
e9038182a1
fix(tests): hermetic ORCH-41 model/effort tests vs host env (unblock merge-gate)
...
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 55s
Merge-gate re-test runs under the orchestrator's prod env, where the
operator legitimately set ORCH_AGENT_FALLBACK_MODEL and changed
ORCH_AGENT_MODEL_DEFAULT / ORCH_AGENT_EFFORT_*. Two ORCH-41-era tests
asserted SHIPPED defaults through the env-backed settings singleton and
failed 3/3 there, while Gitea CI (clean env) stayed green. Branch
ORCH-009 touches neither src/ nor these tests - latent non-hermetic
landmine on main, detonated by the prod env change.
- test_resolve_agent_effort.py: autouse fixture now mirrors the sibling
model-file baseline (pins shipped model/fallback fields) so the
flag-assembly tests are env-independent.
- test_resolve_agent_model.py: fixture also resets agent_fallback_model;
test_fallback_model_disabled_by_default now asserts the CLASS field
default (the actual ORCH-074 ADR-001 G4 invariant: shipped default
is ""), never-break is_valid_model asserts unchanged byte-for-byte.
Clean-env behaviour is byte-equivalent (fixtures pin exactly what an
empty env yields). Full suite: 1713 passed (was 2 failed / 1711).
Refs: ORCH-009
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 16:17:54 +03:00
dd09e3da89
tester(ET): auto-commit from tester run_id=590
CI / test (push) Successful in 54s
CI / test (pull_request) Successful in 53s
2026-06-10 16:08:43 +03:00
cc3ed42041
reviewer(ET): auto-commit from reviewer run_id=589
2026-06-10 16:08:43 +03:00
dc1cb87818
feat(onboarding): turnkey project onboarding — kit + CLI + runbook (ORCH-009)
...
Operator capability to bring a NEW project online in one pass, fully
outside the runtime and the pipeline (src/** byte-exact, no kill-switch
needed — activation is an explicit human CLI run). Reference = the
orchestrator repo itself (ORCH-52b/c/d/e canons).
* onboarding/repo-skeleton/ — parametrized kit of a new repo: 6 agent
prompt templates per canon 52d/92 (5 ru + deployer en with the
shared-host guardrail frame), reviewer doc-gate (REQUEST_CHANGES),
CLAUDE.md passport, AGENTS.md, CONTRIBUTING.md, docs/ skeleton with
mandatory operations/INFRA.md, .env.example; {{NAME}} placeholders +
stdlib render, dictionary onboarding/placeholders.json (bijection
held by tests). Canon is NOT forked: docs/_templates + docs/_standards
are live-copied from the checkout at materialization time (BR-2/D3).
* scripts/onboard_project.py — plan (default, GET-only, zero mutations)
/ apply (idempotent ensure, no delete ops at all) / verify (registry
round-trip via the actual projects._parse_projects_json, all 22 state
names incl. fail-closed Confirm Deploy/STOP, labels, webhook, kit
completeness, unresolved-placeholder scan). Closed read-only src
import list (ADR D4); state groups fixed per ADR D5 (STOP→cancelled,
terminal groups only Done/Cancelled/STOP); Gitea webhook reuses the
single global ORCH_GITEA_WEBHOOK_SECRET (TR-6); initial push ONLY
into a freshly created empty repo (INV-4 untouched); never restarts
prod / never edits .env / deletes nothing (NFR-2); secrets masked
(NFR-3); Plane CE API gaps degrade to manual-step (fail-safe).
* docs/operations/ONBOARDING.md runbook + SETUP_WEBHOOKS.md generalized
per-repo; CLAUDE.md / docs/architecture/README.md / CHANGELOG.md
updated in the same PR (golden source).
* Anti-drift tests: test_onboarding_kit.py / test_onboarding_script.py
(mocked, no network) / test_onboarding_invariants.py (snapshots of
STAGE_TRANSITIONS/QG_CHECKS, closed CLI import list, reference
.openclaw/agents/ prompts untouched). Full regression: 1713 passed.
Refs: ORCH-009
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 16:08:43 +03:00
13e9618bd2
developer(ET): auto-commit from developer run_id=587
2026-06-10 16:08:43 +03:00
d141280390
architect(ET): auto-commit from architect run_id=586
2026-06-10 16:08:43 +03:00
ed04f71fd1
architect(ET): auto-commit from architect run_id=585
2026-06-10 16:08:43 +03:00
11551572e9
analyst(ET): auto-commit from analyst run_id=584
2026-06-10 16:08:43 +03:00
1289d728a8
docs: init ORCH-009 business request
2026-06-10 16:08:43 +03:00
2c801d8759
docs(ORCH-009): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
2026-06-10 16:08:02 +03:00
af949afc58
Merge pull request 'feat(lessons): машинный журнал уроков — аддитивная таблица + observer-leaf (ORCH-098)' ( #118 ) from feature/ORCH-098-fnd into main
CI / test (push) Has been cancelled
2026-06-10 11:02:23 +03:00
deploy-finalizer
4203d93978
deploy(ORCH-036): finalize SUCCESS for ORCH-098
CI / test (push) Successful in 55s
2026-06-10 11:02:22 +03:00