architect(ET): auto-commit from architect run_id=472

This commit is contained in:
2026-06-09 16:16:42 +03:00
committed by orchestrator-deployer
parent 7d1346d90f
commit 07a2d6ad1e
4 changed files with 322 additions and 0 deletions

View File

@@ -103,6 +103,31 @@ enforcement не включается).
- ADR: [adr-0022](adr/adr-0022-traceability-marker-standard.md); детально —
`docs/work-items/ORCH-078/06-adr/ADR-001-traceability-marker-standard.md`.
#### Слой обзорных доков: reviewer-ось README-ограничений + закрытие эпика 52 (ORCH-079, 52f — слой 5/финал)
**Слой 5 (финал).** 52b52e привели в порядок структуру доков, машинный frontmatter, канон промптов
и трассировку, но **корневой `README.md`** — обзорная витрина проекта — остался незакрытым и **выдавал
решённое за открытое**: секция «Известные ограничения» имела битую нумерацию (`1,2,3,4,3,4`) и пункты,
опровергнутые кодом (worktree-гонки → `ensure_worktree`+ORCH-026/088; in-process daemon → очередь
ORCH-1; «Gitea CI не настроен» → `check_ci_green`; «no retry» → backoff/breaker `queue_worker.py`;
устаревшие issue-ID → зрелый `plane_sync` ORCH-010/066/068; Playwright-timeout → watchdog ORCH-7).
ORCH-079 синхронизирует витрину с кодом и закрывает **процессный пробел**: reviewer не контролировал
обновление обзорных доков. Это **docs + prompt-only** изменение: `src/**`, `STAGE_TRANSITIONS`,
`QG_CHECKS`, схема БД — **не трогаются**.
- **Reviewer-ось «обзорные доки»:** `.openclaw/agents/reviewer.md` ось 4 «Документация» + `<constraints>`
несут врезку «❌→✅»: *PR закрыл пункт README «Известные ограничения», README не обновлён → finding*
(≥P1; при закрытии правкой `src/` без обновления README — совпадает с существующим P0). Канон 52d
(5 секций) и `verdict: APPROVED|REQUEST_CHANGES` — байт-в-байт; правило нормативно-описательное (не
машинный гейт), как ось трассировки ORCH-078.
- **Витрина по коду (NFR-3):** решённые пункты сняты/перенесены в «Закрыто (история)» с ORCH-ссылками;
в «открытых» — только реально открытые, верифицированные кодом/задачей; запрет изобретать
ограничения (анти-scope-creep).
- **Эпик ORCH-52 закрыт:** 52b (adr-0019) → 52c (adr-0020) → 52d (adr-0021) → 52e (adr-0022) →
**52f (adr-0023)**.
- **Анти-регресс:** `tests/test_agent_prompts_canon.py` (assert наличия оси обзорных доков); канон 52d
и `test_agent_frontmatter_no_model.py` зелёные.
- ADR: [adr-0023](adr/adr-0023-overview-docs-reviewer-axis-and-epic52-close.md); детально —
`docs/work-items/ORCH-079/06-adr/ADR-001-readme-sync-and-reviewer-overview-docs-axis.md`.
### Модель и эффорт по ролям (ORCH-41, валидация ORCH-74)
Модель и `--effort` каждого агента берутся из config (`src/config.py`), резолвятся `launcher.resolve_agent_model` / `resolve_agent_effort` по приоритету **project-override (`projects_json` `agent_models`/`agent_efforts`) > `ORCH_AGENT_MODEL_<AGENT>`/`ORCH_AGENT_EFFORT_<AGENT>` > `*_default` > CLI-дефолт (без флага)**. **Эффорт (ORCH-081):** ниже `*_default` добавлен непустой **per-role floor** — class-default поля `agent_effort_<role>` из `config.py` (его пустой env перебить не может). Floor — строго последний уровень (ниже default) и срабатывает ТОЛЬКО когда все уровни пусты, поэтому пустые прод-`ORCH_AGENT_EFFORT_*=` (которые pydantic трактует как явное `''` и обнуляют дефолт) больше не приводят к запуску без `--effort`: каждая роль получает свой канонический пол (developer=`xhigh`, tester/deployer=`medium`, прочие=`high`). Непустой явный конфиг по-прежнему побеждает floor; опечатка вне `VALID_EFFORTS` дропается валидацией ДО floor (never-break, не маскируется). См. `docs/work-items/ORCH-081/06-adr/ADR-001-effort-resolution-floor.md`. frontmatter `model:` в `.openclaw/agents/*.md` **удалён** (ORCH-74 G1) — он был мёртвой/лживой декларацией (launcher его не читает); config — единственный источник правды о модели. Model-routing (G3) НЕ включён — все 6 агентов на `claude-opus-4-8`.