--- result: PASS # PASS | FAIL — машинный вердикт, UPPERCASE work_item: ORCH-077 stage: testing author_agent: tester status: pass created_at: 2026-06-09 model_used: claude-opus-4-8 type: test-report work_item_id: ORCH-077 --- # Test Report — ORCH-077 — ORCH-52d: канон Anthropic для 6 системных промптов + эмиссия схемы 52c ## Окружение - Python: 3.12.13 - pytest: 8.3.3 - Дата: 2026-06-09 - Worktree: `/repos/_wt/orchestrator/feature_ORCH-077-orch-52d-6-anthropic` - Ветка: `feature/ORCH-077-orch-52d-6-anthropic` - Review-вердикт (предусловие): `12-review.md` → **APPROVED** (0× P0/P1) ✅ ## Smoke API (read-only, прод 8500) | Endpoint | Результат | |----------|-----------| | `GET /health` | `{"status":"ok","service":"orchestrator"}` → OK | | `GET /status` | `200`, активные задачи отдаются (ORCH-077 в `testing`, ET-013 в `development`) → OK | | `GET /queue` | `200`, counts `queued:0 running:1 done:945`, breaker `closed`, preflight_ok → OK | Прод-контейнер не трогался (никаких рестартов/деструктива — только чтение). ## Результаты (покрытие ТЗ — `04-test-plan.yaml`) | TC ID | Описание | Тест/метод | Результат | |-------|----------|------------|-----------| | TC-01 | 5 XML-секций (``/``/``/``/``) во всех 6 промптах (AC-1) | `test_five_xml_sections_present` ×6 | PASS | | TC-02 | Все 6 имён полей схемы 52c в теле каждого промпта (AC-2) | `test_six_schema_field_names_present` ×6 | PASS | | TC-03 | Корректные роле-специфичные `author_agent`==роль и `stage` (AC-2) | `test_schema_pins_role_specific_author_and_stage` ×6 | PASS | | TC-04 | Ссылка на `docs/_templates/` + эталон ORCH-073/ORCH-088 (AC-3) | `test_references_templates_and_a_reference_work_item` ×6 | PASS | | TC-05 | Анти-регресс machine-verdict ключей (`verdict:`/`result:`/`staging_status:`/`deploy_status:`, регистр сохранён) (AC-4) | `test_machine_verdict_keys_preserved_exact_case` | PASS | | TC-06 | Анти-регресс deployer self-hosting (canonical `docker exec orchestrator-staging`, `pr_already_merged`, «не рестартить 8500», ORCH-061 `INFRA-WAIVED`) (AC-4) | `test_deployer_self_hosting_anti_regress` | PASS | | TC-07 | Анти-регресс ключевых маркеров ролей (analyst 4 deliverable+Write; architect ADR+эскалация; developer TDD+«не мержить свой PR»; reviewer «src изменён, доки нет → REQUEST_CHANGES») (AC-4) | `test_role_anti_regress_markers` ×6 | PASS | | TC-08 | Валидность frontmatter промптов: YAML-mapping, `name`==роль, `description` непуст, нет `model:` (AC-8) | `test_agent_frontmatter_no_model.py` ×12 | PASS | | TC-09 | A/B-проверка старый vs новый промпт «не хуже» (AC-6) | in-vivo (см. ниже) | PASS | | TC-10 | Полный регресс `pytest tests/ -q` зелёный (AC-9) | весь набор | PASS | Структурные тесты промптов: **44 passed** (`test_agent_prompts_canon.py` 32 + `test_agent_frontmatter_no_model.py` 12). ### AC-5 — код/гейты не тронуты (сверка git) Feature-коммит `e155b01` затрагивает ровно: 6 промптов `.openclaw/agents/*.md`, `CHANGELOG.md`, `CLAUDE.md`, `tests/test_agent_prompts_canon.py`, `tests/manual/ab_prompt_compare.md`. `git show e155b01 | grep '^src/'` → **пусто** (ни один `src/**` не изменён). ✅ ## TC-09 — A/B-проверка (in-vivo, по `tests/manual/ab_prompt_compare.md`) Промпт `cat`-ается из worktree ветки в момент запуска агента → стадии `review` и `testing` самой ORCH-077 исполнились **уже под новыми промптами** (естественный A/B без отдельного стенда и без рестарта прод-контейнера 8500). 1. **Стадия сравнения** — `review` и `testing` ORCH-077 (репрезентативные). 2. **Число циклов `REQUEST_CHANGES`** на задаче — **0** (review сразу `APPROVED`, 0× P0/P1). Не выросло относительно типичного для docs-задачи (ожидаемо 0–1). 3. **Полнота артефакта** — `12-review.md` несёт все секции + 6-польную frontmatter-схему 52c; `13-test-report.md` (этот файл) — таблицу TC, вывод pytest, frontmatter-схему 52c. 4. **Парсимость машинного вердикта** — `verdict: APPROVED` прочитан гейтом review корректно; `result: PASS` ниже читается `check_tests_passed` (имя/регистр ключа не изменены). **Вывод A/B:** новый промпт **не хуже** старого — содержание не потеряно, вердикты парсятся, циклов `REQUEST_CHANGES` не прибавилось → **PASS**. ## Вывод pytest ``` $ python -m pytest tests/ -q --tb=short ........................................................................ [ 5%] ... (срез ради краткости) ... .................... [100%] 1244 passed, 1 warning in 34.23s ``` Единственный warning — `PydanticDeprecatedSince20` в `src/config.py:5` (предсуществующий, не относится к ORCH-077; код не менялся). ``` $ python -m pytest tests/test_agent_prompts_canon.py tests/test_agent_frontmatter_no_model.py -v 44 passed, 1 warning in 0.42s ``` ## Итог **PASS** — все 10 TC зелёные, полный регресс `1244 passed`, smoke API OK, `src/**` не тронут, machine-verdict ключи сохранены, A/B «не хуже» подтверждён. Задача переходит на `deploy-staging`.