# Runtime Readiness Matrix V1 (Code Sync) Дата: 2026-04-03 Формат: `scenario -> structural_readiness -> runtime_readiness -> blocker` ## Статусы - `STRUCTURALLY_VISIBLE` - сущность подтверждена в inventory/snapshot. - `LIVE_QUERYABLE` - stable factual path без ограничений (пока практически не используется). - `LIVE_QUERYABLE_WITH_LIMITS` - live path работает, но результат зависит от anchor/period precision и fallback-веток. - `REQUIRES_SPECIALIZED_RECIPE` - нужен отдельный recipe/исполнительный путь. - `DEEP_ONLY` - сценарий вне address V1. - `UNKNOWN` - runtime статус не зафиксирован. ## Матрица (по текущему коду + актуальным run-пакам) | scenario_id | scenario | structural_readiness | runtime_readiness | current_blocker | next_action | |---|---|---|---|---|---| | AQ-P0-01 | list_open_contracts | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | contract candidates зависят от качества movement materialization | усилить contract resolver confidence и стабилизировать non-empty профили | | AQ-P0-02 | list_payables_counterparties | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | broad prompts могут давать sparse/empty | держать curated positive + периодные подсказки | | AQ-P0-03 | list_receivables_counterparties | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | broad prompts могут давать sparse/empty | держать curated positive + периодные подсказки | | AQ-P0-04 | account_balance_snapshot | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | часть кейсов упирается в account-scope/materialization | продолжить account token/shape audit | | AQ-P0-05 | open_items_by_counterparty_or_contract | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | обязателен anchor (`counterparty OR contract`) | донастройка anchor extraction и ambiguity handling | | AQ-P0-06 | list_documents_by_counterparty | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | возможны anchor mismatches и period misses | поддерживать auto-broaden + anchor fallback аудит | | AQ-P0-07 | bank_operations_by_counterparty | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | возможны anchor mismatches и period misses | поддерживать auto-broaden + anchor fallback аудит | | AQ-P0-08 | list_documents_by_contract | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | document-filter может обнулять rows по узкому окну | contract docs fallback + resolver hardening | | AQ-P0-08B | bank_operations_by_contract | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | устойчивость зависит от contract anchor качества | усилить contract normalization и follow-up carryover | | AQ-P0-09 | documents_forming_balance | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | account-family чувствителен к row-shape/materialization | продолжить materialization diagnostics | | AQ-B1-10 | period_coverage_profile | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B1-11 | document_type_and_account_section_profile | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B1-12 | counterparty_population_and_roles | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B2-13 | counterparty_activity_lifecycle | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | lifecycle-сценарии требуют отдельного доменного live-pack (Batch-2) | собрать Batch-2 acceptance и закрыть route gate | | AQ-B1-14 | contract_usage_overview | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B3-15 | customer_revenue_and_payments | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B3-16 | supplier_payouts_profile | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-B3-17 | contract_usage_and_value | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | functional gates закрыты; остаточный риск в operational стабильности auto-nightly/MCP канала | держать comparator PASS (R6) и переходить к Batch-2 lifecycle | | AQ-P1-10 | account_turnover_snapshot | STRUCTURALLY_VISIBLE | UNKNOWN | intent/recipe отсутствуют в runtime | планировать как отдельный домен Step-4 | | AQ-P1-11 | list_documents_by_type | STRUCTURALLY_VISIBLE | UNKNOWN | intent/recipe отсутствуют в runtime | планировать как отдельный домен Step-4 | ## Sync Notes (2026-04-03) - В runtime реализованы by-contract intents: - `list_documents_by_contract` - `bank_operations_by_contract` - В runtime реализованы management intents Batch-1: - `period_coverage_profile` - `document_type_and_account_section_profile` - В runtime реализованы management/value intents следующих слоев: - `counterparty_population_and_roles` - `counterparty_activity_lifecycle` - `contract_usage_overview` - `customer_revenue_and_payments` - `supplier_payouts_profile` - `contract_usage_and_value` - Для value-слоя зафиксирован стандарт ранжирования: `top-20` по умолчанию (если пользователь не указал иной лимит). - Добавлена устойчивость к сленгу/опечаткам в intent routing (в т.ч. фразы вида `приходы самые высокие`, `кликентов самый высокий чек`). - Targeted code gate зеленый: - `npm --prefix llm_normalizer/backend test -- addressQueryRuntimeM23.test.ts` -> `200/200`. - `npm --prefix llm_normalizer/backend run build` -> `PASS`. - Domain live gates (2026-04-03): - Batch-1 pack: `docs/ADDRESS/runs/2026-04-03_Address_Domain_General_B1_PhaseC_LiveGate_R3/` -> `strict 28/28`. - Batch-3 pack: `docs/ADDRESS/runs/2026-04-03_Address_Domain_General_B3_Value_LiveGate_R2/` -> `strict 33/33`. - Global nightly regression после фиксов: - `docs/ADDRESS/runs/2026-04-03_Address_Nightly_Regression_Post_AnchorHardening_R6/nightly_summary.json` -> `overall_ok=true` (`stress_102: 102/102`, `followup_25: 25/25`, comparator PASS). - Operational note (2026-04-08): - авто-запуск nightly из Task Scheduler дал `overall_ok=false` из-за инфраструктурного `MCP fetch failed: fetch failed` в части вызовов, не как функциональный откат доменных intent-ов. - ручной контрольный nightly (`2026-04-08 10:29`) показал точечный flake в `AQ-P0-07` семействе (`S019`: `materialized_but_not_anchor_matched`), при этом `followup_25` остался `25/25`. - повторный контрольный nightly (`2026-04-08 10:51`) закрыт в `PASS`: `stress_102=102/102`, `followup_25=25/25`, comparator `PASS` (`docs/ADDRESS/runs/2026-04-08_Address_Nightly_Regression_2026-04-08_10-51-20/nightly_summary.json`). - `COMPOUND_FACTUAL_QUERY` остается detection-only (без multi-intent execution). - Финальные gate-артефакты стабильности: - stress `102/102`: `docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/run_summary.json` - follow-up `25/25`: `docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json`