Files
orchestrator/docs/work-items/ORCH-009/13-test-report.md
claude-bot e5c3774bc5
All checks were successful
CI / test (push) Successful in 58s
CI / test (pull_request) Successful in 57s
tester(ET): auto-commit from tester run_id=600
2026-06-10 19:40:51 +03:00

10 KiB
Raw Permalink Blame History

result, work_item, stage, author_agent, status, created_at, model_used, type, work_item_id
result work_item stage author_agent status created_at model_used type work_item_id
PASS ORCH-009 testing tester pass 2026-06-10 claude-opus-4-8 test-report ORCH-009

Test Report — ORCH-009 — Turnkey-онбординг проектов (kit + CLI + runbook)

Машинный вердикт читается ТОЛЬКО из frontmatter (result:). Перепрогон стадии testing на opus после сброса session-limit (ре-ран по запросу). Review-вердикт цикла 2 — APPROVED (12-review.md, P0/P1 нет). Дельта цикла (герметизация ORCH-41-тестов e903818) перепроверена полным регрессом под фактическим окружением worktree.

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (pytest-cov 5.0.0, asyncio 0.23.8)
  • Дата: 2026-06-10
  • Worktree: feature/ORCH-009-turnkey-plane (/repos/_wt/orchestrator/feature_ORCH-009-turnkey-plane, HEAD b97ffae)
  • Прод-контейнер orchestrator (8500) — НЕ трогался (smoke read-only).

Smoke API (read-only)

  • GET /health{"status":"ok","service":"orchestrator"}
  • GET /status → отвечает; задача ORCH-009 (task 87) на стадии testing
  • GET /queue → блок serial_gate присутствует (ORCH-088) ; блок auto_labels присутствует (полный набор ключей: auto_labels, bug_fast_track, build_cache_prune, counts, coverage, disk_monitor, fs_ownership, lessons, max_concurrency, merge_verify, poll_interval, post_deploy, reaper, recent, reconcile, resilience, serial_gate, stop, task_deps).

Результаты

Полный регресс

pytest tests/ -q1713 passed, 0 failed, 1 warning за 65.40s (exit 0). Прод-контейнер не трогался. Средовая мина merge-gate цикла 1 обезврежена фиксом e903818регресс зелёный.

Профильные сюиты (онбординг)

pytest tests/test_onboarding_kit.py tests/test_onboarding_script.py tests/test_onboarding_invariants.py -v83 passed, 0 failed за 0.55s (exit 0). Сетевых вызовов нет (Plane/Gitea — фейк-клиенты, NFR-5).

Сопоставление с тест-планом (04-test-plan.yaml)

