# Repo runtime map ## Existing runtime pieces - Assistant backend: `llm_normalizer/backend` - Technical export formatter: `llm_normalizer/frontend/src/utils/conversationExport.ts` - Async single-case runner: `POST /api/eval/run-async/start` - Async polling: `GET /api/eval/run-async/:job_id` - Session store path: `llm_normalizer/data/assistant_sessions/.json` - Session API: `GET /api/assistant/session/:session_id` ## Capture strategy for this repo Current mutable domain source of truth: - `docs/orchestration/active_domain_contract.json` 1. Prefer automated capture with: - `python scripts/domain_case_loop.py run-case ...` 2. For linked multi-step scenarios, capture with: - `python scripts/domain_case_loop.py run-scenario --manifest ...` 3. For full domain pools grouped into several scenarios, capture with: - `python scripts/domain_case_loop.py run-pack --manifest ...` 4. For autonomous analyst/coder improvement over a full pack, run: - `python scripts/domain_case_loop.py run-pack-loop --manifest ...` 5. If baseline already exists as copied markdown export, import it with: - `python scripts/domain_case_loop.py import-export ...` 6. Use `baseline_turn.json` / `rerun_turn.json` as canonical analyst input for case mode. 7. Use `scenario_state.json` plus per-step `turn.json` as canonical analyst input for scenario mode. 8. Use `pack_state.json` plus per-scenario `scenario_state.json` as canonical analyst input for pack mode. 9. Use `loop_state.json` plus per-iteration `analyst_verdict.json` / `coder_result.json` as canonical analyst input for autonomous pack-loop mode. 10. Use `baseline_output.md` / `rerun_output.md` or per-step `output.md` as human-readable paired artifacts. 11. For follow-up-heavy domains, use `scenario_acceptance_matrix.md` as the canonical coverage view for scenario-tree nodes, edges, and paraphrase families. ## Default run assumptions - backend URL: `http://127.0.0.1:8787` - eval target: `assistant_stage1` - single-case async run uses generated case id `AUTO-001` - artifact root: `artifacts/domain_runs//` - scenario capture uses `POST /api/assistant/message` and `GET /api/assistant/session/:session_id` - live runners perform backend preflight via `GET /api/health` - `run-pack-loop` defaults to `gpt-5.4` for analyst and `gpt-5.4-mini` for coder ## Important constraints - Reuse current assistant runtime; do not build a parallel execution lane. - Preserve UTF-8 without BOM for every generated artifact. - Do not overwrite existing AGENTS rules; extend them. - Do not treat a root node success as domain acceptance when selected-object or drilldown edges on the primary user path are still broken.