--- result: PASS work_item: ORCH-092 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-092 --- # Test Report — ORCH-092 — Промпт-аудит 6 агентов ## Окружение - Python: 3.12.13 - pytest: 8.3.3 - Worktree: `/repos/_wt/orchestrator/feature_ORCH-092-6-escalation` (ветка `feature/ORCH-092-6-escalation`) - Дата: 2026-06-09 - Review-вердикт (`12-review.md`): **APPROVED** — предусловие стадии выполнено. ## Команды ``` cd /repos/_wt/orchestrator/feature_ORCH-092-6-escalation && python -m pytest tests/ -q python -m pytest tests/test_agent_prompts_canon.py tests/test_agent_frontmatter_no_model.py -q curl -s http://localhost:8500/health → {"status":"ok","service":"orchestrator"} curl -s http://localhost:8500/status → 200 OK (active_tasks[0] = ORCH-092/testing) curl -s http://localhost:8500/queue → serial_gate present: True · auto_labels present: True git diff --stat main -- src/ → пусто (src/ не тронут, docs/prompts-only) ``` ## Результаты по тест-плану (`04-test-plan.yaml` ↔ `03-acceptance-criteria.md`) | TC ID | AC | Описание | Покрывающий тест | Результат | |-------|----|----------|------------------|-----------| | TC-01 | AC-1 | `created_at: ` плейсхолдер во всех 6 промптах + инструкция «не копируй буквально» | `test_orch092_created_at_is_placeholder_not_literal` | PASS | | TC-02 | AC-2 | `model_used: ` плейсхолдер; нет литерала `claude-opus-4-8` в копируемом блоке | `test_orch092_model_used_is_placeholder_not_literal` | PASS | | TC-03 | AC-3 | каждое имя `check_*` в 6 промптах присутствует ключом в `QG_CHECKS` (импорт `src.qg.checks`) | `test_orch092_gate_names_match_qg_registry` | PASS | | TC-04 | AC-4 | developer: «разбивай на меньшие PR» удалено → эскалация; маркер «свой PR» сохранён | `test_orch092_developer_pr_oversize_is_escalation_not_split` | PASS | | TC-05 | AC-5 | `` у developer/reviewer/tester после ``; маршруты ролеспецифичны | `test_orch092_escalation_section_present_after_success` + `..._routes_are_role_specific` | PASS | | TC-06 | AC-7 | tester: worktree-путь, smoke `serial_gate` в `/queue`, покрытие ТЗ; маркеры pytest//health//status//queue целы | `test_orch092_tester_enriched` | PASS | | TC-07 | AC-6 | deployer: видная рамка запрета рестарта прод-8500; маркеры `docker exec orchestrator-staging`/`pr_already_merged`/`8500`/`INFRA-WAIVED` целы | `test_orch092_deployer_prominent_ban_frame` | PASS | | TC-08 | AC-8 | reviewer: «того же экземпляра Developer» удалена; живые маркеры (`REQUEST_CHANGES`/«НЕ обновлена»/`TRACEABILITY.md`/`Известные ограничения`/`ORCH-079`) целы | `test_orch092_reviewer_dead_line_removed` | PASS | | TC-09 | AC-9 | verdict-ключи байт-в-байт + 5 XML-секций в порядке + 6 полей 52c во всех 6 промптах | `test_machine_verdict_keys_preserved_exact_case` + `test_five_xml_sections_present` + `test_six_schema_field_names_present` | PASS | | TC-10 | AC-9 | верхний frontmatter определения агента валиден, без ключа `model:` | `tests/test_agent_frontmatter_no_model.py` | PASS | | TC-11 | AC-9/AC-10 | полный регресс `pytest tests/ -q` зелёный; `git diff` не содержит правок `src/` | `tests/` (1278 passed) + `git diff --stat main -- src/` пуст | PASS | **Итог покрытия:** все 11 TC выполнены и сопоставлены с критериями приёмки AC-1…AC-10. Несопоставленных TC нет. ## Smoke API (read-only) - `GET /health` → `{"status":"ok","service":"orchestrator"}` — OK. - `GET /status` → 200; активная задача `ORCH-092` на стадии `testing`. - `GET /queue` → 200; блок **`serial_gate` присутствует** (ORCH-088, анти-регресс смока пройден), блок `auto_labels` присутствует (ORCH-089). ## Вывод pytest ``` tests/test_agent_prompts_canon.py tests/test_agent_frontmatter_no_model.py — 75 passed in 0.45s tests/ (полный регресс): ........................................................................ [ 95%] ...................................................... [100%] 1278 passed, 1 warning in 35.24s ``` > Единственный warning — `PydanticDeprecatedSince20` (class-based config в `src/config.py`), предсуществующий, не относится к ORCH-092, на результат не влияет. ## Итог **PASS** — полный регресс (1278 passed) и целевые анти-регресс-тесты (75 passed) зелёные; smoke `/health`/`/status`/`/queue` (включая блок `serial_gate`) — OK; `src/` не тронут (docs/prompts-only). Каждый TC из `04-test-plan.yaml` выполнен и сопоставлен с `03-acceptance-criteria.md`. Задача готова к переходу на `deploy-staging`.