Files
orchestrator/docs/work-items/ORCH-074/13-test-report.md
claude-bot ea094f5922
All checks were successful
CI / test (push) Successful in 29s
tester(ET): auto-commit from tester run_id=397
2026-06-08 22:00:54 +03:00

4.3 KiB
Raw Permalink Blame History

type, work_item_id, result
type work_item_id result
test-report ORCH-074 PASS

Test Report — ORCH-074

Убрать мёртвый frontmatter model: из 6 промптов + валидация имени модели (never-break). Скоп: G1 + G2 + опц. G4 (выключен). G3 routing снят. Review-вердикт: APPROVED.

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3
  • Ветка: feature/ORCH-074-orch-52a-frontmatter-routing-e (worktree)
  • prod health (8500): {"status":"ok","service":"orchestrator"}
  • Дата: 2026-06-08

Результаты по тест-плану (04-test-plan.yaml)

TC ID Описание Тест Результат
TC-01 Ни один .openclaw/agents/*.md не содержит ^model: (G1, AC-1) test_no_model_line_in_frontmatter[×6] PASS
TC-02 frontmatter валидный YAML, ключи name/description сохранены test_frontmatter_still_valid_yaml_with_keys[×6] PASS
TC-03 Мусорный agent_model_<agent> → откат на default, warning, мусор не в --model test_garbage_per_agent_env_falls_back_to_default PASS
TC-04 Мусорный project-override → откат на default test_garbage_project_override_falls_back_to_default PASS
TC-05 Невалидны override И default → "" (CLI-дефолт), без исключения test_all_levels_invalid_returns_empty PASS
TC-06 Валидное claude-opus-4-8 проходит без изменения (регрессия ORCH-041) test_valid_canonical_unchanged PASS
TC-07 Все 6 агентов резолвятся в claude-opus-4-8 (routing выкл) test_all_six_agents_resolve_to_opus_4_8 PASS
TC-08 Валидный enduro per-project override не сломан валидацией test_valid_per_project_override_unchanged PASS
TC-09 G4 выключен: agent_fallback_model == "" (дефолт) test_fallback_model_disabled_by_default PASS
TC-10 Полный pytest зелёный; never-break graceful-деградация tests/ (1012 passed) PASS
TC-11 G4 never-break (мусорный fallback не в --fallback-model) N/A (G4 выключен, синхр. с ADR/AC-5)

Доп. предикат-юниты: test_is_valid_model_accepts_canonical, test_is_valid_model_rejects_garbage — PASS.

Проверка критериев приёмки

AC Статус Подтверждение
AC-1 frontmatter model: убран PASS grep -L "^model:" .openclaw/agents/*.md → все 6 файлов; grep -rn "^model:" → пусто
AC-2 валидация never-break PASS TC-03..05
AC-3 все 6 → claude-opus-4-8 PASS TC-07
AC-4 routing G3 N/A снят решением (ADR)
AC-5 fallback G4 PASS G4 выключен, agent_fallback_model="", ADR фиксирует отказ (TC-09)
AC-6 синхронизация доков PASS проверено reviewer (README/CLAUDE.md/.env.example)
AC-7 pytest зелёный PASS 1012 passed
AC-8 enduro override PASS TC-08
AC-9 ADR PASS 06-adr/ADR-001 присутствует

Smoke test API (prod, read-only)

GET /health → HTTP 200  {"status":"ok","service":"orchestrator"}
GET /status → HTTP 200
GET /queue  → HTTP 200

Вывод pytest

$ python -m pytest tests/ -q
1012 passed, 1 warning in 22.07s

$ python -m pytest tests/test_agent_frontmatter_no_model.py tests/test_resolve_agent_model.py -v
32 passed, 1 warning in 0.37s

(1 warning — PydanticDeprecatedSince20 в src/config.py:5, существующий, вне скоупа задачи.)

AC-1 grep-проверка

$ grep -L "^model:" .openclaw/agents/*.md
.openclaw/agents/analyst.md
.openclaw/agents/architect.md
.openclaw/agents/deployer.md
.openclaw/agents/developer.md
.openclaw/agents/reviewer.md
.openclaw/agents/tester.md
$ grep -rn "^model:" .openclaw/agents/*.md   # пусто (exit 1)

Итог

PASS — все применимые тест-кейсы (TC-01..10) зелёные, TC-11 корректно N/A (G4 выключен), все AC выполнены (AC-4 — N/A по скоупу), smoke API OK. Задача готова к стадии deploy-staging.