tester(ET): auto-commit from tester run_id=730
This commit is contained in:
80
docs/work-items/ORCH-118/13-test-report.md
Normal file
80
docs/work-items/ORCH-118/13-test-report.md
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
result: PASS
|
||||
work_item: ORCH-118
|
||||
stage: testing
|
||||
author_agent: tester
|
||||
status: pass
|
||||
created_at: 2026-06-16
|
||||
model_used: claude-opus-4-8
|
||||
type: test-report
|
||||
work_item_id: ORCH-118
|
||||
---
|
||||
|
||||
# Test Report — ORCH-118
|
||||
|
||||
> Машинный вердикт читается ТОЛЬКО из `result:` во frontmatter. `PASS` → задача переходит на `deploy-staging`.
|
||||
|
||||
## Окружение
|
||||
- Python: 3.12.13
|
||||
- pytest: 8.3.3 (plugins: cov-5.0.0, anyio-4.13.0, asyncio-0.23.8)
|
||||
- Worktree: `/repos/_wt/orchestrator/feature_ORCH-118-orch-replace-avoidable-llm-con` (ветка `feature/ORCH-118-orch-replace-avoidable-llm-con`)
|
||||
- Дата: 2026-06-16
|
||||
|
||||
## Предусловия
|
||||
- Review-вердикт (`12-review.md`): **APPROVED** (verdict читается из frontmatter). ✔
|
||||
- Скоуп ORCH-118 — inventory-first, docs + tests only: `git diff origin/main...HEAD -- src/` пусто (рантайм не тронут).
|
||||
|
||||
## Smoke API (read-only)
|
||||
- `GET /health` → `{"status":"ok","service":"orchestrator"}` ✔
|
||||
- `GET /status` → активная задача ORCH-118 на стадии `testing` ✔
|
||||
- `GET /queue` → присутствует блок `serial_gate` (ORCH-088: `orchestrator.active_task = ORCH-118/testing`, не frozen) ✔; присутствует блок `auto_labels` ✔; breaker `closed`, preflight OK. Смок-регресса нет.
|
||||
|
||||
## Результаты (покрытие 04-test-plan.yaml → 03-acceptance-criteria.md)
|
||||
|
||||
| TC ID | Описание | AC | Результат |
|
||||
|-------|----------|----|-----------|
|
||||
| TC-01 | Единственный ТРАНСПОРТ LLM-консультации = `launcher._spawn` (CLAUDE_BIN + `--system-prompt` + Popen) | AC-1/AC-6a | PASS |
|
||||
| TC-02 | Детерминированные leaf-модули не консультируют LLM (дискриминатор «консультирует LLM», не «спавнит subprocess») | AC-3/AC-6b | PASS |
|
||||
| TC-03 | Анти-дрейф промптов: карта ↔ `.openclaw/agents/` (6 файлов, двусторонняя сверка) | AC-1/AC-6c | PASS |
|
||||
| TC-04 | Тотальность классификации (4 класса) + согласованность с осью C/P | AC-2/AC-6d | PASS |
|
||||
| TC-05 | keep-LLM требует названного суждения; C-keep (reviewer) фиксирует не-деривируемость | AC-2 | PASS |
|
||||
| TC-06 | Capability ≠ consultation: deploy-finalizer/post-deploy-monitor перехвачены до `_spawn` | AC-3/AC-6e | PASS |
|
||||
| TC-07 | Полнота roadmap + ровно один `first_slice=yes` (deployer) | AC-4 | PASS |
|
||||
| TC-08 | Политика LLM нормативна + определение «avoidable LLM control path» | AC-5/AC-10 | PASS |
|
||||
| TC-09 | Скоуп-гард: снимок ролей `STAGE_TRANSITIONS` и имён `QG_CHECKS` не изменился | AC-7 | PASS |
|
||||
| TC-10 | Полный регресс `pytest tests/ -q` зелёный | AC-6/AC-7 | PASS (2081 passed) |
|
||||
| TC-11 | Анти-фабрикация follow-up Plane-ID (кандидаты по роли) | AC-9 | PASS |
|
||||
| TC-12 | Отсутствие иного LLM-транспорта (нет anthropic/openai SDK, прямого HTTP, второго model-subprocess) | AC-1/AC-6f | PASS |
|
||||
| TC-13 | Control-path-ось C/P согласована с фактическим потребителем в `src/qg/checks.py` | AC-10/AC-6g | PASS |
|
||||
| TC-14 | Avoidable-набор зафиксирован = {tester, deployer}; reviewer=C-keep; analyst/architect/developer=P | AC-10/AC-6h | PASS |
|
||||
|
||||
Все 14 TC выполнены и сопоставлены с критериями приёмки. Пропусков нет.
|
||||
|
||||
## Вывод pytest
|
||||
|
||||
Целевые тесты ORCH-118:
|
||||
```
|
||||
tests/test_llm_call_site_inventory.py::test_tc01_single_llm_transport PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc12_no_alternative_llm_transport PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc02_deterministic_modules_no_llm_consultation PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc03_prompt_files_match_map PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc04_classification_total_and_axis_consistent PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc05_keep_llm_named_judgment PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc06_capability_not_consultation PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc09_runtime_contract_snapshot PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc13_control_path_axis_correct PASSED
|
||||
tests/test_llm_call_site_inventory.py::test_tc14_avoidable_set_fixed PASSED
|
||||
tests/test_llm_determinization_docs.py::test_tc07_roadmap_completeness_and_first_slice PASSED
|
||||
tests/test_llm_determinization_docs.py::test_tc08_policy_normative_and_defines_avoidable PASSED
|
||||
tests/test_llm_determinization_docs.py::test_tc11_no_fabricated_followup_ids PASSED
|
||||
======================== 13 passed, 1 warning in 0.41s =========================
|
||||
```
|
||||
|
||||
Полный регресс (TC-10):
|
||||
```
|
||||
2081 passed, 1 warning in 89.94s (0:01:29)
|
||||
```
|
||||
(Единственный warning — PydanticDeprecatedSince20 в `src/config.py:8`, предсуществующий, не связан с ORCH-118.)
|
||||
|
||||
## Итог
|
||||
**PASS** — все 14 тест-кейсов зелёные, полный регресс `tests/` зелёный (2081 passed), smoke API (`/health`, `/status`, `/queue` с блоками `serial_gate` + `auto_labels`) — без регресса. Задача готова к переходу на `deploy-staging`.
|
||||
Reference in New Issue
Block a user