# Domain Case Loop Repo Adapter Документ фиксирует, как шаблонный пакет мультиагентной оркестрации привязывается к реальному репозиторию `NDC_1C`. ## Что уже есть в проекте - Ассистентный runtime с `address_query` и `deep` ветками. - Technical export в UI: - `llm_normalizer/frontend/src/utils/conversationExport.ts` - Async single-case прогон: - `POST /api/eval/run-async/start` - `GET /api/eval/run-async/:job_id` - Session logs: - `llm_normalizer/data/assistant_sessions/*.json` - Autoruns/annotations/post-analysis API: - `llm_normalizer/backend/src/routes/autoRuns.ts` ## Что добавлено для project-scoped Codex automation - root `.codex/`: - `.codex/config.toml` - `.codex/agents/orchestrator.toml` - `.codex/agents/domain_coder.toml` - `.codex/agents/domain_analyst.toml` - `.codex/skills/domain-case-loop/...` - helper script: - `scripts/domain_case_loop.py` - artifact root: - `artifacts/domain_runs/` ## Почему это лучший путь для текущего репо Мы не встраиваем новый orchestration runtime в продуктовый backend. Мы поднимаем отдельный Codex-driven outer loop, который использует уже существующие: 1. assistant runtime; 2. technical debug payload; 3. session logs; 4. async eval single-case flow. Это позволяет автоматизировать текущую ручную схему без architecture drift. ## Два режима baseline/rerun capture ### 1. Автоматический run-case Использует живой backend: ```powershell python scripts/domain_case_loop.py run-case ` --domain open_contracts ` --question "какие есть открытые договора на март 2020" ` --analysis-date 2020-03-31 ` --expected-capability contracts_with_open_settlements_as_of_date ` --expected-result-mode confirmed_balance ``` Что делает: 1. создает `artifacts/domain_runs//`; 2. запускает `assistant_stage1` на одном вопросе; 3. ждет completion; 4. забирает session/report artifacts; 5. сохраняет `baseline_output.md`, `baseline_debug.json`, `baseline_turn.json` и связанные JSON. ### 2. Импорт уже скопированного техчата Подходит для текущего исторического режима, где у пользователя уже есть markdown export: ```powershell python scripts/domain_case_loop.py import-export ` --domain open_contracts ` --input "C:\\Users\\DCTOUCH\\Desktop\\акие_есть_открытые_договора_на_март_2020.md" ``` ## Канонический JSON для аналитика Главный вход аналитика теперь: - `baseline_turn.json` - `rerun_turn.json` Они содержат: 1. вопрос; 2. ответ; 3. `technical_debug_payload`; 4. session summary; 5. run/session ids; 6. report excerpt; 7. ссылку на markdown export. ## Правило завершения цикла Кейс считается `accepted`, только если одновременно выполнено: 1. `quality_score >= 80`; 2. нет unresolved `P0`; 3. rerun не маскирует heuristic output под confirmed answer. Во всех остальных случаях итог должен быть: - `partial` - `blocked` - `needs_exact_capability`