104 lines
4.8 KiB
YAML
104 lines
4.8 KiB
YAML
work_item: ORCH-074
|
||
# Скоп (Слава 08.06): G1 + G2 + опц. G4. G3 routing снят (no routing tests).
|
||
# Эффорт не трогаем (no new effort tests beyond never-break regression).
|
||
|
||
tests:
|
||
# ---- G1: frontmatter `model:` убран из всех 6 промптов (AC-1) ----
|
||
- id: TC-01
|
||
type: integration
|
||
description: >
|
||
Ни один .openclaw/agents/*.md не содержит строки `^model:` во frontmatter.
|
||
Тест итерирует по 6 файлам, ассертит отсутствие model:-строки.
|
||
module: tests/test_agent_frontmatter_no_model.py
|
||
expected: PASS
|
||
|
||
- id: TC-02
|
||
type: integration
|
||
description: >
|
||
frontmatter каждого из 6 промптов остаётся валидным YAML и сохраняет ключи
|
||
name/description (парсинг между первыми двумя '---' без ошибок).
|
||
module: tests/test_agent_frontmatter_no_model.py
|
||
expected: PASS
|
||
|
||
# ---- G2: валидация имени модели, never-break (AC-2, AC-7) ----
|
||
- id: TC-03
|
||
type: unit
|
||
description: >
|
||
Мусорное имя в agent_model_<agent> (напр. 'gpt-4' или 'claud-opus-typo')
|
||
-> resolve_agent_model откатывается на default (claude-opus-4-8) и НЕ
|
||
возвращает мусор. Проверяется также warning в логах (caplog).
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
- id: TC-04
|
||
type: unit
|
||
description: >
|
||
Мусорное имя в project-override (agent_models) -> resolve_agent_model
|
||
откатывается на следующий валидный уровень (default), мусор не передаётся.
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
- id: TC-05
|
||
type: unit
|
||
description: >
|
||
Невалиден И override, И default -> resolve_agent_model возвращает ""
|
||
(без флага --model, CLI-дефолт). never-break: исключение НЕ бросается.
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
- id: TC-06
|
||
type: unit
|
||
description: >
|
||
Валидное каноничное имя (claude-opus-4-8) проходит валидацию без изменения:
|
||
resolve_agent_model('developer') == 'claude-opus-4-8'. Регрессия ORCH-041.
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
# ---- AC-3: все 6 агентов резолвятся в осмысленную модель ----
|
||
- id: TC-07
|
||
type: unit
|
||
description: >
|
||
Для всех 6 агентов (analyst/architect/developer/reviewer/tester/deployer)
|
||
resolve_agent_model(agent) == 'claude-opus-4-8' (routing выключен).
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
# ---- AC-8: enduro per-project override не сломан валидацией ----
|
||
- id: TC-08
|
||
type: unit
|
||
description: >
|
||
Валидный per-project override (agent_models у не-self проекта) резолвится и
|
||
проходит валидацию без изменения поведения (регрессия ORCH-041).
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
# ---- G4: fallback_model (опц.) — условный тест ----
|
||
- id: TC-09
|
||
type: unit
|
||
description: >
|
||
ЕСЛИ G4 включён архитектором: agent_fallback_model задан валидным именем и
|
||
проходит валидацию G2. ЕСЛИ выключен: agent_fallback_model == "" (тест
|
||
подтверждает дефолт). Финальная форма теста зависит от решения в ADR.
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
# ---- G4 never-break: fallback читается напрямую (launcher.py:374), мимо
|
||
# resolve_agent_model — валидация G2 должна покрыть и его (см. TRZ §4) ----
|
||
- id: TC-11
|
||
type: unit
|
||
description: >
|
||
ЕСЛИ G4 включён: мусорное agent_fallback_model НЕ попадает в --fallback-model
|
||
(валидируется тем же предикатом G2, дропается с warning, never-break).
|
||
ЕСЛИ G4 выключен: кейс помечается N/A в test-report (синхронно с ADR).
|
||
module: tests/test_resolve_agent_model.py
|
||
expected: PASS
|
||
|
||
# ---- AC-7: общий зелёный прогон / never-break regression ----
|
||
- id: TC-10
|
||
type: integration
|
||
description: >
|
||
Полный pytest зелёный; невалидная модель/эффорт не роняет запуск агента
|
||
(graceful-деградация). Регрессия resolve_agent_effort (VALID_EFFORTS) цела.
|
||
module: tests/
|
||
expected: PASS
|