TC ID Описание Тест-функция Рез.
TC-01 Kit содержит все элементы FR-1 (6 промптов + доки) test_tc01_kit_contains_all_required_elements, test_tc01_kit_readme_and_placeholder_dictionary_exist PASS
TC-02 Материализация добавляет live-копии _templates/_standards; форк канона отсутствует test_tc02_materialise_live_copies_canon, test_kit_does_not_fork_the_canon PASS
TC-03 5 XML-секций в нормативном порядке (6 ролей) test_tc03_five_xml_sections_in_normative_order[*] PASS
TC-04 <escalation> у dev/rev/tester; запреты «» test_tc04_escalation_section_after_success_criteria[*], test_tc04_bans_use_cross_check_format[*] PASS
TC-05 Директивы доки (читай паспорт/AGENTS/ADR; пиши в work-items; CHANGELOG) test_tc05_prompt_directs_agent_to_docs[*], test_tc05_changelog_duty_present[*], test_tc05_architect_carries_adr_rules PASS
TC-06 6-польная схема 52c; verdict-ключи байт-в-байт; даты/модели — плейсхолдеры test_tc06_six_schema_fields_named[*], test_tc06_schema_pins_role_author_and_stage[*], test_tc06_machine_verdict_keys_byte_exact, test_tc06_dates_and_models_are_placeholders[*] PASS
TC-07 reviewer-gate: дока не обновлена → REQUEST_CHANGES test_tc07_reviewer_gate_docs_not_updated_means_request_changes PASS
TC-08 Языковая политика (5 ru + deployer en) test_tc08_ru_canon_for_five_roles[*], test_tc08_deployer_is_english PASS
TC-09 Рендер подставляет все плейсхолдеры (нет неразрешённых) test_tc09_render_resolves_all_placeholders, test_render_is_a_pure_replace PASS
TC-10 Нет утечек орк-специфики (ORCH-/8500/8501/self-hosting) test_tc10_no_orchestrator_specific_leaks PASS
TC-11 Ссылочная целостность отрендеренных промптов/AGENTS test_tc11_referenced_paths_exist_in_materialised_tree PASS
TC-12 Registry round-trip через фактический _parse_projects_json; существующие записи целы test_tc12_registry_round_trip_through_actual_parser, test_tc12_merge_is_idempotent_no_duplicates PASS
TC-13 План Plane: все статусы _PLANE_NAME_TO_KEY (вкл. Confirm Deploy/STOP) + лейблы test_tc13_plan_covers_all_statuses_and_labels, test_state_groups_match_plane_name_to_key PASS
TC-14 Недоступный Plane-шаг → manual-step (не падение/не молча) test_tc14_plane_refusal_becomes_manual_step PASS
TC-15 План Gitea: репо + webhook (push/pr/status + HMAC) + initial push test_tc15_plan_contains_gitea_repo_webhook_and_push PASS
TC-16 dry-run (plan) — ноль мутаций test_tc16_plan_is_a_pure_dry_run, test_secret_never_leaks_into_report PASS
TC-17 Повторный apply: skipped(exists), без дублей/удалений; отчёт created/skipped/manual test_tc17_second_apply_skips_everything_existing PASS
TC-18 Нет операций рестарта/правки прод-.env/push в существующие репо (NFR-2) test_tc18_fresh_apply_runs_git_only_inside_workdir, test_tc18_source_has_no_container_or_env_mutation_ops PASS
TC-19 INFRA.md шаблон: обязательные секции; INFRA орка не тронут test_tc19_infra_template_mandatory_sections, test_tc19_orchestrator_own_infra_untouched_sections PASS
TC-20 Runbook: слои предусловия→Plane→Gitea→kit→регистрация→верификация→откат test_tc20_runbook_exists_and_layer_order, test_tc20_runbook_manual_steps_and_selfhosting_warning, test_tc20_runbook_verification_and_smoke_journal PASS
TC-21 Снапшот STAGE_TRANSITIONS/QG_CHECKS; src/** не ссылается на онбординг; закрытый список импортов test_tc21_stage_transitions_snapshot, test_tc21_qg_checks_registry_snapshot, test_tc21_src_never_references_onboarding, test_tc21_cli_src_imports_stay_in_closed_list, test_tc21_kit_prompts_name_only_real_gates PASS
TC-22 Полный регресс tests/ зелёный весь прогон pytest tests/ (1713 passed) PASS

Итого тест-плана: 22/22 TC выполнены и PASS.

Сопоставление с критериями приёмки (03-acceptance-criteria.md)

AC Покрытие Результат
AC-1 Kit полон TC-01 PASS
AC-2 Канон 52d/92 промптов TC-03/04/05/06 PASS
AC-3 Reviewer-gate доки TC-07 PASS
AC-4 Языковая политика TC-08 PASS
AC-5 Материализация / нет утечек TC-02/09/10/11 PASS
AC-6 Registry round-trip TC-12 PASS
AC-7 План Plane (статусы/лейблы) TC-13/14 PASS
AC-8 План Gitea + dry-run без мутаций TC-15/16 PASS
AC-9 Идемпотентность/безопасность apply TC-17/18 PASS
AC-10 INFRA.md шаблон TC-19 PASS
AC-11 Runbook полон TC-20 PASS
AC-12 src/** не тронут (снапшот + регресс) TC-21/22 PASS
AC-13 Операторский smoke на песочнице вне pytest (см. ниже) DEFERRED (операторский гейт до Confirm Deploy)

AC-13 — операторский smoke (не блокирует ребро testing → deploy-staging)

AC-13 по построению (ADR D8, scope-нота 04-test-plan.yaml) — документированный операторский прогон на песочнице staging 8501 с реальными Plane/Gitea-вызовами. Это мутирующая операторская процедура → вне read-only smoke и автоматизированного скоупа тестера. «Журнал smoke-прогонов» в docs/operations/ONBOARDING.md сейчас — плейсхолдер (прогон не выполнен).

  • Не блокирует данную стадию: AC-13 обязателен до Confirm Deploy (человеческий гейт прод-деплоя, ORCH-059), который наступает ПОСЛЕ deploy-staging. Ребро testing → deploy-staging он не гейтит (это операторская страховка, а не Quality Gate; QG_CHECKS не содержит проверки AC-13).
  • Handoff оператору: выполнить runbook §5.2 (staging 8501, sandbox-префикс) и запротоколировать результат в «Журнале smoke-прогонов» ONBOARDING.md перед нажатием Confirm Deploy.

Вывод pytest (итоги)

# полный регресс
1713 passed, 1 warning in 65.40s (exit 0)

# профильные сюиты онбординга
83 passed, 1 warning in 0.55s (exit 0)

(Единственный warning — PydanticDeprecatedSince20 в src/config.py:8, существующий, не связан с задачей.)

Итог

PASS. Полный регресс зелёный (1713 passed), все 22 TC тест-плана выполнены и PASS, все машинно-проверяемые AC (112) закрыты, read-only smoke API в норме (serial_gate/auto_labels в /queue присутствуют). AC-13 — операторский smoke, отложен к гейту Confirm Deploy (не блокирует переход на deploy-staging). Задача готова к стадии deploy-staging.