АДРЕСНЫЙ РЕЖИМ - M2.3b тюнинг account-scope и диагностика стадий адресного рантайма

This commit is contained in:
dctouch 2026-03-29 20:57:55 +03:00
parent c82ebd70b7
commit 2bf16de4ea
498 changed files with 2619075 additions and 3 deletions

BIN
docs/ADDRESS.zip Normal file

Binary file not shown.

View File

@ -0,0 +1,123 @@
# Этап 4 — Архитектурный аудит под MCP-first адресные запросы
Дата: 2026-03-29
Контур: `X:\1C\NDC_1C`
## 1) Цель аудита
Понять, в каком состоянии проект перед переходом на новый класс задач:
- "покажи незакрытые договоры";
- "найди, кому мы должны";
- "найди, кто должен нам";
- "покажи остаток по счету".
И зафиксировать, что нужно поменять в рантайме, чтобы это работало как **LLM-интерфейс к живой 1С через MCP**.
## 2) Подтвержденные факты (as-is)
### 2.1 Assistant runtime сейчас snapshot-first
Текущий `AssistantDataLayer` поднимает данные из фиксированного набора JSON-файлов из `docs/ARCH/2020экспорт`, а не из полного корпуса:
- `llm_normalizer/backend/src/services/assistantDataLayer.ts:3379-3386`
- `llm_normalizer/backend/src/services/assistantDataLayer.ts:3401`
Размер подключенного snapshot-пакета:
- `docs/ARCH/2020экспорт` = **1.82 MB** (10 файлов).
### 2.2 Полный monthly-корпус есть, но в assistant runtime не используется
Объем полного корпуса:
- `docs/ARCH/2020_monthly_company_asof_full/_tmp_ndjson` = **6732 MB** (12 файлов),
- средний файл ≈ **561 MB**.
Итог: по текущему коду assistant работает по сильно урезанному слою данных относительно доступного объема.
### 2.3 MCP/live есть, но как overlay и только на части маршрутов
Live-путь в assistant включается только если:
- `FEATURE_ASSISTANT_MCP_RUNTIME_V1=true`
(`llm_normalizer/backend/src/config.ts:90-100`)
и только для маршрутов:
- `hybrid_store_plus_live`
- `live_mcp_drilldown`
(`llm_normalizer/backend/src/services/assistantDataLayer.ts:2863`)
Для `store_canonical` live не используется.
### 2.4 Claim-bound live план в `assistantDataLayer` ориентирован на 3 семейства
`buildLiveMcpCallPlan(...)` имеет claim-ветки:
- `prove_fixed_asset_amortization_coverage` (`assistantDataLayer.ts:348`)
- `prove_vat_chain_completeness` (`assistantDataLayer.ts:396`)
- `prove_rbp_tail_state` (`assistantDataLayer.ts:460`)
Остальное уходит в `claim_type: null` + generic live probe (`assistantDataLayer.ts:444`).
Это не покрывает "простые адресные запросы" как отдельный runtime-класс.
### 2.5 Route-дисциплина сейчас заточена под Stage 4 глубинные цепочки
В `routeHintAdapter` есть жесткие query-class rules:
- `exact_object_trace -> live_mcp_drilldown` (`routeHintAdapter.ts:86-87`)
- `canonical_fact_lookup -> store_canonical` (`routeHintAdapter.ts:149-150`)
В результате простые lookup-вопросы по умолчанию тяготеют к `store_canonical` (snapshot), а не к MCP-first.
### 2.6 Postgres в assistant runtime фактически не активен
По проекту:
- в `.env.example` дефолт `CANONICAL_DB_URL=sqlite:///...`
(`.env.example:18`, `README.md:89`)
- `canonical_layer/store.py` поддерживает и SQLite, и Postgres через SQLAlchemy
(`canonical_layer/store.py:55`, `canonical_layer/store.py:59`)
На момент аудита:
- локально есть `data/canonical_store.db` (SQLite);
- активного процесса `postgres` не обнаружено.
Важно: текущий `llm_normalizer/backend` **не использует** `canonical_layer` store напрямую в assistant execution path.
## 3) Главный технический вывод
Зафиксирован статус:
**SNAPSHOT_PRIMARY_WITH_OPTIONAL_LIVE_OVERLAY_CONFIRMED**
То есть:
- live-инфраструктура есть;
- но архитектурно основной путь ассистента по-прежнему snapshot-first;
- адресные "быстрые" бизнес-запросы как отдельный MCP-first runtime-класс пока не оформлены.
## 4) Что точно не бьется с новой задачей
1. `store_canonical` = snapshot path, а нам нужен live-first для адресных запросов.
2. Нет отдельного address-intent и address-query planner.
3. Нет acceptance-метрик для "быстрого доступа к сущностям" (не reasoning-heavy).
4. Нет отдельного answer contract под tabular/list-ответы для live lookup.
## 5) Рамка изменения (без слома Stage 4 deep path)
Меняем не всю архитектуру, а добавляем новый lane:
- `address_query_runtime` как отдельный класс в существующем assistant pipeline;
- приоритет источника для этого класса: `live_mcp` (mandatory), snapshot только как явно маркированный fallback;
- Stage 4 deep chain path оставляем как есть.
## 6) Финальный verdict аудита
**MCP_INFRA_EXISTS_BUT_ADDRESS_RUNTIME_NOT_IMPLEMENTED**
Новый функционал реализуем через отдельный MCP-first address lane, без тотального рефакторинга текущего Stage 4 chain runtime.

View File

@ -0,0 +1,125 @@
# Target Architecture — MCP-first Address Queries (Stage 4)
Дата: 2026-03-29
## 1) Что вводим
Добавляем в текущий assistant runtime новый режим:
- `question_mode = address_query`
Это не замена deep-chain логики Stage 4, а параллельный "быстрый" lane для адресных вопросов.
## 2) Типы вопросов для первого релиза (Address V1)
Минимальный набор:
1. `list_open_contracts`
2. `list_payables_counterparties` (кому мы должны)
3. `list_receivables_counterparties` (кто должен нам)
4. `account_balance_snapshot` (остатки по счету / счетам)
5. `open_items_by_counterparty_or_contract` (незакрытые хвосты по контрагенту/договору)
## 3) Принцип источников данных
Для `address_query`:
- primary source: `MCP/live` (обязательно);
- snapshot-source: только fallback с явной маркировкой;
- запрещено молча подменять live на snapshot.
Правило ответа:
- если live недоступен: честный `DATA_UNAVAILABLE_LIVE`;
- если live доступен, но пусто: честный `NO_MATCH_FOR_FILTERS`;
- если live дал строки: `FACTUAL_LIST`/`FACTUAL_SUMMARY`.
## 4) Pipeline (встраивание в текущую архитектуру)
Новая ветка поверх текущего пайплайна:
1. `Normalizer` -> определяет `question_mode=address_query` и `address_intent`.
2. `AddressIntentResolver` -> фиксирует intent + обязательные фильтры (period/account/counterparty/contract).
3. `AddressQueryPlanner` -> выбирает MCP recipe (query template + params).
4. `McpExecutor` -> исполняет 1..N live-вызовов.
5. `AddressResultMaterializer` -> нормализует строки в табличный вид + totals.
6. `AddressAnswerComposer` -> короткий ответ + список + ограничения.
## 5) MCP query recipes (контракт)
Для каждого intent хранится recipe:
- `recipe_id`
- `purpose`
- `query_template`
- `required_params`
- `optional_params`
- `output_schema`
- `sort/default_limit`
Примеры базовых рецептов:
- `address.open_contracts.by_period`
- `address.payables.counterparty_totals`
- `address.receivables.counterparty_totals`
- `address.balance.by_account`
- `address.open_items.by_counterparty_contract`
## 6) Контракт ответа (Address mode)
Форматы:
1. `FACTUAL_LIST`
Короткий вывод + список строк (N top) + totals.
2. `FACTUAL_SUMMARY`
Если строк много: агрегат + top контрагенты + рекомендация уточнить фильтры.
3. `LIMITED_WITH_REASON`
Если live недоступен/ошибка/нехватка фильтров.
Обязательные поля debug:
- `question_mode`
- `address_intent`
- `recipe_id`
- `required_filters`
- `resolved_filters`
- `mcp_calls[]`
- `rows_fetched`
- `rows_matched`
- `result_mode`
## 7) Совместимость с текущим Stage 4
Не ломаем текущие chain-ветки:
- `settlements_60_62`, `vat_document_register_book`, `month_close_costs_20_44`, `fixed_asset_amortization` остаются.
- `address_query` включается только при явном address-intent.
Приоритет:
- если вопрос "why/how/prove/chain" -> текущий deep path;
- если вопрос "show/list/find/open/balance" -> address path.
## 8) Границы (что не делаем)
1. Не вводим новый proof engine.
2. Не расширяем домены beyond P0/P1 для V1.
3. Не делаем большой redesign routing.
4. Не зависим от Postgres как обязательного prereq для Address V1.
## 9) Техническое решение по Postgres
Коротко:
- Postgres оставляем как optional storage path для canonical layer;
- Address V1 делаем MCP-first без блокировки на миграцию в Postgres;
- отдельный migration pack можно делать потом, когда будет нужна materialized аналитика/кеши.
## 10) Архитектурный verdict
**ADDRESS_LANE_MCP_FIRST_IS_COMPATIBLE_WITH_CURRENT_STAGE4_RUNTIME**
То есть новый функционал можно внедрить итеративно, не вынося проект в тяжелый рефактор.

View File

@ -0,0 +1,148 @@
# Execution Plan — Address Runtime (Wave A..D)
Дата: 2026-03-29
Фокус: быстрый LLM-интерфейс к 1С сущностям через MCP/live.
## Общий подход
Делаем отдельный пакет, без большого неразмеченного рефакторинга:
- Wave A: baseline + contracts
- Wave B: runtime lane + planner
- Wave C: recipes + answer contract
- Wave D: live rerun + acceptance
## Wave A — Baseline & Contracts
### Цель
Зафиксировать source-of-truth и контракты перед кодом.
### Что делаем
1. Вводим `question_mode=address_query`.
2. Фиксируем V1 intents (5 штук).
3. Фиксируем `address_query_recipe` контракт.
4. Фиксируем обязательные debug поля и run-артефакты.
### Артефакты
- `docs/ADDRESS/runs/<run_id>/README.md`
- `run_summary.json`
- `address_intent_contract.md`
- `address_recipe_contract.md`
## Wave B — Runtime Lane
### Цель
Встроить новый lane в текущий assistant pipeline.
### Что делаем
1. Добавляем `AddressIntentResolver`.
2. Добавляем `AddressQueryPlanner`.
3. Добавляем source policy:
- `address_query => live_required=true`
- fallback на snapshot только явно и с limitation.
4. Разводим маршруты:
- deep reasoning path не трогаем;
- address path идет отдельной веткой.
### Acceptance
- Address intent корректно выделяется на контрольном наборе.
- Для address-intent не происходит тихого ухода в snapshot-first.
## Wave C — Query Recipes & Answer Contract
### Цель
Сделать рабочие адресные ответы по MCP.
### Что делаем
1. Реализуем минимум 5 MCP recipes (по intent V1).
2. Делаем materializer:
- rows -> normalized list,
- totals,
- stable output schema.
3. Добавляем `AddressAnswerComposer`:
- `FACTUAL_LIST`,
- `FACTUAL_SUMMARY`,
- `LIMITED_WITH_REASON`.
### Acceptance
- На expected-positive вопросах есть непустой factual output.
- Ошибки live не маскируются, false factual = 0.
## Wave D — Live Replay & Acceptance
### Цель
Проверить live-сценарии на реальных адресных вопросах.
### Контрольный набор (минимум)
1. Покажи незакрытые договоры.
2. Кому мы должны денег.
3. Кто должен нам денег.
4. Остатки по счету 60 (или 62) на текущую дату.
5. Незакрытые позиции по конкретному контрагенту.
### Метрики
1. `address_intent_resolution_rate >= 0.95`
2. `address_live_call_success_rate >= 0.95`
3. `address_non_empty_result_rate > 0` на positive-кейсах
4. `address_false_factual_rate = 0`
5. `address_snapshot_fallback_rate` (должна быть низкой и явной)
### Обязательные артефакты
- `chat_export_address_live.md`
- `debug_payloads/`
- `live_call_inventory.json`
- `address_result_matrix.md`
- `address_failure_breakdown.json`
## Run-структура (обязательно)
Все прогоны только сюда:
- `docs/ADDRESS/runs/<YYYY-MM-DD>_<PackName>/`
## Риски и анти-риски
Риск:
- смешение deep-chain и address-lane в одном вопросе.
Контрмера:
- rule-based switch по `question_mode` + explicit fallback в mixed-mode.
Риск:
- деградация в silent snapshot.
Контрмера:
- mandatory debug flag `live_required_for_mode=true`,
- limitation если live недоступен.
## Финальный критерий пакета
Пакет считается принятым, когда:
1. Address intent стабильно маршрутизируется в MCP-first lane.
2. На части live-кейсов система дает быстрый factual ответ.
3. Нет ложной "доказанности" и нет молчаливой подмены источника.
Verdict:
- `ADDRESS_RUNTIME_V1_READY`
- или `ADDRESS_RUNTIME_V1_READY_WITH_LIMITATIONS`
- или `ADDRESS_RUNTIME_V1_NOT_READY`

View File

@ -0,0 +1,31 @@
# ADDRESS Track (MCP-first)
Этот раздел фиксирует разворот Stage 4 в сторону "адресных" пользовательских запросов:
- быстро найти сущности;
- показать список и статус (есть/нет, закрыто/не закрыто);
- получить остатки/долги/контрагентов по текущему состоянию базы.
Ключевой принцип трека: **MCP/live-first**, а не snapshot-first.
## Документы
1. `1 - architecture_audit_mcp_first_address_runtime_2026-03-29.md`
Технический аудит текущего состояния и ограничений.
2. `2 - target_architecture_mcp_first_address_queries_stage4_2026-03-29.md`
Целевая архитектура под адресные запросы.
3. `3 - execution_plan_address_runtime_waveA_waveD_2026-03-29.md`
Пошаговый план реализации без большого рефакторинга.
## Раны и артефакты
Все новые прогоны и доказательные артефакты складываются в:
- `docs/ADDRESS/runs/`
Базовый аудитный run:
- `docs/ADDRESS/runs/2026-03-29_Address_Runtime_Pivot_Baseline/`

View File

@ -0,0 +1,36 @@
# Run README
Run ID: `2026-03-29_Address_Query_Entity_Inventory_2020`
Date: 2026-03-29
## Goal
Провести первичную системную инвентаризацию сущностей 1С по monthly snapshot-корпусу 2020 и подготовить базу для `address_query` runtime проектирования.
## Input
- `docs/ARCH/2020_monthly_company_asof_full/_tmp_ndjson`
- 12 monthly NDJSON files (2020-01..2020-12)
## Result
- processed_rows: `7039648`
- parse_errors: `0`
- total_entities: `286`
- family_count: `10`
## Artifacts
- `entity_inventory_full.json`
- `entity_inventory_p0_candidates.json`
- `entity_inventory_p1_candidates.json`
- `entity_inventory_p2_candidates.json`
- `entity_inventory_relation_support_sets.json`
- `entity_inventory_intent_support_sets.json`
- `entity_inventory_readable_summary.json`
## Notes
- В части labels исходного экспорта наблюдается cp1251/utf8 mojibake.
- Для проектных решений использовались устойчивые структурные признаки: family prefixes, relations, key/filter patterns, row density.
- Этот run используется как source input для файлов в `docs/ADDRESS/address_query/`.

View File

@ -0,0 +1,34 @@
{
"run_id": "2026-03-29_Address_Query_Entity_Inventory_2020",
"generated_at": "2026-03-29T14:40:00+03:00",
"status": "completed",
"scope": "entity_inventory_for_address_query_runtime_design",
"input": {
"source_dir": "docs/ARCH/2020_monthly_company_asof_full/_tmp_ndjson",
"files_count": 12,
"year": 2020
},
"metrics": {
"processed_rows": 7039648,
"parse_errors": 0,
"total_entities": 286,
"families": 10,
"p0_candidates": 118,
"p1_candidates": 61,
"p2_candidates": 107
},
"limits": [
"cp1251_utf8_mojibake_labels_present_in_source_exports",
"semantic_label_cleanup_required_before_production_recipe_binding"
],
"artifacts": [
"README.md",
"entity_inventory_full.json",
"entity_inventory_p0_candidates.json",
"entity_inventory_p1_candidates.json",
"entity_inventory_p2_candidates.json",
"entity_inventory_relation_support_sets.json",
"entity_inventory_intent_support_sets.json",
"entity_inventory_readable_summary.json"
]
}

View File

@ -0,0 +1,24 @@
# ADDRESS Query Docs
Дата: 2026-03-29
## Документы
- `entity_map_1c_2020.md` - полная карта сущностей по snapshot 2020.
- `address_scenario_matrix.md` - матрица сценариев (question -> intent -> recipe).
- `query_recipes_v1.md` - каталог фильтров и recipe-контракты.
- `runtime_integration_plan.md` - план встраивания `question_mode=address_query`.
- `address_runtime_contracts.md` - контракты runtime/debug/result для address lane.
- `runtime_readiness_matrix_v1.md` - матрица structural vs runtime readiness.
- `known_positive_live_suite_v1.md` - базовый template positive-evidence suite.
- `data_aware_positive_acceptance_suite_v1.md` - M2.3 canonical guide для curated live acceptance.
- `address_query_bootstrap_report_2026-03-29.md` - итоговая сводка bootstrap этапа.
## Связанные run-паки
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Entity_Inventory_2020/`
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/`
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/`
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/`
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/`

View File

@ -0,0 +1,72 @@
# Address Query Bootstrap Report (Stage 4)
Дата: 2026-03-29
## 1) Что сделано в этом пакете
Подготовлен проектный комплект для перехода к отдельному runtime режиму `question_mode=address_query`:
- `entity_map_1c_2020.md` — полная карта сущностей по 12 snapshot 2020.
- `address_scenario_matrix.md` — матрица адресных сценариев и intent mapping.
- `query_recipes_v1.md` — draft рецептов, фильтров, result/answer контракт.
- `runtime_integration_plan.md` — схема интеграции в текущую архитектуру.
## 2) P0 сущности (для Address V1)
P0 ядро (direct factual lookup):
- `AccountingRegister_Хозрасчетный_RecordType`
- `AccountingRegister_Хозрасчетный`
- `Document_СписаниеСРасчетногоСчета`
- `Document_СписаниеСРасчетногоСчета_РасшифровкаПлатежа`
- `Document_ПоступлениеНаРасчетныйСчет`
- `Document_ПоступлениеНаРасчетныйСчет_РасшифровкаПлатежа`
- `Document_АктСверкиВзаиморасчетов*`
- `Catalog_ДоговорыКонтрагентов`
- `DocumentJournal_ДокументыПоставщиков`
- `DocumentJournal_ДокументыПокупателей`
- `DocumentJournal_БанковскиеВыписки`
- `ChartOfAccounts_Хозрасчетный`
Важно: `Catalog_Контрагенты`, `Catalog_Организации`, `Catalog_БанковскиеСчета` остаются обязательными измерениями для фильтров, хотя в auto-triage они помечены как P1.
## 3) P0 address-intents
- `list_open_contracts`
- `list_payables_counterparties`
- `list_receivables_counterparties`
- `account_balance_snapshot`
- `open_items_by_counterparty_or_contract`
Дополнительно в v1.1 (готово к быстрому включению):
- `list_documents_by_counterparty`
- `list_documents_by_contract`
- `documents_forming_balance`
## 4) Предлагаемый runtime flow
`incoming question -> mode classifier -> address intent -> filter extraction -> recipe selection -> MCP call -> result materialization -> factual composer`
Где:
- address lane работает `MCP/live-first`;
- deep-analysis lane остается отдельным и неизмененным;
- fallback всегда явный, без silent подмены источника.
## 5) Риски и ограничения (зафиксированы)
- В snapshot встречается cp1251/utf8 mojibake для части labels (требуется декодирование labels-map на этапе реализации).
- Для части сущностей нужен business resolver (name->id для контрагента/договора).
- Без whitelist recipe нельзя безопасно открывать свободный query builder.
## 6) Что идет в следующую итерацию (с бизнес-проработкой)
1. Утвердить final white-list P0 recipe (с бухгалтером/аналитиком).
2. Зафиксировать справочники нормализации фильтров (контрагент/договор/счет).
3. Включить `question_mode=address_query` в контракт normalizer и debug.
4. Сделать первый live rerun pack по 5 P0 вопросам.
## 7) Финальный вывод этого этапа
Архитектура проекта готова к добавлению отдельного address-query runtime без ломки deep-analysis. Основной технический вектор корректный: переход на `MCP/live-first` для простых адресных запросов с recipe-ограничениями.

View File

@ -0,0 +1,123 @@
# Address Runtime Contracts V1 (M2.3b)
Дата: 2026-03-29
## Runtime Policy
- Runtime lane is `data-agnostic`: no hardcoded counterparties/contracts/accounts from one concrete base.
- Acceptance lane is `data-aware`: positive cases are curated after exploratory live pass.
- Address lane remains MCP/live-first, whitelist-only, read-only.
## Input Contract
- `question_mode`: `address_query | deep_analysis | unsupported`
- `address_intent`: nullable enum
- `resolved_filters`: object
- `missing_filters`: string[]
## Debug Contract
- `detected_mode`
- `query_shape`
- `detected_intent`
- `runtime_readiness`
- `is_compound_query`
- `subqueries_count`
- `resolved_entities`
- `resolved_filters`
- `missing_filters`
- `selected_recipe_ids`
- `selected_recipe`
- `account_scope_mode`
- `account_scope_fallback_applied`
- resolver block:
- `anchor_type`
- `anchor_value_raw`
- `anchor_value_resolved`
- `resolver_confidence`
- `ambiguity_count`
- MCP/evidence flow block:
- `mcp_call_status`
- `rows_fetched`
- `raw_rows_received`
- `rows_after_account_scope`
- `rows_materialized`
- `rows_after_recipe_filter`
- `rows_matched`
- `raw_row_keys_sample`
- `materialization_drop_reason`
- `response_type`
- `limited_reason_category`
- `fallback_reason`
## Output Contract
### FACTUAL_LIST
- short summary
- rows[]
- totals
### FACTUAL_SUMMARY
- aggregate summary
- top rows
- optional drilldown hints
### LIMITED_WITH_REASON
- explicit reason code
- missing filters / data availability note
## Limited Reason Taxonomy
- `empty_match` - live-запрос выполнен, но по фильтру нет строк.
- `missing_anchor` - не хватает обязательного якоря (контрагент/договор/счет/период).
- `recipe_visibility_gap` - текущий recipe не материализует нужную аналитику.
- `execution_error` - ошибка MCP/инфраструктуры/feature-flag.
- `unsupported` - вопрос не покрыт address-intent V1.
## Runtime Readiness Status
- `LIVE_QUERYABLE`
- `LIVE_QUERYABLE_WITH_LIMITS`
- `REQUIRES_SPECIALIZED_RECIPE`
- `DEEP_ONLY`
- `UNKNOWN`
## MCP Stage Status Taxonomy (M2.3a)
- `skipped`
- `error`
- `no_raw_rows`
- `raw_rows_received_but_not_materialized`
- `materialized_but_not_matched`
- `matched_non_empty`
## Materialization Drop Reasons (M2.3a)
- `none`
- `dropped_by_account_scope_filter`
- `missing_period_and_registrator_fields`
- `missing_period_field`
- `missing_registrator_field`
- `unknown_row_shape`
## Account Scope Strategy (M2.3b)
- `strict` - account scope is mandatory and applied as a hard filter.
- `preferred` - account scope is applied first; if it yields zero rows while raw rows exist, runtime falls back to raw rows and continues matching.
## Compound Query Note
- `COMPOUND_FACTUAL_QUERY` currently remains detection-only.
- Multi-intent decomposition execution is planned for next increment.
## Guardrails
- whitelist recipes only
- read-only MCP
- no free-form query generation
- no silent source substitution

View File

@ -0,0 +1,58 @@
# Address Scenario Matrix (V1)
Дата: 2026-03-29
Режим: `question_mode=address_query` (отдельно от deep-analysis)
## Scope
Этот сценарный слой покрывает только direct factual lookup без тяжелого reasoning-chain:
- список объектов;
- агрегаты (остатки/долги/хвосты);
- drilldown от агрегата к документам.
Не покрывается в V1:
- "почему так произошло";
- доказательная причинно-следственная бухгалтерская интерпретация;
- сложные chain proof-вопросы (должны уходить в deep-analysis path).
## Matrix
| scenario_id | Пользовательский вопрос | intent | required_filters | optional_filters | target_entity_family | MCP recipe | expected_response_type | priority |
|---|---|---|---|---|---|---|---|---|
| AQ-P0-01 | Какие договоры не закрыты на текущую дату? | `list_open_contracts` | `as_of_date` | `organization`, `counterparty`, `limit`, `sort` | `NSI_CATALOG`, `ACCOUNTING_REGISTER`, `DOCUMENT` | `address.open_contracts.by_asof` | `FACTUAL_LIST` | P0 |
| AQ-P0-02 | Кому мы должны денег на сегодня? | `list_payables_counterparties` | `as_of_date` | `organization`, `account`, `limit`, `sort` | `ACCOUNTING_REGISTER`, `DOCUMENT`, `DOCUMENT_JOURNAL` | `address.payables.counterparty_totals` | `FACTUAL_SUMMARY` | P0 |
| AQ-P0-03 | Кто должен нам денег на сегодня? | `list_receivables_counterparties` | `as_of_date` | `organization`, `account`, `limit`, `sort` | `ACCOUNTING_REGISTER`, `DOCUMENT`, `DOCUMENT_JOURNAL` | `address.receivables.counterparty_totals` | `FACTUAL_SUMMARY` | P0 |
| AQ-P0-04 | Какой остаток по счету 60 на дату? | `account_balance_snapshot` | `account`, `as_of_date` | `organization`, `limit`, `sort` | `ACCOUNTING_REGISTER`, `CHART_OF_ACCOUNTS` | `address.account.balance_snapshot` | `FACTUAL_SUMMARY` | P0 |
| AQ-P0-05 | Какие хвосты висят по контрагенту X? | `open_items_by_counterparty_or_contract` | `counterparty`, `as_of_date` | `organization`, `contract`, `account`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT` | `address.open_items.by_counterparty` | `FACTUAL_LIST` | P0 |
| AQ-P0-06 | Какие хвосты висят по договору Y? | `open_items_by_counterparty_or_contract` | `contract`, `as_of_date` | `organization`, `counterparty`, `account`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT`, `NSI_CATALOG` | `address.open_items.by_contract` | `FACTUAL_LIST` | P0 |
| AQ-P0-07 | Покажи документы по контрагенту X за период | `list_documents_by_counterparty` | `counterparty`, `period_from`, `period_to` | `document_type`, `organization`, `limit`, `sort` | `DOCUMENT`, `DOCUMENT_JOURNAL` | `address.documents.by_counterparty` | `FACTUAL_LIST` | P0 |
| AQ-P0-07B | Покажи банковские операции по контрагенту X за период | `bank_operations_by_counterparty` | `counterparty` | `period_from`, `period_to`, `organization`, `limit`, `sort` | `DOCUMENT_JOURNAL`, `ACCOUNTING_REGISTER` | `address.bank_ops.by_counterparty` | `FACTUAL_LIST` | P0 |
| AQ-P0-08 | Покажи документы по договору Y за период | `list_documents_by_contract` | `contract`, `period_from`, `period_to` | `document_type`, `organization`, `limit`, `sort` | `DOCUMENT`, `DOCUMENT_JOURNAL`, `NSI_CATALOG` | `address.documents.by_contract` | `FACTUAL_LIST` | P0 |
| AQ-P0-09 | Какие документы формируют этот остаток по счету 62? | `documents_forming_balance` | `account`, `as_of_date` | `organization`, `counterparty`, `contract`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT` | `address.balance.drilldown_documents` | `FACTUAL_LIST` | P0 |
| AQ-P1-10 | Дай обороты по счету 51 за период | `account_turnover_snapshot` | `account`, `period_from`, `period_to` | `organization`, `counterparty`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT` | `address.account.turnover_snapshot` | `FACTUAL_SUMMARY` | P1 |
| AQ-P1-11 | Дай список документов по типу "СписаниеСРасчетногоСчета" за период | `list_documents_by_type` | `document_type`, `period_from`, `period_to` | `organization`, `counterparty`, `contract`, `limit` | `DOCUMENT`, `DOCUMENT_JOURNAL` | `address.documents.by_type` | `FACTUAL_LIST` | P1 |
| AQ-P2-12 | Покажи технические константы конфигурации | `unsupported_for_v1` | - | - | `CONSTANT` | - | `LIMITED_WITH_REASON` | P2 |
## Сценарные правила
- Если вопрос распознается как `address_query`, ответ строится только через recipe-based MCP path.
- Если обязательные фильтры не извлечены, вернуть `LIMITED_WITH_REASON` с указанием недостающих параметров.
- Если вопрос требует causal/proof reasoning, перевести в deep-analysis path.
- Для `as_of_date` по умолчанию используется текущая дата runtime (на момент этого документа: 2026-03-29), если пользователь явно не задал дату.
## Runtime status note (M2.3b)
Implemented in live runtime now:
- `list_documents_by_counterparty`
- `bank_operations_by_counterparty`
- `documents_forming_balance`
Still not implemented in runtime:
- `list_documents_by_contract`
Stage diagnostic note:
- strict account intents still show `raw_rows_received > 0`, but `rows_after_account_scope = 0`;
- preferred counterparty intents now reach `rows_materialized > 0`, but rows still drop at recipe/anchor filter stage;
- non-empty factual acceptance now requires resolver/filter tuning after materialization.

View File

@ -0,0 +1,51 @@
# Address V1 Acceptance Pack (Draft)
Дата: 2026-03-29
## Required files in run folder
- `README.md`
- `run_summary.json`
- `address_case_matrix.md`
- `chat_export_address_live.md`
- `debug_payloads/`
- `live_call_inventory_address.json`
- `before_after_metrics.json`
- `limitations_register.md`
## Minimal metrics
- `address_mode_routing_accuracy`
- `address_intent_resolution_rate`
- `required_filter_resolution_rate`
- `live_call_success_rate`
- `factual_non_empty_rate`
- `false_factual_rate`
## Two mandatory suites
### A) Runtime/Routing suite
Checks:
- mode routing;
- intent resolution;
- query shape detection;
- limited reason taxonomy;
- no false factual.
### B) Positive Evidence suite
Checks:
- non-empty factual responses on pre-selected known-positive live cases;
- recipe-level positive yield;
- anchor resolution quality for counterparty/contract/account.
## Acceptance targets (V1)
- `address_intent_resolution_rate >= 0.9`
- `live_call_success_rate >= 0.9`
- `false_factual_rate = 0`
- no deep-analysis regression
- known-positive factual hit-rate must be tracked separately from broad dry-run prompts

View File

@ -0,0 +1,89 @@
# Data-Aware Positive Acceptance Suite V1 (M2.3)
Date: 2026-03-29
## Purpose
Prove practical usefulness of address runtime on the current live base without introducing runtime hardcoding.
Policy:
- Runtime is data-agnostic.
- Acceptance is data-aware.
## How cases are selected
Phase A (mandatory): stage-diagnostic pass
1. Run 3-5 core scenarios and record row-stage counters:
- `raw_rows_received`
- `rows_after_account_scope`
- `rows_materialized`
- `rows_after_recipe_filter`
- `rows_matched`
2. Classify the first drop stage (`mcp_call_status` taxonomy).
3. Fix or narrow the dominant bottleneck before positive curation.
Phase B: curated positive pass
1. Run exploratory live pass by scenario groups.
2. Detect routes that return non-empty rows.
3. Curate acceptance cases from those routes.
4. Keep paired negative twins for safety checks.
No case values should be embedded into runtime rules.
## Required case matrix fields
- `case_id`
- `question`
- `intent`
- `query_shape`
- `filters`
- `resolver_path`
- `expected_recipe`
- `expected_response_type`
- `expected_non_empty`
- `notes`
## Mandatory scenario groups (M2.3)
- `account_balance_snapshot`
- `documents_by_counterparty`
- `bank_operations_by_counterparty`
- `documents_forming_balance`
## Metrics
- `data_aware_positive_case_count`
- `data_aware_positive_non_empty_rate`
- `data_aware_positive_factual_rate`
- `data_aware_positive_limited_rate`
- `data_aware_positive_false_factual_rate`
Hard rule:
- `data_aware_positive_false_factual_rate = 0`
Target (not hard gate across all bases):
- `data_aware_positive_non_empty_rate >= 0.60`
## Debug minimum for every case
- `detected_mode`
- `query_shape`
- `detected_intent`
- `selected_recipe`
- resolver block (`anchor_*`, `resolver_confidence`, `ambiguity_count`)
- flow block (`raw_rows_received`, `rows_materialized`, `rows_after_recipe_filter`, `rows_matched`)
- `runtime_readiness`
- `limited_reason_category`
## Output files in run-pack
- `data_aware_acceptance_case_matrix.md`
- `chat_export_data_aware_live.md`
- `live_call_inventory_address.json`
- `debug_payloads/`
- `run_summary.json`

View File

@ -0,0 +1,363 @@
# Entity Map 1C 2020 (Address Query baseline)
Generated at: 2026-03-29T14:18:09.325Z
Source: `docs/ARCH/2020_monthly_company_asof_full/_tmp_ndjson` (12 months, year 2020).
Processed rows: **7039648**, parse errors: **0**, unique entities: **286**.
## Family Summary
| entity_family | entity_count | rows_total | P0 | P1 | P2 |
|---|---:|---:|---:|---:|---:|
| INFORMATION_REGISTER | 1 | 6300000 | 0 | 1 | 0 |
| DOCUMENT | 77 | 202636 | 77 | 0 | 0 |
| ACCOUNTING_REGISTER | 2 | 190244 | 2 | 0 | 0 |
| NSI_CATALOG | 50 | 140050 | 3 | 47 | 0 |
| DOCUMENT_JOURNAL | 12 | 126868 | 0 | 12 | 0 |
| ACCUMULATION_REGISTER | 36 | 73022 | 36 | 0 | 0 |
| CHART_OF_ACCOUNTS | 1 | 4452 | 0 | 1 | 0 |
| CONSTANT | 95 | 1140 | 0 | 0 | 95 |
| CHART_OF_CHARACTERISTIC_TYPES | 3 | 1128 | 0 | 0 | 3 |
| OTHER | 9 | 108 | 0 | 0 | 9 |
## Readability and Data Quality Notes
- Snapshot corpus is complete for 2020 (12 files, ~6.7 GB NDJSON) and processed without parse errors.
- Some `entity_name` and field labels in raw export are in cp1251/utf8 mojibake (for example `Р РЋР С—Р С‘...`).
- For design decisions we use family/type prefixes and relation structure as source of truth; exact RU labels require final decoding pass during implementation.
## Address-Query Readiness (By Result)
### Ready for P0 address-query (MCP/live-first target)
- `AccountingRegister_Хозрасчетный_RecordType`
- `AccountingRegister_Хозрасчетный`
- `Document_СписаниеСРасчетногоСчета`
- `Document_СписаниеСРасчетногоСчета_РасшифровкаПлатежа`
- `Document_ПоступлениеНаРасчетныйСчет`
- `Document_ПоступлениеНаРасчетныйСчет_РасшифровкаПлатежа`
- `Document_АктСверкиВзаиморасчетов`
- `Document_АктСверкиВзаиморасчетов_ПоДаннымОрганизации`
- `Document_АктСверкиВзаиморасчетов_СписокСчетов`
- `Catalog_ДоговорыКонтрагентов` (technically high value for filters and grouping)
- `DocumentJournal_ДокументыПоставщиков` / `DocumentJournal_ДокументыПокупателей` / `DocumentJournal_БанковскиеВыписки` (fast drilldown index)
### Visible but needs additional interpretation before production address-query
- `Catalog_Контрагенты`
- `Catalog_Организации`
- `Catalog_БанковскиеСчета`
- `ChartOfAccounts_Хозрасчетный`
- `Catalog_СтатьиДвиженияДенежныхСредств`
- `Catalog_ПодразделенияОрганизаций`
- `Catalog_ОсновныеСредства`
- `Catalog_РасходыБудущихПериодов`
### Not suitable for direct address-query without deeper reasoning
- `CONSTANT_*` entities (configuration constants)
- `CHART_OF_CHARACTERISTIC_TYPES_*`
- `ExchangePlan_*` / auxiliary `OTHER` entities
- Narrow technical service entities without stable business lookup semantics
## Full Entity Catalog
Fields match requested contract: `entity_family`, `entity_name`, `source_snapshot`, `description`, `key_fields`, `filterable_fields`, `relations`, `query_suitability`, `priority`.
| entity_family | entity_name | source_snapshot | description | key_fields | filterable_fields | relations | query_suitability | priority |
|---|---|---|---|---|---|---|---|---|
| INFORMATION_REGISTER | InformationRegister_АдреснСРКлассиСРёРєР°СРѕСЂ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Information register layer (classification/support data) | ТипАдресногоЭлемента, КодРегионаВКоде, РљРѕРґ, КодРайонаВКоде, КодГородаВКоде, КодНаселенногоПунктаВКоде, КодУлицыВКоде, Наименование (+3) | | | MEDIUM | P1 |
| ACCOUNTING_REGISTER | AccountingRegister_ХозрасСРµСРЅСР№_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accounting register layer (postings and movement facts). linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, AccountDr_Key, AccountCr_Key, ОрганизаСРёСЏ_Key (+22) | AccountCr@navigationLinkUrl, AccountCr_Key, AccountDr@navigationLinkUrl, AccountDr_Key, Active, LineNumber, Period, Recorder (+6) | register_relates_to_account -> Account:268564, register_recorded_by_document -> Document:136616, register_relates_to_organization -> Organization:136616, register_relates_to_department -> Department:12636 | HIGH | P0 |
| NSI_CATALOG | Catalog_Ранки | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+5) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key | reference -> Unknown:59136, reference -> Account:39072 | MEDIUM | P1 |
| ACCOUNTING_REGISTER | AccountingRegister_ХозрасСРµСРЅСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accounting register layer (postings and movement facts). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:53628 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_РурналОпераСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to document chain; linked to organization dimension; linked to bank account dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, Информация (+4) | Date, Number, Posted, Ref, Ref_Type, Type, ИнСРѕСЂРјР°СРёСЏ_Type, ОрганизаСРёСЏ_Key | journal_refers_to_document -> Document:47105, journal_organization -> Organization:47105, reference -> Counterparty:31918, reference -> Unknown:9474, reference -> Warehouse:540, reference -> BankAccount:250 | MEDIUM | P1 |
| DOCUMENT_JOURNAL | DocumentJournal_РокуменССРџРѕСЃСавСРёРєРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, Контрагент, РљРѕРЅСрагенС_Type (+14) | Date, Number, Posted, Ref, Ref_Type, Type, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+3) | journal_counterparty -> Counterparty:45410, journal_refers_to_document -> Document:33666, journal_organization -> Organization:33666, journal_has_currency -> Currency:33666, journal_responsible -> ResponsiblePerson:24442 | MEDIUM | P1 |
| DOCUMENT | Document_СписаниеСРасСРµСРЅРѕРіРѕРЎСРµСР°_РасСРёСровкаПлаСРµРР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка, Сделка_Type, КурсВзаиморасчетов, СуммаПлатежа, КратностьВзаиморасчетов (+11) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка_Type, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, РЎСРµСРЈСРµСаРасСРµСовПоАвансам_Key, РЎСРµСРЈСРµСаРасСРµСРѕРІРЎРљРѕРЅСрагенСРѕРј_Key | document_line_has_account -> Account:110580, document_has_counterparty -> Counterparty:35928, document_has_cashflow_article -> CashflowArticle:23148 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_РанковскиеРСРїРёСЃРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to document chain; linked to organization dimension; linked to bank account dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, РанковскиРРЎСРµС_Key (+18) | Date, Number, Posted, Ref, Ref_Type, Type, РанковскиРРЎСРµС_Key, РалюСР°_Key (+4) | journal_refers_to_document -> Document:27723, journal_organization -> Organization:27723, journal_bank_account -> BankAccount:27723, journal_has_currency -> Currency:27723, reference -> Unknown:27723, journal_counterparty -> Counterparty:24247 (+1) | MEDIUM | P1 |
| NSI_CATALOG | Catalog_КорреспонденСРёРёРЎСРµСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Содержание, РЎСРµСРС_Key (+8) | Code, Description, Ref_Key, РЎСРµСРС_Key, РЎСРµСРљС_Key | reference -> Account:51096 | MEDIUM | P1 |
| DOCUMENT | Document_СписаниеСРасСРµСРЅРѕРіРѕРЎСРµСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ДокументОснование, РокуменСОснование_Type (+32) | Date, Number, Posted, Ref_Key, РалюСР°РзаиморасСРµСовРабоСРЅРёРєР°_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОснование_Type (+13) | document_belongs_to_organization -> Organization:48522, document_has_counterparty -> Counterparty:46736, document_has_currency -> Currency:24261, document_line_has_account -> Account:24261, reference -> Unknown:20912, document_has_responsible -> ResponsiblePerson:15587 (+1) | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРСПредъявленнСР№_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ОрганизаСРёСЏ_Key, СчетФактура (+16) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, ИсправленнСРРЎСРµСФакССѓСЂР°_Type (+4) | register_recorded_by_document -> Document:20874, register_relates_to_organization -> Organization:20874, register_relates_to_invoice -> Document:20874, register_relates_to_supplier -> Counterparty:20766, register_relates_to_account -> Account:18078 | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеТоваровУслуг_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, РРґРёРЅРёСаИзмерения_Key, КоличествоМест, Количество, Коэффициент, НоменклаССѓСЂР°_Key, СтавкаНДС (+28) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РРґРёРЅРёСаИзмерения_Key, РљРѕРЅСрагенС_Key, НоменклаССѓСЂР°_Key, НомерРРўР”_Key, ПодразделениеРР°ССЂР°С_Key (+10) | document_line_has_account -> Account:26016, reference -> Unknown:13008, document_line_has_item -> Item:13008 | HIGH | P0 |
| DOCUMENT | Document_РђРєССверкиРзаиморасСРµСРѕРІ_РџРѕРаннСмОрганизаСРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to contracts; linked to document chain | Ref_Key, LineNumber, Дата, Документ, РокуменС_Type, Представление, Дебет, Кредит (+2) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂ_Key, РокуменС_Type | reference -> Document:12994, document_has_contract -> Contract:12994 | HIGH | P0 |
| NSI_CATALOG | Catalog_НоменклаССѓСЂР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+19) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key, РазоваяРРґРёРЅРёСаИзмерения_Key, ИмпорСер_Key, КодРаздел7РеклараСРёРёРќРРЎ_Key (+7) | reference -> Unknown:27780, reference -> Item:9732 | MEDIUM | P1 |
| DOCUMENT | Document_РћССЂР°РениеРарплаССРРеглУСРµСРµ_РћССЂР°РениеРРЈСРµСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, РЎСРµСРС_Key, РЎСѓР±РєРѕРЅСРѕРС1, РЎСѓР±РєРѕРЅСРѕРС1_Type, РЎСѓР±РєРѕРЅСРѕРС2, РЎСѓР±РєРѕРЅСРѕРС2_Type, РЎСѓР±РєРѕРЅСРѕРС3 (+23) | LineNumber, Ref_Key, РидРасСРµСР°_Key, ПодразделениеРС_Key, ПодразделениеКС_Key, РЎСѓР±РєРѕРЅСРѕРС1_Type, РЎСѓР±РєРѕРЅСРѕРС2_Type, РЎСѓР±РєРѕРЅСРѕРС3_Type (+6) | reference -> Unknown:23796, document_line_has_account -> Account:21096, document_relates_to_individual -> Individual:1404, document_has_department -> Department:792 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРСПредъявленнСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:9420 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_РокуменССРџРѕРєСѓРїР°Селей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to document chain; linked to organization dimension; linked to bank account dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, Контрагент, РљРѕРЅСрагенС_Type (+12) | Date, Number, Posted, Ref, Ref_Type, Type, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+3) | journal_counterparty -> Counterparty:16361, journal_refers_to_document -> Document:9011, journal_organization -> Organization:9011, journal_has_currency -> Currency:9011, journal_responsible -> ResponsiblePerson:7424, journal_counterparty -> BankAccount:250 | MEDIUM | P1 |
| DOCUMENT | Document_РђРєССверкиРзаиморасСРµСРѕРІ_РЎРїРёСЃРѕРєРЎСРµСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, РЎСРµС_Key, УчаствуетВРасчетах, Счет@navigationLinkUrl | LineNumber, Ref_Key, РЎСРµС_Key | document_line_has_account -> Account:16248 | HIGH | P0 |
| DOCUMENT | Document_РеализаСияТоваровУслуг_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, РРґРёРЅРёСаИзмерения_Key, Количество, КоличествоМест, Коэффициент, НоменклаССѓСЂР°_Key, СтавкаНДС (+24) | LineNumber, Ref_Key, РокуменСРћРїСЂРёСодования_Type, РРґРёРЅРёСаИзмерения_Key, РљРѕРґРўРќРР­Р”_Key, НоменклаССѓСЂР°_Key, НомерРРўР”_Key, ПереданнСеССРµСРЈСРµСР°_Key (+7) | document_line_has_account -> Account:39852, reference -> Unknown:7980, document_line_has_item -> Item:7980, reference -> Item:7980 | HIGH | P0 |
| NSI_CATALOG | Catalog_КлассиСРёРєР°СРѕСЂРаняСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, КонтрольноеЧисло (+2) | Code, Parent@navigationLinkUrl, Parent_Key, Ref_Key | reference -> Unknown:7272 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РРёРґСРћСправляемССРокуменСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+5) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key | reference -> Unknown:6828 | MEDIUM | P1 |
| DOCUMENT | Document_РегламенСнаяОпераСРёСЏ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, ВидОперации (+7) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | document_belongs_to_organization -> Organization:6469, document_has_responsible -> ResponsiblePerson:6469 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РРасСРµССРЎРСЋРґРРµСРѕРј_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ФизРРёСРѕ_Key, ОрганизаСРёСЏ_Key (+23) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, РљРѕРґРРѕСРѕРґР°_Key, ОбособленноеПодразделение_Key (+3) | register_recorded_by_document -> Document:5567, register_relates_to_individual -> Individual:5567, register_relates_to_organization -> Organization:5567, register_relates_to_department -> Department:5567 | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеТоваровУслуг | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension; linked to invoice documents | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, Комментарий, РљРѕРЅСрагенС_Key (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РСЂСѓР·РѕРѕСправиСель_Key, РрузополуСР°Сель_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+8) | document_line_has_account -> Account:27441, document_has_counterparty -> Counterparty:16443, document_has_currency -> Currency:5481, document_belongs_to_organization -> Organization:5481, document_has_responsible -> ResponsiblePerson:5397, document_has_warehouse -> Warehouse:3190 (+2) | HIGH | P0 |
| DOCUMENT | Document_РарплаСаКРСплаСеОрганизаСРёР№_РарплаСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ФизлиСРѕ_Key, РЎСѓРјРјР°, КомпенсацияЗаЗадержкуЗарплаты, ВыплаченностьЗарплаты, ВзысканнаяСумма, Физлицо@navigationLinkUrl | LineNumber, Ref_Key, ФизлиСРѕ_Key | document_relates_to_individual -> Individual:4872 | HIGH | P0 |
| NSI_CATALOG | Catalog_РРѕРіРѕРІРѕСЂСРљРѕРЅСрагенСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to contracts; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Owner_Key, Parent_Key, IsFolder, Code (+26) | Code, Description, Owner@navigationLinkUrl, Owner_Key, Parent_Key, Ref_Key, РалюСР°РзаиморасСРµСРѕРІ_Key, РРёРґРзаиморасСРµСРѕРІ_Key (+4) | reference -> Unknown:4696, reference -> Currency:4696, reference -> Organization:4696, reference -> Contract:4696 | HIGH | P0 |
| DOCUMENT | Document_СписаниеСРасСРµСРЅРѕРіРѕРЎСРµСР°_ПереСислениеРарабоСРЅРѕРПлаСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, РедомосССЊ_Key, СуммаПлатежа, ФизлиСРѕ_Key, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, Ведомость@navigationLinkUrl, Физлицо@navigationLinkUrl (+1) | LineNumber, Ref_Key, РедомосССЊ_Key, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, ФизлиСРѕ_Key | reference -> Unknown:4584, document_relates_to_individual -> Individual:4584, document_has_cashflow_article -> CashflowArticle:4584 | HIGH | P0 |
| CHART_OF_ACCOUNTS | ChartOfAccounts_ХозрасСРµСРЅСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Chart of accounts reference layer | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, Code, Description, Order (+10) | Code, Description, ExtDimensionTypes, OffBalance, Parent@navigationLinkUrl, Parent_Key, Ref_Key, Type | reference -> Unknown:3468, reference -> Currency:444, reference -> Department:240 | MEDIUM | P1 |
| DOCUMENT | Document_РџРѕСЃСуплениеТоваровУслуг_Услуги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, Количество, Содержание, НоменклаССѓСЂР°_Key, СтавкаНДС, РЎСѓРјРјР°, СуммаНДС (+23) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, ПодразделениеРР°ССЂР°С_Key, РЎСѓР±РєРѕРЅСРѕ1_Type, РЎСѓР±РєРѕРЅСРѕ2_Type, РЎСѓР±РєРѕРЅСРѕ3_Type, РЎСѓР±РєРѕРЅСРѕРќРЈ1_Type (+5) | document_line_has_account -> Account:10716, reference -> Unknown:8568, document_has_department -> Department:876, document_line_has_item -> Item:324 | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеНаРасСРµСРЅСРРЎСРµС_РасСРёСровкаПлаСРµРР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка, Сделка_Type, КурсВзаиморасчетов, СуммаПлатежа, КратностьВзаиморасчетов (+20) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, ПодразделениеКС_Key, Сделка_Type, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, РЎСѓР±РєРѕРЅСРѕРљС1_Type, РЎСѓР±РєРѕРЅСРѕРљС2_Type (+4) | document_line_has_account -> Account:16152, document_has_counterparty -> Counterparty:7128, document_has_cashflow_article -> CashflowArticle:3300 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРаписиКнигиПокупок_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, РџРѕСЃСавСРёРє_Key, СчетФактура (+23) | Active, LineNumber, Period, Recorder, Recorder_Type, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОплаСС_Type, ИсправленнСРРЎСРµСФакССѓСЂР°_Type (+4) | register_recorded_by_document -> Document:3617, register_relates_to_organization -> Organization:3617, register_relates_to_supplier -> Counterparty:3617, register_relates_to_invoice -> Document:3617, register_relates_to_account -> Account:3533, register_relates_to_counterparty -> Counterparty:60 | HIGH | P0 |
| DOCUMENT | Document_ПередаСаТоваров_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, НоменклаССѓСЂР°_Key, Количество, РЎСРµСРЈСРµСР°_Key, РЎСРµСПередаСРё_Key, Номенклатура@navigationLinkUrl, СчетУчета@navigationLinkUrl (+1) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, РЎСРµСПередаСРё_Key, РЎСРµСРЈСРµСР°_Key | document_line_has_account -> Account:7128, document_line_has_item -> Item:3564 | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСФакСураПолуСеннСР№_РокуменССОснования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to document chain | Ref_Key, LineNumber, ДокументОснование, РокуменСОснование_Type, НомерИсходногоДокумента, ДатаИсходногоДокумента, УчитыватьИсправлениеИсходногоДокумента, НомерИсправленияИсходногоДокумента (+5) | LineNumber, Ref_Key, РокуменСОснование_Type | reference -> Document:3528 | HIGH | P0 |
| NSI_CATALOG | Catalog_РегламенСированнСеОССРµСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+10) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key, РРЅРµСРЅРёРРћССРµСХранилиСРµ_Type, ПериодС_Type | reference -> Unknown:3336 | MEDIUM | P1 |
| DOCUMENT | Document_РџРѕСЃСуплениеНаРасСРµСРЅСРРЎСРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, РалюСР°РокуменСР°_Key, ВидОперации (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОснование_Type, РљРѕРЅСрагенС_Key (+13) | document_has_counterparty -> Counterparty:8970, document_belongs_to_organization -> Organization:6924, document_has_currency -> Currency:3462, document_line_has_account -> Account:3462, document_has_responsible -> ResponsiblePerson:2276, reference -> Counterparty:1704 (+1) | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_РокуменССРџРѕРЈСРµССѓРарплаСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, Месяц (+7) | Date, Number, Posted, Ref, Ref_Type, Type, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | journal_refers_to_document -> Document:3362, journal_organization -> Organization:3362, journal_responsible -> ResponsiblePerson:3350 | MEDIUM | P1 |
| DOCUMENT | Document_РџРѕСЃСуплениеИзПерерабоСРєРё_ИспользованнСеМаСРµСЂРёР°Р»С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, НоменклаССѓСЂР°_Key, Количество, РЎСРµСРЈСРµСР°_Key, РЎСР°ССЊСЏРР°ССЂР°С_Key, ОтражениеВУСН, Номенклатура@navigationLinkUrl (+2) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, РЎСР°ССЊСЏРР°ССЂР°С_Key, РЎСРµСРЈСРµСР°_Key | document_line_has_item -> Item:3324, document_line_has_account -> Account:3324, reference -> Unknown:3324 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРаписиКнигиПокупок | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:3312 | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РќРР¤РИсСисленнСР№13 | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ФизРРёСРѕ_Key, ПериодРегистрации, МесяцНалоговогоПериода, Налог, РљРѕРґРџРѕРћРљРђРўРћ, РљРџРџ (+4) | LineNumber, Ref_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:3283 | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСНаОплаССѓРџРѕРєСѓРїР°Селю_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, НоменклаССѓСЂР°_Key, Цена, РЎСѓРјРјР°, СтавкаНДС, СуммаНДС, Количество (+1) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key | document_line_has_item -> Item:3180 | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСФакСураПолуСеннСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension; linked to invoice documents | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ДатаИсправления, ВидСчетаФактуры (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРјРёСенСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОснование_Type (+8) | document_has_counterparty -> Counterparty:6234, document_line_has_account -> Account:3117, reference -> Document:3117, document_belongs_to_organization -> Organization:3117, document_has_currency -> Currency:3117, document_has_responsible -> ResponsiblePerson:3105 (+1) | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃССведенияОРРѕСодах_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ФизРРёСРѕ_Key, ОрганизаСРёСЏ_Key, РРёРґРРѕСРѕРґР°_Key (+20) | Active, LineNumber, Period, Recorder, Recorder_Type, РРёРґРРѕСРѕРґР°_Key, РидРасСРµСР°_Key, ОбособленноеПодразделение_Key (+2) | register_recorded_by_document -> Document:3041, register_relates_to_individual -> Individual:3041, register_relates_to_organization -> Organization:3041, reference -> Unknown:3041, register_relates_to_department -> Department:3041 | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃССведенияОРРѕСодах | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, ФизРРёСРѕ_Key, МесяцРасчетногоПериода, РРёРґРРѕСРѕРґР°_Key, Результат, РЎРєРёРґРєР°, ОблагаетсяЕНВД (+9) | LineNumber, Ref_Key, РРёРґРРѕСРѕРґР°_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:3041, document_line_has_account -> Account:3041, reference -> Unknown:3041 | HIGH | P0 |
| DOCUMENT | Document_КоррекСировкаРеализаСРёРё_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, Номенклатура, НоменклаССѓСЂР°_Type, Количество, Цена, РЎСѓРјРјР°, СтавкаНДС (+29) | LineNumber, Ref_Key, РљРѕРґРўРќРР­Р”_Key, РљРѕРґРўРќРР­РРоИзменения_Key, НоменклаССѓСЂР°_Type, НомерРРўР”_Key, НомерРРўРРоИзменения_Key, Р РќРџРў_Key (+8) | document_line_has_account -> Account:9888, document_line_has_item -> Item:2472, reference -> Item:2472 | HIGH | P0 |
| DOCUMENT | Document_РарплаСаКРСплаСеОрганизаСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, ПериодРегистрации (+10) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, ПодразделениеОрганизаСРёРё_Key | document_belongs_to_organization -> Organization:2444, document_has_responsible -> ResponsiblePerson:2432 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РСведенияОРРѕСодах_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, ФизРРёСРѕ_Key, РљРѕРґРРѕСРѕРґР°_Key (+20) | Active, LineNumber, Period, Recorder, Recorder_Type, РидРасСРµСР°_Key, РљРѕРґРССРµСР°_Key, РљРѕРґРРѕСРѕРґР°_Key (+4) | register_recorded_by_document -> Document:2284, register_relates_to_organization -> Organization:2284, register_relates_to_individual -> Individual:2284, reference -> Unknown:2284, register_relates_to_department -> Department:2284 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРµССНалоговССАгенСРѕРІРЎРСЋРґРРµСРѕРјРџРѕРќРР¤Р_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ФизРРёСРѕ_Key, ОрганизаСРёСЏ_Key (+9) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, ОрганизаСРёСЏ_Key, ФизРРёСРѕ_Key | register_recorded_by_document -> Document:2284, register_relates_to_individual -> Individual:2284, register_relates_to_organization -> Organization:2284 | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РќРР¤РСведенияОРРѕСодах | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ФизРРёСРѕ_Key, ДатаДохода, МесяцНалоговогоПериода, ПериодРегистрации, РљРѕРґРРѕСРѕРґР°_Key, СуммаДохода (+12) | LineNumber, Ref_Key, РљРѕРґРССРµСР°_Key, РљРѕРґРРѕСРѕРґР°_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:2284, reference -> Unknown:2284 | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РќРР¤РУдерРаннСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ФизРРёСРѕ_Key, ПериодРегистрации, МесяцНалоговогоПериода, СтавкаНалогообложения, Налог, РљРѕРґРџРѕРћРљРђРўРћ (+8) | LineNumber, Ref_Key, РљРѕРґРРѕСРѕРґР°_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:2284 | HIGH | P0 |
| DOCUMENT | Document_РСгрузкаРегламенСированнССРћССРµСРѕРІ_РСРіСЂСѓР·РєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, РўРёРї, ИмяФайла, Текст | LineNumber, Ref_Key | | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃСИсСисленнСРµ_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ФизРРёСРѕ_Key, ОрганизаСРёСЏ_Key, ОбособленноеПодразделение_Key (+32) | Active, LineNumber, Period, Recorder, Recorder_Type, ОбособленноеПодразделение_Key, ОрганизаСРёСЏ_Key, ФизРРёСРѕ_Key | register_recorded_by_document -> Document:2039, register_relates_to_individual -> Individual:2039, register_relates_to_organization -> Organization:2039, register_relates_to_department -> Department:2039 | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, ФизРРёСРѕ_Key, МесяцРасчетногоПериода, ФСС, ФФОМС, ТФОМС, ПФРДоПредельнойВеличины (+28) | LineNumber, Ref_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:2039, document_line_has_account -> Account:2039 | HIGH | P0 |
| DOCUMENT | Document_ТребованиеНакладная_РњР°СРµСЂРёР°Р»С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, НоменклаССѓСЂР°_Key, РЎСРµС_Key, КоличествоМест, РРґРёРЅРёСаИзмерения_Key, Коэффициент, Количество (+14) | LineNumber, Ref_Key, РокуменСРћРїСЂРёСодования_Type, РРґРёРЅРёСаИзмерения_Key, НоменклаССѓСЂР°_Key, НоменклаСурнаяРСЂСѓРїРїР°_Key, НомерРРўР”_Key, ПодразделениеРР°ССЂР°С_Key (+4) | reference -> Unknown:2388, document_line_has_item -> Item:1980, document_line_has_account -> Account:1980 | HIGH | P0 |
| NSI_CATALOG | Catalog_АдреснСеСокраСения | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Уровень, Сокращение | Code, Description, Ref_Key | | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРаписиКнигиПродаж_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, РџРѕРєСѓРїР°Сель_Key, СчетФактура (+22) | Active, LineNumber, Period, Recorder, Recorder_Type, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОплаСС_Type, ИсправленнСРРЎСРµСФакССѓСЂР°_Type (+3) | register_recorded_by_document -> Document:1791, register_relates_to_organization -> Organization:1791, register_relates_to_buyer -> Counterparty:1791, register_relates_to_invoice -> Document:1791, reference -> Document:84, register_relates_to_counterparty -> Counterparty:84 | HIGH | P0 |
| NSI_CATALOG | Catalog_РљРѕРЅСрагенСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to counterparties; linked to bank account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+18) | Code, Description, Parent_Key, Ref_Key, РоловноРРљРѕРЅСрагенС_Key, ОсновноеКонСакСРЅРѕРµРРёСРѕ_Key, РћСЃРЅРѕРІРЅРѕРРанковскиРРЎСРµС_Key, РћСЃРЅРѕРІРЅРѕРРРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+1) | reference -> Counterparty:2892, reference -> Individual:1668, reference -> BankAccount:372 | MEDIUM | P1 |
| DOCUMENT | Document_РЎСРµСФакССѓСЂР°РСданнСР№_РокуменССОснования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to document chain | Ref_Key, LineNumber, ДокументОснование, РокуменСОснование_Type, НомерИсходногоДокумента, ДатаИсходногоДокумента, УчитыватьИсправлениеИсходногоДокумента, НомерИсправленияИсходногоДокумента (+5) | LineNumber, Ref_Key, РокуменСОснование_Type | reference -> Document:1668 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_КассовСРµРокуменСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension; linked to bank account dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, РџСЂРёС…РѕРґ (+15) | Date, Number, Posted, Ref, Ref_Type, Type, РалюСР°_Key, РидОпераСРёРё_Type (+4) | journal_refers_to_document -> Document:1655, journal_organization -> Organization:1655, journal_has_currency -> Currency:1655, reference -> Unknown:1655, journal_account -> Account:1655, journal_counterparty -> Counterparty:841 (+2) | MEDIUM | P1 |
| DOCUMENT | Document_РЎСРµСНаОплаССѓРџРѕРєСѓРїР°Селю | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, АдресДоставки, РЎССЂСѓРєСурнаяРРґРёРЅРёСР°_Key (+26) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Key, ОрганизаСРёСЏ_Key (+5) | document_has_counterparty -> Counterparty:3178, document_line_has_account -> Account:3178, document_belongs_to_organization -> Organization:3178, reference -> Unknown:1841, document_has_currency -> Currency:1589, document_has_responsible -> ResponsiblePerson:1577 (+1) | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСФакССѓСЂР°РСданнСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension; linked to invoice documents | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ДатаВыставления, ВидСчетаФактуры (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РлавнСРРСѓСгалСер_Key, РРѕРіРѕРІРѕСЂРљРѕРјРёСенСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+10) | document_line_has_account -> Account:3104, document_has_counterparty -> Counterparty:3092, reference -> Unknown:3078, reference -> Document:1546, document_belongs_to_organization -> Organization:1546, document_has_currency -> Currency:1546 (+2) | HIGH | P0 |
| DOCUMENT | Document_ОпераСРёСЏРСѓС… | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, СуммаОперации (+13) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, РЎРїРѕСЃРѕР±Раполнения_Type, ТиповаяОпераСРёСЏ_Type | document_belongs_to_organization -> Organization:1503, document_has_responsible -> ResponsiblePerson:1503, reference -> Unknown:1503 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРаписиКнигиПродаж | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:1488 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРѕРґСРџСЂРёРЈРЎРќ_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ОрганизаСРёСЏ_Key, СтатусыОплатыРасходовУСН (+24) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, РалюСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Type (+6) | register_recorded_by_document -> Document:1476, register_relates_to_organization -> Organization:1476, register_relates_to_account -> Document:1476, register_relates_to_currency -> Currency:1476, register_relates_to_account -> Account:1164, register_relates_to_counterparty -> Counterparty:972 (+3) | HIGH | P0 |
| DOCUMENT | Document_РеализаСияТоваровУслуг | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ВидОперации, РанковскиРРЎСРµСОрганизаСРёРё_Key (+32) | Date, Number, Posted, Ref_Key, РанковскиРРЎСРµСОрганизаСРёРё_Key, РалюСР°РокуменСР°_Key, РлавнСРРСѓСгалСер_Key, РСЂСѓР·РѕРѕСправиСель_Key (+19) | document_line_has_account -> Account:9178, reference -> Unknown:5321, document_has_counterparty -> Counterparty:4290, document_belongs_to_organization -> Organization:1850, document_has_currency -> Currency:1430, document_has_responsible -> ResponsiblePerson:1411 (+1) | HIGH | P0 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РќРР¤РПредосСавленнСРµРССРµСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ФизРРёСРѕ_Key, ПериодРегистрации, МесяцНалоговогоПериода, РљРѕРґРССРµСР°_Key, ПримененныйВычет, РљРѕРґРџРѕРћРљРђРўРћ (+5) | LineNumber, Ref_Key, РљРѕРґРССРµСР°_Key, ФизРРёСРѕ_Key | document_relates_to_individual -> Individual:1421, reference -> Unknown:1421 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РПредосСавленнСеССандарСРЅСРµРССРµССФизРРёС†_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ФизРРёСРѕ_Key, ОрганизаСРёСЏ_Key, МесяцНалоговогоПериода (+12) | Active, LineNumber, Period, Recorder, Recorder_Type, РљРѕРґРССРµСР°_Key, ОбособленноеПодразделение_Key, ОрганизаСРёСЏ_Key (+2) | register_recorded_by_document -> Document:1405, register_relates_to_individual -> Individual:1405, register_relates_to_organization -> Organization:1405, reference -> Unknown:1405, register_relates_to_department -> Department:1405 | HIGH | P0 |
| DOCUMENT | Document_РђРєССверкиРзаиморасСРµСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РљРѕРЅСрагенС_Key (+22) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Key, ОрганизаСРёСЏ_Key (+3) | document_has_counterparty -> Counterparty:2145, document_belongs_to_organization -> Organization:1456, document_has_currency -> Currency:1384, document_has_responsible -> ResponsiblePerson:996 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРµССРџРѕРЎССЂР°СРѕРІСРјРзносам | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:1272 | HIGH | P0 |
| NSI_CATALOG | Catalog_РССРµССРќРФР| snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, РљРѕРґРляОССРµСРЅРѕСЃСРё2007, РљРѕРґРляОССРµСРЅРѕСЃСРё2008 (+13) | Code, Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_РСгрузкаРегламенСированнССРћССРµСРѕРІ_Основная | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, Основание_Key, НомерСтрокиТекстаВыгрузки, Основание@navigationLinkUrl | LineNumber, Ref_Key, Основание_Key | reference -> Unknown:1272 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРµССРџРѕРЎССЂР°СРѕРІСРјРзносам_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ОрганизаСРёСЏ_Key, ВидПлатежа (+16) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, ОрганизаСРёСЏ_Key | register_recorded_by_document -> Document:1271, register_relates_to_organization -> Organization:1271, register_relates_to_account -> Account:1271 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_РЈСРµСРќРР¤РРёРРЎРќ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, НалоговыйПериод (+7) | Date, Number, Posted, Ref, Ref_Type, Type, НалоговСРПериод_Type, ОрганизаСРёСЏ_Key (+1) | journal_refers_to_document -> Document:1242, journal_organization -> Organization:1242, journal_responsible -> ResponsiblePerson:1242 | MEDIUM | P1 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, Комментарий (+16) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | document_belongs_to_organization -> Organization:1242, document_has_responsible -> ResponsiblePerson:1242 | HIGH | P0 |
| NSI_CATALOG | Catalog_РРѕСРѕРґСРќРФР| snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, СтавкаНалогообложенияРезидента, КодДляОтчетности (+2) | Code, Description, Ref_Key | | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_КнигаУСРµСР°РРѕСодовИРасСРѕРґРѕРІ_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, РСЂР°СР°4, РСЂР°СР°5 (+11) | Active, LineNumber, Period, Recorder, Recorder_Type, ОрганизаСРёСЏ_Key | register_recorded_by_document -> Document:996, register_relates_to_organization -> Organization:996 | HIGH | P0 |
| DOCUMENT | Document_РегламенСированнСРРћССРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Date, Posted, ИсточникОтчета, НаименованиеОтчета, ОрганизаСРёСЏ_Key (+23) | Date, Posted, Ref_Key, РаннСеОССРµСР°_Type, РеревоНасССЂРѕРРєРёРЎСраниц_Type, РокуменСОснование_Type, ОрганизаСРёСЏ_Key | document_belongs_to_organization -> Organization:957 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РРасСРµССРЎРСЋРґРРµСРѕРј | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:924 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃССведенияОРРѕСодах | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:924 | HIGH | P0 |
| DOCUMENT | Document_РСгрузкаРегламенСированнССРћССРµСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ПериодПо, ОрганизаСРёСЏ_Key (+6) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key | document_belongs_to_organization -> Organization:920 | HIGH | P0 |
| NSI_CATALOG | Catalog_РасСРѕРґСРСѓРґСѓСРёСПериодов | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+15) | Code, Description, Parent_Key, Ref_Key, РЎСѓР±РєРѕРЅСРѕРР°ССЂР°С1_Type, РЎСѓР±РєРѕРЅСРѕРР°ССЂР°С2_Type, РЎСѓР±РєРѕРЅСРѕРР°ССЂР°С3_Type, РЎСРµСРР°ССЂР°С_Key | reference -> Account:858, reference -> Unknown:858 | MEDIUM | P1 |
| DOCUMENT_JOURNAL | DocumentJournal_РегламенСРЅСРµРокуменСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, Месяц (+5) | Date, Number, Posted, Ref, Ref_Type, Type, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | journal_refers_to_document -> Document:918, journal_organization -> Organization:918, journal_responsible -> ResponsiblePerson:918 | MEDIUM | P1 |
| DOCUMENT | Document_РћССЂР°РениеРарплаССРРеглУСРµСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, ПериодРегистрации (+5) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | document_belongs_to_organization -> Organization:918, document_has_responsible -> ResponsiblePerson:918 | HIGH | P0 |
| NSI_CATALOG | Catalog_РЎРѕСраненнСеНасССЂРѕРРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Description, ТипНастройки, НастраиваемыйОбъект, НасСраиваемСРОбъекС_Type (+8) | Description, Ref_Key, НасСраиваемСРОбъекС_Type, ХранилиСеНасСроек_Type | reference -> Unknown:900 | MEDIUM | P1 |
| DOCUMENT_JOURNAL | DocumentJournal_РџСЂРѕРёР·РІРѕРґСЃСвеннСРµРокуменСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to counterparties; linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, Склад_Key, РљРѕРЅСрагенС_Key (+16) | Date, Number, Posted, Ref, Ref_Type, Type, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+5) | journal_organization -> Organization:1092, journal_refers_to_document -> Document:912, journal_warehouse -> Warehouse:912, journal_responsible -> ResponsiblePerson:912, journal_counterparty -> Counterparty:744, journal_has_currency -> Currency:372 | MEDIUM | P1 |
| DOCUMENT | Document_РџСЂРёСРѕРґРЅСРКассовСРОрдер_РасСРёСровкаПлаСРµРР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка, Сделка_Type, КурсВзаиморасчетов, СуммаПлатежа, КратностьВзаиморасчетов (+12) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка_Type, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, РЎСРµСНаОплаССѓ_Key, РЎСРµСРЈСРµСаРасСРµСовПоАвансам_Key, РЎСРµСРЈСРµСаРасСРµСРѕРІРЎРљРѕРЅСрагенСРѕРј_Key | document_line_has_account -> Account:3468, document_has_counterparty -> Counterparty:1092, document_has_cashflow_article -> CashflowArticle:828 | HIGH | P0 |
| NSI_CATALOG | Catalog_РЎРѕСраненнСеНасССЂРѕРРєРё_ПользоваСели | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, LineNumber, Пользователь, ПользоваСель_Type, ПравоИзменения | LineNumber, Ref_Key, ПользоваСель_Type | reference -> ResponsiblePerson:900 | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РСведенияОРРѕСодах | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:888 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РЎССЂР°СРѕРІСРµРР·РЅРѕСЃСИсСисленнСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:888 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_КнигаУСРµСР°РРѕСодовИРасСРѕРґРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:876 | HIGH | P0 |
| DOCUMENT | Document_РасСРѕРґРЅСРКассовСРОрдер_РасСРёСровкаПлаСРµРР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, КурсВзаиморасчетов, СуммаПлатежа, КратностьВзаиморасчетов, СуммаВзаиморасчетов, СтавкаНДС (+11) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, Сделка_Type, РЎСР°ССЊСЏРРІРёРенияРенеРРЅСССредсСРІ_Key, РЎСРµСРЈСРµСаРасСРµСовПоАвансам_Key, РЎСРµСРЈСРµСаРасСРµСРѕРІРЎРљРѕРЅСрагенСРѕРј_Key | document_line_has_account -> Account:3168, document_has_counterparty -> Counterparty:948, document_has_cashflow_article -> CashflowArticle:780 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРµССНалоговССАгенСРѕРІРЎРСЋРґРРµСРѕРјРџРѕРќРФР| snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:864 | HIGH | P0 |
| DOCUMENT | Document_РџСЂРёСРѕРґРЅСРКассовСРОрдер | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension; linked to bank account dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РЎСРµСКасса_Key (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОснование_Type, РљРѕРЅСрагенС_Type (+10) | document_has_counterparty -> Counterparty:1028, document_belongs_to_organization -> Organization:848, document_line_has_account -> Account:848, document_has_currency -> Currency:848, document_has_responsible -> ResponsiblePerson:485, document_has_counterparty -> BankAccount:250 (+2) | HIGH | P0 |
| DOCUMENT | Document_РеализаСияТоваровУслуг_Услуги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, Содержание, Количество, НоменклаССѓСЂР°_Key, СтавкаНДС, РЎСѓРјРјР°, СуммаНДС (+10) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, РЎСѓР±РєРѕРЅСРѕ_Type, РЎСРµСРРѕСРѕРґРѕРІ_Key, РЎСРµСРасСРѕРґРѕРІ_Key, РЎСРµСРЈСРµСаНРСПоРеализаСРёРё_Key | document_line_has_account -> Account:2520, reference -> Item:840, document_line_has_item -> Item:816 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РеализаСияУслуг_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, РЎСРµСРасСРѕРґРѕРІ_Key, НоменклаСурнаяРСЂСѓРїРїР°_Key (+4) | Active, LineNumber, Period, Recorder, Recorder_Type, НоменклаСурнаяРСЂСѓРїРїР°_Key, ОрганизаСРёСЏ_Key, РЎСРµСРасСРѕРґРѕРІ_Key | register_recorded_by_document -> Document:835, register_relates_to_organization -> Organization:835, register_relates_to_account -> Account:835, register_relates_to_item -> Item:835 | HIGH | P0 |
| DOCUMENT | Document_РасСРѕРґРЅСРКассовСРОрдер | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, ВидОперации (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РокуменСОснование_Type, РљРѕРЅСрагенС_Type (+11) | document_belongs_to_organization -> Organization:1095, document_has_counterparty -> Counterparty:891, document_line_has_account -> Account:807, document_has_currency -> Currency:807, reference -> Unknown:468, document_has_responsible -> ResponsiblePerson:353 (+1) | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРР¤РПредосСавленнСеССандарСРЅСРµРССРµССФизРРёС† | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:792 | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСНаОплаССѓРџРѕРєСѓРїР°Селю_Услуги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, Содержание, Количество, Цена, РЎСѓРјРјР°, СтавкаНДС, СуммаНДС (+2) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key | document_line_has_item -> Item:672 | HIGH | P0 |
| DOCUMENT_JOURNAL | DocumentJournal_СкладскиеРокуменСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, Склад_Key, ОрганизаСРёСЏ_Key (+7) | Date, Number, Posted, Ref, Ref_Type, Type, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key (+1) | journal_refers_to_document -> Document:666, journal_warehouse -> Warehouse:666, journal_organization -> Organization:666, journal_responsible -> ResponsiblePerson:666 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РџСЂРѕСРёРµРРѕСРѕРґСИРасСРѕРґС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+3) | Code, Description, Parent_Key, Ref_Key | | MEDIUM | P1 |
| CHART_OF_CHARACTERISTIC_TYPES | ChartOfCharacteristicTypes_РРёРґСРЎСѓР±РєРѕРЅСоХозрасСРµСРЅСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, ValueType | Code, Description, Ref_Key, ValueType | | LOW | P2 |
| DOCUMENT_JOURNAL | DocumentJournal_РегламенСРЅСРµРокуменССРќРРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key (+4) | Date, Number, Posted, Ref, Ref_Type, Type, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | journal_refers_to_document -> Document:572, journal_organization -> Organization:572, journal_responsible -> ResponsiblePerson:572 | MEDIUM | P1 |
| DOCUMENT | Document_ТребованиеНакладная | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, Склад_Key (+29) | Date, Number, Posted, Ref_Key, РљРѕРЅСрагенС_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, ПодразделениеРР°ССЂР°С_Key (+9) | document_belongs_to_organization -> Organization:540, document_has_warehouse -> Warehouse:540, document_has_responsible -> ResponsiblePerson:540, document_line_has_account -> Account:540, reference -> Unknown:540, document_line_has_item -> Item:540 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРклюСеннСРРРЎСРѕРёРјРѕСЃССЊ_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, СчетФактура, РЎСРµСФакССѓСЂР°_Type (+10) | Active, LineNumber, Period, Recorder, Recorder_Type, ОрганизаСРёСЏ_Key, РџРѕСЃСавСРёРє_Key, РЎСРµСРЈСРµСаНРРЎ_Key (+1) | register_recorded_by_document -> Document:534, register_relates_to_organization -> Organization:534, register_relates_to_invoice -> Document:534, register_relates_to_supplier -> Counterparty:534, register_relates_to_account -> Account:84 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџСЂРѕСиеРасСРµСС_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, RecordType, ОрганизаСРёСЏ_Key, РЎСРµСРЈСРµСР°_Key (+9) | Active, LineNumber, Period, RecordType, Recorder, Recorder_Type, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Type (+3) | register_recorded_by_document -> Document:528, register_relates_to_organization -> Organization:528, register_relates_to_account -> Account:528, register_relates_to_account -> Document:528, register_relates_to_counterparty -> Counterparty:168 | HIGH | P0 |
| NSI_CATALOG | Catalog_ОснованияРСслугиРРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, РљРѕРґРляОССРµСРЅРѕСЃСРё2010 | Code, Description, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЎСР°ССЊРёРР°ССЂР°С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+2) | Code, Description, Parent_Key, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РанковскиеССРµСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Owner, Owner_Type, Code, Description (+15) | Code, Description, Owner, Owner_Type, Ref_Key, Ранк_Key, РанкРляРасСРµСРѕРІ_Key, РалюСР°РенеРРЅСССредсСРІ_Key | reference -> Account:960, reference -> Unknown:480, reference -> Currency:480, reference -> Counterparty:408, reference -> Organization:72 | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_РќРРЎРклюСеннСРРРЎСРѕРёРјРѕСЃССЊ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:468 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РеализаСияУслуг | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:468 | HIGH | P0 |
| NSI_CATALOG | Catalog_РРѕСРѕРґСРџРѕРЎССЂР°СРѕРІСРјРзносам | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Description, ВходитВБазуФОМС, ВходитВБазуФСС, ВходитВБазуПФР (+1) | Description, Ref_Key | | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџРѕСЃРѕР±РёСЏРџРѕРЈСРѕРґСѓРаРебенкомРоПолуСРѕСЂР°РРµС_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, УдалиСьФизРРёСРѕ_Key, ОблагаетсяЕНВД (+12) | Active, LineNumber, Period, Recorder, Recorder_Type, ОрганизаСРёСЏ_Key, РЎРѕССЂСѓРґРЅРёРє_Key, УдалиСьФизРРёСРѕ_Key (+1) | register_recorded_by_document -> Document:384, register_relates_to_organization -> Organization:384, register_relates_to_individual -> Individual:384, reference -> Unknown:384 | HIGH | P0 |
| NSI_CATALOG | Catalog_РРёРґСРљРѕРЅСакСРЅРѕРИнСРѕСЂРјР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, РўРёРї, ВидОбъектаКонтактнойИнформации (+4) | Code, Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РџРѕСЃРѕР±РёСЏРџРѕРЈСРѕРґСѓРаРебенкомРоПолуСРѕСЂР°РРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, РЎРѕССЂСѓРґРЅРёРє_Key, ОблагаетсяЕНВД, СреднийДневнойЗаработок, ПособиеПоУходуЗаПервымРебенком, ПособиеПоУходуЗаВторымРебенком, ПериодДействияНачало (+8) | LineNumber, Ref_Key, РЎРѕССЂСѓРґРЅРёРє_Key, ФизРРёСРѕ_Key | reference -> Unknown:384, document_relates_to_individual -> Individual:384 | HIGH | P0 |
| DOCUMENT | Document_КомплекСР°СияНоменклаССѓСЂС_КомплекССѓСЋСРёРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, ДоляСтоимости, Количество, НоменклаССѓСЂР°_Key, РЎСѓРјРјР°, РЎСРµСРЈСРµСР°_Key, НомерРРўР”_Key (+6) | LineNumber, Ref_Key, РокуменСРћРїСЂРёСодования_Type, НоменклаССѓСЂР°_Key, НомерРРўР”_Key, РЎСранаПроисСРѕРдения_Key, РЎСРµСРЈСРµСР°_Key | document_line_has_item -> Item:372, document_line_has_account -> Account:372 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџРѕСЃРѕР±РёСЏРџРѕРЈСРѕРґСѓРаРебенкомРоПолуСРѕСЂР°РРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:360 | HIGH | P0 |
| NSI_CATALOG | Catalog_РћСЃРѕР±СеУсловияТруда | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, РљРѕРґРляОССРµСРЅРѕСЃСРё2010 | Code, Description, Ref_Key | | MEDIUM | P1 |
| CHART_OF_CHARACTERISTIC_TYPES | ChartOfCharacteristicTypes_НасССЂРѕРкиПользоваСелей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+2) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key, ValueType | reference -> Unknown:132 | LOW | P2 |
| ACCUMULATION_REGISTER | AccumulationRegister_РасСРѕРґСРџСЂРёРЈРЎРќ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:312 | HIGH | P0 |
| DOCUMENT | Document_РоверенносССЊ_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, НаименованиеТовара, РРґРёРЅРёСаПоКлассиСРёРєР°СРѕСЂСѓ_Key, Количество, ЕдиницаПоКлассификатору@navigationLinkUrl | LineNumber, Ref_Key, РРґРёРЅРёСаПоКлассиСРёРєР°СРѕСЂСѓ_Key | document_line_has_item -> Item:312, reference -> Unknown:312 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџСЂРѕСиеРасСРµСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:300 | HIGH | P0 |
| NSI_CATALOG | Catalog_ФизиСескиеРРёСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+7) | Code, Description, Parent_Key, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_ФормированиеРаписеРРљРЅРёРіРёРџРѕРєСѓРїРѕРє_РССРµСРџРѕРџСЂРёРѕР±СЂРµСеннСмЦенносССЏРј | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to document chain | Ref_Key, LineNumber, ВидЦенности, РџРѕСЃСавСРёРє_Key, СчетФактура, РЎСРµСФакССѓСЂР°_Type, СтавкаНДС, СуммаБезНДС (+18) | LineNumber, Ref_Key, РокуменСОплаСС_Type, РокуменСРћСРіСЂСѓР·РєРё_Type, ИсправленнСРРЎСРµСФакССѓСЂР°_Type, РџРѕСЃСавСРёРє_Key, РЎСРµСРЈСРµСаНРРЎ_Key, РЎСРµСФакССѓСЂР°_Type | document_line_has_account -> Account:566, document_has_supplier -> Counterparty:283, document_relates_to_invoice -> Document:283 | HIGH | P0 |
| DOCUMENT | Document_ФормированиеРаписеРРљРЅРёРіРёРџРѕРєСѓРїРѕРє | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key (+10) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | document_belongs_to_organization -> Organization:274, document_has_responsible -> ResponsiblePerson:274 | HIGH | P0 |
| DOCUMENT | Document_ФормированиеРаписеРКнигиПродаж | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key (+12) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key | document_belongs_to_organization -> Organization:274, document_has_responsible -> ResponsiblePerson:274 | HIGH | P0 |
| NSI_CATALOG | Catalog_ПарамеССЂСИсСисляемогоСССЂР°СРѕРІРѕРіРѕРЎСР°РР°2014 | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description | Code, Description, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РокуменССРЈРґРѕСЃСоверяюСРёРµРРёСРЅРѕСЃССЊ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Description, КодИМНС, КодПФР | Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_РасСРѕРґРЅСРКассовСРОрдер_РСплаСР°РарабоСРЅРѕРПлаСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, РедомосССЊ_Key, СуммаКВыплате, Ведомость@navigationLinkUrl | LineNumber, Ref_Key, РедомосССЊ_Key | reference -> Unknown:240 | HIGH | P0 |
| NSI_CATALOG | Catalog_РЎРѕР±ССРёСЏРћРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Комментарий, ВидСобытияОС | Code, Description, Ref_Key | | MEDIUM | P1 |
| CHART_OF_CHARACTERISTIC_TYPES | ChartOfCharacteristicTypes_НазнаСенияСвоРСЃСРІРљР°СегориРОбъекСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+2) | Code, Description, Parent@navigationLinkUrl, Parent_Key, Ref_Key, ValueType | reference -> Unknown:192 | LOW | P2 |
| NSI_CATALOG | Catalog_РЎСР°ССЊРёРРІРёРенияРенеРРЅСССредсСРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+1) | Code, Description, Parent_Key, Ref_Key | | MEDIUM | P1 |
| ACCUMULATION_REGISTER | AccumulationRegister_РСРїСѓСЃРєРџСЂРѕРґСѓРєСииУслуг_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to account dimension; linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, РџСЂРѕРґСѓРєСРёСЏ_Key, РЎСРµСРР°ССЂР°С_Key (+19) | Active, LineNumber, Period, Recorder, Recorder_Type, НоменклаСурнаяРСЂСѓРїРїР°_Key, ОрганизаСРёСЏ_Key, Подразделение_Key (+7) | register_relates_to_account -> Account:384, register_recorded_by_document -> Document:192, register_relates_to_organization -> Organization:192, reference -> Unknown:192, register_relates_to_department -> Department:192, register_relates_to_item -> Item:192 (+2) | HIGH | P0 |
| DOCUMENT | Document_ПередаСаТоваров | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, РалюСР°РокуменСР°_Key, ВидОперации (+27) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РСЂСѓР·РѕРѕСправиСель_Key, РрузополуСР°Сель_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+8) | document_line_has_account -> Account:576, reference -> Unknown:576, document_has_counterparty -> Counterparty:384, document_has_currency -> Currency:192, document_belongs_to_organization -> Organization:192, document_has_responsible -> ResponsiblePerson:192 (+1) | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеИзПерерабоСРєРё_РџСЂРѕРґСѓРєСРёСЏ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, Количество, НоменклаССѓСЂР°_Key, СуммаПлановая, ПлановаяСтоимость, РЎСРµС_Key, РЎРїРµСРёСРёРєР°СРёСЏ_Key (+2) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, РЎРїРµСРёСРёРєР°СРёСЏ_Key, РЎСРµС_Key | document_line_has_item -> Item:192, document_line_has_account -> Account:192 | HIGH | P0 |
| DOCUMENT | Document_РоверенносССЊ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, ФизРРёСРѕ_Key (+17) | Date, Number, Posted, Ref_Key, РанковскиРРЎСРµСОрганизаСРёРё_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Key, ОрганизаСРёСЏ_Key (+3) | document_belongs_to_organization -> Organization:374, document_has_counterparty -> Counterparty:374, document_relates_to_individual -> Individual:175, document_has_responsible -> ResponsiblePerson:127 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РСРїСѓСЃРєРџСЂРѕРґСѓРєСииУслуг | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:180 | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеИзПерерабоСРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension; linked to invoice documents | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, РалюСР°РокуменСР°_Key, РљРѕРЅСрагенС_Key (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Key, НоменклаСурнаяРСЂСѓРїРїР°_Key (+9) | document_line_has_account -> Account:1092, document_has_counterparty -> Counterparty:540, document_has_currency -> Currency:180, document_belongs_to_organization -> Organization:180, document_has_responsible -> ResponsiblePerson:180, document_line_has_item -> Item:180 (+3) | HIGH | P0 |
| DOCUMENT | Document_РџРѕСЃСуплениеИзПерерабоСРєРё_Услуги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, НоменклаССѓСЂР°_Key, Количество, Цена, РЎСѓРјРјР°, СтавкаНДС, РЎСРµСРЈСРµСаНРРЎ_Key (+7) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, РЎСР°ССЊСЏРР°ССЂР°С_Key, РЎСРµСРЈСРµСаНРРЎ_Key | document_line_has_item -> Item:180, document_line_has_account -> Account:180, reference -> Unknown:180 | HIGH | P0 |
| DOCUMENT | Document_АвансовСРРћССРµС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, РалюСР°РокуменСР°_Key, Комментарий (+25) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, Склад_Key (+2) | document_has_currency -> Currency:144, document_belongs_to_organization -> Organization:144, document_relates_to_individual -> Individual:144, document_has_responsible -> ResponsiblePerson:144, document_has_warehouse -> Warehouse:132 | HIGH | P0 |
| NSI_CATALOG | Catalog_ПользоваСели | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+2) | Code, Description, Parent_Key, Ref_Key, ФизРРёСРѕ_Key | reference -> Unknown:96 | MEDIUM | P1 |
| DOCUMENT | Document_АвансовСРРћССРµС_РўРѕРІР°СЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, ВидДокВходящий, НомерВходящегоДокумента, ДатаВходящегоДокумента, РџРѕСЃСавСРёРє_Key, РЎСРµСФакССѓСЂР°_Key, НоменклаССѓСЂР°_Key (+17) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, НомерРРўР”_Key, РџРѕСЃСавСРёРє_Key, РЎСранаПроисСРѕРдения_Key, РЎСРµСРЈСРµСР°_Key, РЎСРµСРЈСРµСаНРРЎ_Key (+1) | document_line_has_account -> Account:264, document_has_supplier -> Counterparty:132, document_line_has_item -> Item:132 | HIGH | P0 |
| DOCUMENT | Document_ФормированиеРаписеРРљРЅРёРіРёРџРѕРєСѓРїРѕРє_РССРµСПриИзмененииССРѕРёРјРѕСЃСРёРРЎСоронуУменьСения | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to invoice documents | Ref_Key, LineNumber, ВидЦенности, РџРѕСЃСавСРёРє_Key, РЎСРµСФакССѓСЂР°_Key, СтавкаНДС, СуммаБезНДС, НДС (+5) | LineNumber, Ref_Key, ИсправленнСРРЎСРµСФакССѓСЂР°_Key, РџРѕСЃСавСРёРє_Key, РЎСРµСРЈСРµСаНРРЎ_Key, РЎСРµСФакССѓСЂР°_Key | document_has_supplier -> Counterparty:132, document_relates_to_invoice -> InvoiceDocument:132, document_line_has_account -> Account:132 | HIGH | P0 |
| DOCUMENT | Document_КомплекСР°СияНоменклаССѓСЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ВидОперации, Количество (+22) | Date, Number, Posted, Ref_Key, НоменклаССѓСЂР°_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, Склад_Key (+5) | document_line_has_item -> Item:252, document_belongs_to_organization -> Organization:126, document_has_responsible -> ResponsiblePerson:126, document_has_warehouse -> Warehouse:126, document_line_has_account -> Account:126 | HIGH | P0 |
| DOCUMENT | Document_КоррекСировкаРеализаСРёРё | snapshot_2020-03.ndjson, snapshot_2020-04.ndjson, snapshot_2020-05.ndjson, snapshot_2020-06.ndjson (+6) | Primary document fact entity for operational accounting events. linked to counterparties; linked to document chain; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, АдресДоставки, РанковскиРРЎСРµСОрганизаСРёРё_Key (+32) | Date, Number, Posted, Ref_Key, РанковскиРРЎСРµСОрганизаСРёРё_Key, РалюСР°РокуменСР°_Key, РСЂСѓР·РѕРѕСправиСель_Key, РрузополуСР°Сель_Key (+12) | reference -> Document:248, document_has_counterparty -> Counterparty:248, document_belongs_to_organization -> Organization:124, document_has_responsible -> ResponsiblePerson:124, document_has_warehouse -> Warehouse:124, document_has_currency -> Currency:124 (+1) | HIGH | P0 |
| NSI_CATALOG | Catalog_РРѕСРѕРґСРРЎРќ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, ВходитВБазуФОМС, ВходитВБазуФСС (+1) | Code, Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_АвансовСРРћССРµС_РСданнСРµРђРІР°РЅСЃС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to document chain | Ref_Key, LineNumber, ДокументАванса, РокуменСАванса_Type, РЎСѓРјРјР° | LineNumber, Ref_Key, РокуменСАванса_Type | reference -> Document:120 | HIGH | P0 |
| NSI_CATALOG | Catalog_ТерриСориальнСеУсловия | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description | Code, Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_АвансовСРРћССРµС_РџСЂРѕСее | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, ВидДокВходящий, НомерВходящегоДокумента, ДатаВходящегоДокумента, РџРѕСЃСавСРёРє_Key, РЎСРµСФакССѓСЂР°_Key, НоменклаССѓСЂР°_Key (+27) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, ПодразделениеРР°ССЂР°С_Key, РџРѕСЃСавСРёРє_Key, РЎСѓР±РєРѕРЅСРѕ1_Type, РЎСѓР±РєРѕРЅСРѕ2_Type, РЎСѓР±РєРѕРЅСРѕ3_Type (+7) | document_line_has_account -> Account:216, reference -> Unknown:216 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџРѕСЃРѕР±РёСЏРЎРѕСиальномуСССЂР°Сованию_RecordType | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain; linked to organization dimension | Period, Recorder, Recorder_Type, LineNumber, Active, ОрганизаСРёСЏ_Key, ВидПособияСоциальногоСтрахования, ОблагаетсяЕНВД (+11) | Active, LineNumber, Period, Recorder, Recorder_Type, РокуменСОснование_Key, ОрганизаСРёСЏ_Key, РЎРѕССЂСѓРґРЅРёРє_Key | register_recorded_by_document -> Document:96, register_relates_to_organization -> Organization:96, reference -> Unknown:96 | HIGH | P0 |
| NSI_CATALOG | Catalog_КлассиСРёРєР°СРѕСЂРРґРёРЅРёСИзмерения | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, НаименованиеПолное | Code, Description, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_РќРР¤РРёРРЎРќРРѕСРѕРґСИНалоги_РџРѕСЃРѕР±РёСЏРЎРѕСиальномуСССЂР°Сованию | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ОплаченныеДни, СуммаВсего, СуммаСверхНорм, РЎРѕССЂСѓРґРЅРёРє_Key, ОблагаетсяЕНВД, ВидПособияСоциальногоСтрахования (+7) | LineNumber, Ref_Key, РЎРѕССЂСѓРґРЅРёРє_Key, ФизРРёСРѕ_Key | reference -> Unknown:96, document_relates_to_individual -> Individual:96 | HIGH | P0 |
| DOCUMENT | Document_ФормированиеРаписеРКнигиПродаж_РРѕСЃСЃСановленПоАвансам | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to document chain | Ref_Key, LineNumber, РџРѕСЃСавСРёРє_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, СчетФактура, РЎСРµСФакССѓСЂР°_Type, СтавкаНДС, СуммаБезНДС (+7) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, ИсправленнСРРЎСРµСФакССѓСЂР°_Key, РџРѕСЃСавСРёРє_Key, РЎСРµСФакССѓСЂР°_Type | document_has_supplier -> Counterparty:84, document_has_counterparty -> Counterparty:84, document_relates_to_invoice -> Document:84 | HIGH | P0 |
| ACCUMULATION_REGISTER | AccumulationRegister_РџРѕСЃРѕР±РёСЏРЎРѕСиальномуСССЂР°Сованию | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Accumulation register layer (balances/turnovers/tax movements). linked to document chain | Recorder, Recorder_Type, RecordSet | Recorder, Recorder_Type | register_recorded_by_document -> Document:72 | HIGH | P0 |
| NSI_CATALOG | Catalog_ОснованияИсСисляемогоТрудовогоССР°РР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description | Code, Description, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_НоменклаССѓСЂРЅСРµРСЂСѓРїРїС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description | Code, Description, Parent_Key, Ref_Key | | MEDIUM | P1 |
| DOCUMENT | Document_РЎСРµСФакСураПолуСеннСР№_РђРІР°РЅСЃС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, РЎСѓРјРјР°, СуммаНДС, СтавкаНДС, СуммаДоКорректировки, СтавкаНДСДоКорректировки, СуммаНДСДоКорректировки (+1) | LineNumber, Ref_Key, КоррекСируемСРРЎСРµСФакССѓСЂР°_Key | | HIGH | P0 |
| NSI_CATALOG | Catalog_РалюСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, НаименованиеПолное, ПараметрыПрописиНаРусском | Code, Description, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РРЅРµСниеОбрабоСРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+6) | Code, Description, Parent_Key, Ref_Key, ХранилиСРµРРЅРµСРЅРµРОбрабоСРєРё_Type | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РРѕР»РРЅРѕСЃСиОрганизаСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, ЯвляетсяФармацевтическойДолжностью, ТрудоваяФункСРёСЏ_Key | Code, Description, Ref_Key, ТрудоваяФункСРёСЏ_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_ОрганизаСРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to bank account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Префикс, ИНН (+32) | Code, Description, Ref_Key, РоловнаяОрганизаСРёСЏ_Key, ИндивидуальнСРПредпринимаСель_Key, РћСЃРЅРѕРІРЅРѕРРанковскиРРЎСРµС_Key, РегисССЂР°СРёСЏРИФНС_Key, РЎСранаПосСоянногоМесСРѕРЅР°СРѕРдения_Key (+3) | reference -> Individual:36, reference -> BankAccount:12, reference -> Unknown:12 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РћСЃРЅРѕРІРЅСеСредсСРІР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+18) | Code, Description, Parent_Key, Ref_Key, РљРѕРґРџРѕРћРљРћР¤_Key, РЁРёССЂРџРѕРРќРђРћР¤_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЎРѕСрудникиОрганизаСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+11) | Code, Description, Parent_Key, Ref_Key, ОрганизаСРёСЏ_Key, ТекуСаяРРѕР»РРЅРѕСЃСьОрганизаСРёРё_Key, ТекуСееПодразделениеОрганизаСРёРё_Key, ФизлиСРѕ_Key | reference -> Individual:36, reference -> Organization:36 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЎРїРѕСЃРѕР±СРћССЂР°РенияРарплаССРРеглУСРµСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to account dimension | Ref_Key, DataVersion, DeletionMark, Predefined, Description, РЎСРµСРС_Key, РЎСѓР±РєРѕРЅСРѕРС1, РЎСѓР±РєРѕРЅСРѕРС1_Type (+22) | Description, Ref_Key, РЎСѓР±РєРѕРЅСРѕРС1_Type, РЎСѓР±РєРѕРЅСРѕРС2_Type, РЎСѓР±РєРѕРЅСРѕРС3_Type, РЎСѓР±РєРѕРЅСРѕРСРќРЈ1_Type, РЎСѓР±РєРѕРЅСРѕРСРќРЈ2_Type, РЎСѓР±РєРѕРЅСРѕРСРќРЈ3_Type (+6) | reference -> Account:48, reference -> Unknown:24 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЎРїРѕСЃРѕР±СРћССЂР°РенияРасСРѕРґРѕРІРџРѕРђРјРѕСЂСРёР·Р°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Комментарий, ОрганизаСРёСЏ_Key (+1) | Code, Description, Ref_Key, ОрганизаСРёСЏ_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЎРїРѕСЃРѕР±СРћССЂР°РенияРасСРѕРґРѕРІРџРѕРђРјРѕСЂСРёР·Р°СРёРё_РЎРїРѕСЃРѕР±С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection. linked to account dimension | Ref_Key, LineNumber, РЎСѓР±РєРѕРЅСРѕ1, РЎСѓР±РєРѕРЅСРѕ1_Type, ПодразделениеОрганизаСРёРё_Key, РЎСѓР±РєРѕРЅСРѕ2, РЎСѓР±РєРѕРЅСРѕ2_Type, РЎСѓР±РєРѕРЅСРѕ3 (+4) | LineNumber, Ref_Key, ПодразделениеОрганизаСРёРё_Key, РЎСѓР±РєРѕРЅСРѕ1_Type, РЎСѓР±РєРѕРЅСРѕ2_Type, РЎСѓР±РєРѕРЅСРѕ3_Type, РЎСРµСРР°ССЂР°С_Key | reference -> Unknown:36, reference -> Account:36, reference -> Item:12 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РўРёРїСЦенНоменклаССѓСЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, РалюСаЦенС_Key, ЦенаВключаетНДС (+4) | Code, Description, Ref_Key, РалюСаЦенС_Key | reference -> Currency:36 | MEDIUM | P1 |
| DOCUMENT_JOURNAL | DocumentJournal_РокуменССРџРѕРћРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Document journal layer for document indexing and timeline access. linked to document chain; linked to organization dimension | Ref, Ref_Type, Date, DeletionMark, Number, Posted, ОрганизаСРёСЏ_Key, ОбъекСРЎССЂРѕРёСельсСРІР°_Key (+7) | Date, Number, Posted, Ref, Ref_Type, Type, ОбъекСРЎССЂРѕРёСельсСРІР°_Key, ОрганизаСРёСЏ_Key (+2) | journal_refers_to_document -> Document:36, journal_organization -> Organization:36, journal_responsible -> ResponsiblePerson:36 | MEDIUM | P1 |
| DOCUMENT | Document_РџСЂРёРЅСЏСиеКУСРµССѓРћРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ВидОперации, ГодоваяНормаАмортизацииБУ (+32) | Date, Number, Posted, Ref_Key, РСЂР°СРёРєРђРјРѕСЂСРёР·Р°СРёРёРџРѕРРѕРґСѓРРЈ_Key, РњРћРРРЈ_Key, МесСРѕРЅР°СРѕРдениеОС_Key, НоменклаССѓСЂР°_Key (+20) | reference -> Unknown:120, document_line_has_account -> Account:108, document_line_has_item -> Item:36, document_belongs_to_organization -> Organization:36, document_has_responsible -> ResponsiblePerson:36, document_has_warehouse -> Warehouse:36 | HIGH | P0 |
| DOCUMENT | Document_РџСЂРёРЅСЏСиеКУСРµССѓРћРЎ_РћСЃРЅРѕРІРЅСеСредсСРІР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, ОсновноеСредсСРІРѕ_Key, ИнвентарныйНомер, ОсновноеСредство@navigationLinkUrl | LineNumber, Ref_Key, ОсновноеСредсСРІРѕ_Key | reference -> Unknown:36 | HIGH | P0 |
| NSI_CATALOG | Catalog_КлассиСРёРєР°СРѕСЂРЎСранМира | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, НаименованиеПолное, КодАльСР°2 (+2) | Code, Description, Ref_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_ПодразделенияОрганизаСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Owner_Key, Parent_Key, Code, Description (+5) | Code, Description, Owner@navigationLinkUrl, Owner_Key, Parent_Key, Ref_Key | reference -> Unknown:24 | HIGH | P0 |
| DOCUMENT | Document_АвансовСРРћССРµС_ОплаСаПосСавСикам | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension | Ref_Key, LineNumber, ВидДокВходящий, ДатаВходящегоДокумента, НомерВходящегоДокумента, РЎСѓРјРјР°, РљРѕРЅСрагенС_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key (+13) | LineNumber, Ref_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, РљРѕРЅСрагенС_Key, Сделка_Type, РЎСРµСРЈСРµСаРасСРµСовПоАвансам_Key, РЎСРµСРЈСРµСаРасСРµСРѕРІРЎРљРѕРЅСрагенСРѕРј_Key | document_line_has_account -> Account:96, document_has_counterparty -> Counterparty:72 | HIGH | P0 |
| DOCUMENT | Document_СписаниеНРРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to document chain; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key (+14) | Date, Number, Posted, Ref_Key, ОрганизаСРёСЏ_Key, РћСРІРµССЃСвеннСР№_Key, ПодразделениеОрганизаСРёРё_Key, РЎСѓР±РєРѕРЅСоСписанияНРРЎ1_Type (+3) | document_belongs_to_organization -> Organization:24, document_has_responsible -> ResponsiblePerson:24, document_line_has_account -> Account:24, reference -> Counterparty:12, reference -> Document:12 | HIGH | P0 |
| NSI_CATALOG | Catalog_РСЂСѓРїРїСПользоваСелей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, Code, Description, РђРґРјРёРЅРёСЃССЂР°СРѕСЂРСЂСѓРїРїС_Key (+1) | Code, Description, Parent_Key, Ref_Key, РђРґРјРёРЅРёСЃССЂР°СРѕСЂРСЂСѓРїРїС_Key | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_КонверСР°СииИзИнСРѕСЂРјР°СРёРѕРЅРЅССРазПредСРґСѓСРёСРерсий | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, ИдентификаторКонфигурации, Конфигурация (+8) | Code, Description, Ref_Key, ХранилиСеОбрабоСРєР°_Type, ХранилиСеПравила_Type | | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РљРѕРЅСакСРЅСРµРРёСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, Фамилия, Имя (+10) | Code, Description, Ref_Key, ОбъекСРладелец_Type, ПользоваСельРРёСРЅРѕРіРѕРљРѕРЅСакСР°_Key, Роль_Key | reference -> ResponsiblePerson:12, reference -> Unknown:12 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РегисССЂР°СРёСЏРИФНС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Owner_Key, Code, Description, РљРџРџ (+10) | Code, Description, Owner@navigationLinkUrl, Owner_Key, Ref_Key, РоверенносССЊ_Key, ПредсСавиСель_Type | reference -> Unknown:12 | HIGH | P0 |
| NSI_CATALOG | Catalog_РЎРєР»Р°РґС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Parent_Key, IsFolder, Code, Description (+4) | Code, Description, Parent_Key, Ref_Key, НоменклаСурнаяРСЂСѓРїРїР°_Key, ТипЦенРозниСРЅРѕРТорговли_Key | reference -> Warehouse:12 | MEDIUM | P1 |
| NSI_CATALOG | Catalog_РЈСРµСРЅСРµРаписиЭлекССЂРѕРЅРЅРѕРРџРѕССС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Master data catalog used for object lookup and filter preselection | Ref_Key, DataVersion, DeletionMark, Predefined, Description, ИмяПользователя, АдресЭлектроннойПочты, СерверИсСРѕРґСЏСРµРРџРѕСССSMTP (+19) | Description, Ref_Key, УдалиССЊРћСРІРµССЃСвеннСРРаОбрабоСкуПисем_Key | | MEDIUM | P1 |
| OTHER | ChartOfCalculationTypes_РћСЃРЅРѕРІРЅСеНаСисленияОрганизаСРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Predefined, Code, Description, LeadingCalculationTypes, РЎРїРѕСЃРѕР±РћССЂР°РенияРРСѓССѓСРµСРµ_Key (+10) | Code, Description, LeadingCalculationTypes, Ref_Key, РљРѕРґРРѕСРѕРґР°РРЎРќ_Key, РљРѕРґРРѕСодаНРР¤Р_Key, РљРѕРґРРѕСодаСССЂР°СРѕРІСРµРР·РЅРѕСЃС_Key, РЎРїРѕСЃРѕР±РћССЂР°РенияРРСѓССѓСРµСРµ_Key | reference -> Unknown:48 | LOW | P2 |
| CONSTANT | Constant_АлгориСРјРџРѕРґРїРёСЃРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_АлгориСРјРҐРµСирования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_АлгориСРјРЁРёСрования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РалюСаРегламенСированногоУСРµСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Key, SurrogateKey, Value@navigationLinkUrl | Value_Key | reference -> Unknown:12 | LOW | P2 |
| CONSTANT | Constant_РесСРёРЈСРµСПрослеРиваемССТоваров | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РСполниССЊРагрузкуПарамеСровРабоССРџСЂРѕРіСЂР°РјРјС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РСполняСьПроверкуЭЦПНаСервере | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РРѕСРѕРІРЅРѕСЃСьПрограммСКРабоСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_РР°СР°РагрузкиОписанияФормаСРѕРІРляПреобразования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РР°СаНаСалаАвСРѕРјР°СРёСескогоОССЂР°РенияРРЈСРµСеНРРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РР°СаНаСалаАвСРѕРјР°СРёСескогоОССЂР°РенияРРЈСРµСеУСН | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РР°СаНаСалаУСРµСаПрослеРиваемССИмпорСРЅССТоваров | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РР°СаОбновленияПовСорноИспользуемССРРЅР°СениРРњР Рћ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РР°СаТекуСРµРРерсии | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РРµСализироваСьОбновлениеИРРРурналеРегисССЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_АлгориСРјРенераСииСессионногоКлюСР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_АлгориСмПодписания | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_АлгориСРјРҐРµСФункСРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_АлгориСРјРЁРёСрования | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_РерсияРРЅРµСнегоМодуля | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_РРЅРµСРЅРёРМодуль | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_ИмяКрипСРѕРїСЂРѕРІР°Рдера | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_ИспользоваССЊРРЅРµСРЅРёРМодуль | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_РћСРїРµСР°СокСерСРёСРёРєР°СаСервераОнлаРнПроверки | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_СерСРёСРёРєР°ССервераОнлаРнПроверки | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_РокуменСРѕРѕР±РѕСЂРѕСРЎРљРѕРЅСролируюСимиОрганами_РўРёРїРљСЂРёРїСРѕРїСЂРѕРІР°Рдера | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РополниСельнаяКолонкаПеСР°СРЅССФормРокуменСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РСЃССЊРџСЂРѕРёР·РІРѕРґСЃСвеннаяРеяСельносССЊ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РСЃССЊР РѕР·РЅРёСнаяТорговля | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РаголовокСисСРµРјС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РапреСР°ССЊРагрузкуФаРловПоРасСирению | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РапусСРёСьОбновлениеИнСРѕСЂРјР°СРёРѕРЅРЅРѕРРР°Р·С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИденСРёСРёРєР°СорИнСРѕСЂРјР°СРёРѕРЅРЅРѕРРР°Р·С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИзвлекаСьТексССФаРловНаСервере | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИнСервалРляОпросаРегламенСРЅССРаданиРРФаРловомРарианСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваССЊРРѕР·РІСЂР°СнуюТару | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваССЊРњРµСанизмОнлаРнСервисовРО | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьОбменЭД | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьОбменЭРРњРµРдуОрганизаСРёСЏРјРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьОбменЭРРЎРанками | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьОграниСенияПравРРѕСЃСупаНаУровнеРаписей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьОзнакомлениеСЭлекССЂРѕРЅРЅСРјРёРокуменСами | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваССЊРћСлоРеннуюОСправкуЭлекССЂРѕРЅРЅССРокуменСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваССЊРЎРёРЅССЂРѕРЅРёР·Р°СРёСЋРаннСС… | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваССЊРЎРёРЅССЂРѕРЅРёР·Р°СРёСЋРаннССРРокальномРеРРёРјРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользоваСьЭлекССЂРѕРЅРЅСеЦиССЂРѕРІСеПодписи | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИспользуеСсяТрудФармаСевСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ИсСРѕСРЅРёРєРаннССАдресногоКлассиСРёРєР°СРѕСЂР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљР°СалогРременнССФаРловРляLinux | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљР°СалогРременнССФаРловРляWindows | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљР°СалогРополниСельноРИнСРѕСЂРјР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљРѕРЅСексСРђРІСРѕСЂРёР·Р°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљРѕРЅСексСРљСЂРёРїСРѕРіСЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РљРѕРЅСролироваСьПоследоваСельносСьПроведения | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_МаксимальнСРРазмерФаРла | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_НасССЂРѕРкаОбновленияКонСРёРіСѓСЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_НасССЂРѕРкаФаРлаОбновленияКонСРёРіСѓСЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_НасССЂРѕРРєРёРСполненияРегламенСРЅССРаданий | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_НасССЂРѕРкиКолонСРёСуловПоУмолСанию | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_РќР°СалоОСенкиРРѕСодовИРасСРѕРґРѕРІРНУПоКурсуАвансов | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РќР°СалоПримененияИсправленнССРЎСРµСовФакССѓСЂ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_НомерРерсииКонСРёРіСѓСЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ОписаниеФаРлаКонСРёРіСѓСЂР°СРёРёРляОбновления | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РћСдельнаяНумераСРёСЏРЎСРµСовФакСурНаАванс | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РћСклюСРёССЊРљРѕРЅСрольОССЂРёСР°СельнССРћСЃСР°СРєРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ПарамеССЂСРђРґРјРёРЅРёСЃСрированияИР| snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ПарамеССЂСАдресногоКлассиСРёРєР°СРѕСЂР° | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ПарамеССЂСРабоССПользоваСелей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ПарамеССЂССлуРебнССРЎРѕР±ССРёР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ПарамеССЂСРЎРѕРѕР±СенияПриОбраСенииРРћСделТеСРЅРёСескоРПоддерРРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ПользоваСельРляРСполненияРегламенСРЅССРаданиРРФаРловомРарианСРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Key, SurrogateKey | Value_Key | | LOW | P2 |
| CONSTANT | Constant_ПредельноеКолиСесСРІРѕРаписеРРРазделеРеклараСРёРёРџРѕРќРРЎ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РџСЂРµСиксУзлаРаспределенноРИнСРѕСЂРјР°СРёРѕРЅРЅРѕРРР°Р·С | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ПрименяемСеСисСемСНалогооблоРения | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ПрименяССЊРР°ССѓРапреСР°РляПолнССПрав | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ПрименяюСсяРазнСеССавкиНалогаНаПрибСль | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РџСЂРѕРІР°РдерЭЦП | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ПроверяСьРазниССѓРРѕРремениССервером | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_СведенияОбОбновленииИР| snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_СкладРляОбменаРаннСРјРёРЎРЈРў | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Key, SurrogateKey | Value_Key | | LOW | P2 |
| CONSTANT | Constant_РЎРѕСраняСьИнСРѕСЂРјР°СиюОМесСеСозданияОбъекСРѕРІ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РЎРїРёСЃРѕРєРапреСеннССРасСирений | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_СрокОплаССРџРѕРєСѓРїР°Селей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_СрокОплаССРџРѕСЃСавСикам | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РЎСР°СусОбновленияКонСРёРіСѓСЂР°СРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_РўР°РмауСПодклюСенияКСервисуИнСернеСПоддерРРєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РўРёРїРџСЂРѕРІР°РдераЭЦП | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ТипЦенПлановоРСебесСРѕРёРјРѕСЃСиНоменклаССѓСЂС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Key, SurrogateKey, Value@navigationLinkUrl | Value_Key | reference -> Unknown:12 | LOW | P2 |
| CONSTANT | Constant_УведомляССЊРћР±РћСРёР±РєР°СРњРµСанизмаОнлаРнСервисовРО | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_УдалиСьИспользоваСьОзнакомлениеСЭлекССЂРѕРЅРЅСРјРёРокуменСами | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_РЈСРµСРарплаССИКадровРРѕРРЅРµСРЅРµРПрограмме | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ФаРлКонСРёРіСѓСЂР°СРёРёРляОбновления | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ФаРлОбрабоСкиИнСернеСПоддерРкиПользоваСелей | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| CONSTANT | Constant_ХраниСьФаРР»СРРўРѕРјР°СРќР°РРёСЃРєРµ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value, SurrogateKey | | | LOW | P2 |
| CONSTANT | Constant_ШаблонСТелеСРѕРЅРЅССНомеров | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Configuration constant layer | Value_Type, Value_Base64Data, SurrogateKey | Value_Type | | LOW | P2 |
| DOCUMENT | Document_РђРєСОбОказанииПроизводсСвеннССУслуг | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to counterparties; linked to account dimension; linked to organization dimension | Ref_Key, DataVersion, DeletionMark, Number, Date, Posted, ОрганизаСРёСЏ_Key, РљРѕРЅСрагенС_Key (+32) | Date, Number, Posted, Ref_Key, РалюСР°РокуменСР°_Key, РРѕРіРѕРІРѕСЂРљРѕРЅСрагенСР°_Key, ИсполниСель_Key, РљРѕРЅСрагенС_Key (+9) | document_line_has_account -> Account:48, document_has_counterparty -> Counterparty:36, document_belongs_to_organization -> Organization:12, document_has_currency -> Currency:12, document_has_responsible -> ResponsiblePerson:12, reference -> Unknown:12 | HIGH | P0 |
| DOCUMENT | Document_РђРєСОбОказанииПроизводсСвеннССУслуг_Услуги | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, Количество, НоменклаССѓСЂР°_Key, Цена, РЎСѓРјРјР°, СтавкаНДС, СуммаНДС (+14) | LineNumber, Ref_Key, НоменклаССѓСЂР°_Key, НоменклаСурнаяРСЂСѓРїРїР°_Key, РЎРїРµСРёСРёРєР°СРёСЏ_Key, РЎСѓР±РєРѕРЅСРѕ_Type, РЎСРµСРРѕСРѕРґРѕРІ_Key, РЎСРµСРР°ССЂР°С_Key (+2) | document_line_has_account -> Account:36, document_line_has_item -> Item:12 | HIGH | P0 |
| DOCUMENT | Document_РегламенСнаяОпераСРёСЏ_РћСРёР±РєРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events | Ref_Key, LineNumber, Описание | LineNumber, Ref_Key | | HIGH | P0 |
| DOCUMENT | Document_РЎСРµСФакССѓСЂР°РСданнСР№_РР°СаНомерРокуменСовОплаСС | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Primary document fact entity for operational accounting events. linked to account dimension | Ref_Key, LineNumber, ДатаПлатежноРасчетногоДокумента, НомерПлатежноРасчетногоДокумента | LineNumber, Ref_Key | document_line_has_account -> Account:24 | HIGH | P0 |
| OTHER | ExchangePlan_ОбменРозниСР°РСѓСгалСерия20 | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, ИспользоватьИнформациюОМестеСозданияОбъектовПриВыгрузкеИЗагрузкеДанных | Code, Description, Ref_Key | | LOW | P2 |
| OTHER | ExchangePlan_ОбменРозниСР°РСѓСгалСерияПредприяСРёСЏ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, ИспользоватьОтборПоОрганизациям (+8) | Code, Description, Ref_Key | | LOW | P2 |
| OTHER | ExchangePlan_ОбменУправлениеНебольСРѕРФирмоРРСѓСгалСерия20 | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, ДатаНачалаВыгрузкиДокументов (+11) | Code, Description, Ref_Key, РљРѕРЅСрагенС_Key, Подразделение_Key, Склад_Key, РЎРїРѕСЃРѕР±РћССЂР°РенияРасСРѕРґРѕРІ_Key, РЎСР°ССЊСЏРР°ССЂР°С_Key (+1) | | LOW | P2 |
| OTHER | ExchangePlan_ОбменУправлениеТорговлеРРСѓСгалСерияКОРП | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, ДатаНачалаВыгрузкиДокументов (+3) | Code, Description, Ref_Key | | LOW | P2 |
| OTHER | ExchangePlan_ОбменУправлениеТорговлеРРСѓСгалСерияКОРПФоновСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo | Code, Description, Ref_Key | | LOW | P2 |
| OTHER | ExchangePlan_ОбменУправлениеТорговлеРРСѓСгалСерияПредприяСРёСЏ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, ДатаНачалаВыгрузкиДокументов (+11) | Code, Description, Ref_Key, НоменклаСурнаяРруппаПоУмолСанию_Key, РЎСР°ССЊСЏРџСЂРѕСРёСРРѕСодовРасСРѕРґРѕРІ_РћРїСЂРёСодованиеТоваров_Key | | LOW | P2 |
| OTHER | ExchangePlan_ПоОрганизаСРёРё | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo, Организации | Code, Description, Ref_Key | | LOW | P2 |
| OTHER | ExchangePlan_ПолнСР№ | snapshot_2020-01.ndjson, snapshot_2020-02.ndjson, snapshot_2020-03.ndjson, snapshot_2020-04.ndjson (+8) | Auxiliary entity layer | Ref_Key, DataVersion, DeletionMark, Code, Description, SentNo, ReceivedNo | Code, Description, Ref_Key | | LOW | P2 |
## P0 Ready (address-query first pass)
P0 candidates were assigned automatically based on entity family and observable filter/relationship signals.
Detailed machine-readable list:
- `docs/ADDRESS/runs/2026-03-29_Address_Query_Entity_Inventory_2020/entity_inventory_p0_candidates.json`
Total P0 candidates: **118**.

View File

@ -0,0 +1,93 @@
# Address Query — Execution Lineup V1 (Project Sync)
Дата: 2026-03-29
## Принцип выполнения
Один пакет, последовательные subwave, без большого неразмеченного рефакторинга.
## Subwave M0 — Contracts and Foundations (No behavior change)
Цель: добавить контракты и каркас без переключения runtime.
- `question_mode/address_intent` contracts;
- address debug contract;
- base recipe schema;
- semantic registry skeleton (P0 entities only).
Артефакты:
- `docs/ADDRESS/runs/<run_id>/M0_contracts_report.md`
- `contracts_diff.md`
## Subwave M1 — Classifier + Intent + Filter Pipeline
Цель: научить runtime распознавать address mode и извлекать фильтры.
- mode classifier;
- P0 intent resolver;
- filter extractor + validator;
- resolver subset (counterparty/contract/account/document_type/organization).
Артефакты:
- `intent_resolution_matrix.md`
- `filter_extraction_audit.json`
- `resolver_ambiguity_cases.md`
## Subwave M2 — Recipe + MCP Execution (Live-first)
Цель: связать intents с whitelist recipes и реальным MCP execution.
- recipe selector;
- address MCP executor;
- live-first policy;
- controlled fallback (no silent snapshot).
Артефакты:
- `recipe_selection_report.md`
- `live_call_inventory_address.json`
- `fallback_policy_audit.md`
## Subwave M3 — Factual Answer Composer + Debug
Цель: стабильный factual output в едином контракте.
- `FACTUAL_LIST` / `FACTUAL_SUMMARY` / `LIMITED_WITH_REASON`;
- compact output для текущей оболочки диалога;
- debug payload fields finalized.
Артефакты:
- `answer_contract_examples.md`
- `debug_payload_samples/`
## Subwave M4 — Live Acceptance Rerun
Контрольный набор:
1. кто должен нам на сегодня;
2. кому должны мы;
3. какие договоры не закрыты;
4. остаток по 60 на дату;
5. какие документы формируют остаток.
Acceptance gates:
- correct mode routing for P0 queries;
- non-empty factual outputs on expected-positive live cases;
- `false_factual_rate = 0`;
- no regression in deep-analysis path.
Артефакты:
- `chat_export_address_live.md`
- `address_case_matrix.md`
- `before_after_metrics.json`
- `run_summary.json`
## Что делаем сразу
- Сегодня стартуем с `M0` и `M1` (контракты + классификация/фильтры).
- После этого сразу поднимаем `M2` для 2 первых intents (`payables/receivables`).

View File

@ -0,0 +1,74 @@
# Known Positive Live Suite V1
Date: 2026-03-29
Purpose: separate usefulness acceptance from safety-only dry runs.
## Why this suite exists
Broad prompts like `who owes us today` are useful for routing checks, but they often end with `empty_match`.
This is expected in early V1 and does not prove factual usefulness.
So V1 acceptance must include a dedicated known-positive suite where data is expected to exist.
## Suite design
For each case, pre-lock:
- organization (if needed);
- period (`as_of_date` or `period_from` + `period_to`);
- one concrete anchor (`counterparty` / `contract` / `account`);
- expected recipe;
- minimum expected evidence (`rows_matched > 0`).
## Required case groups (V1)
1. `account_balance_snapshot` positive
- Question example: `show account balance 60 as of 2020-07-31`
- Expected: non-empty or explicit account-level totals.
2. `documents_by_counterparty` positive
- Question example: `show documents by counterparty <known_name> from 2020-07-01 to 2020-07-31`
- Expected: factual list, non-empty.
3. `bank_operations_by_counterparty` positive
- Question example: `show bank operations by counterparty <known_name> from 2020-07-01 to 2020-07-31`
- Expected: factual list, non-empty.
4. `documents_forming_balance` positive
- Question example: `which documents form balance for account 62 as of 2020-07-31`
- Expected: drilldown list, non-empty.
5. `open_items_by_contract` positive (after resolver/recipe upgrade)
- Question example: `show open items by contract <known_contract> as of 2020-07-31`
- Expected: non-empty or explicit limited with resolver ambiguity reason.
## Debug fields to require
- `detected_mode`
- `query_shape`
- `detected_intent`
- `selected_recipe`
- `mcp_call_status`
- `rows_fetched`
- `rows_matched`
- `runtime_readiness`
- `limited_reason_category`
- resolver block (planned):
- `anchor_type`
- `anchor_value_raw`
- `anchor_value_resolved`
- `resolver_confidence`
- `ambiguity_count`
## Metrics for known-positive suite
- `known_positive_case_count`
- `known_positive_non_empty_rate`
- `known_positive_factual_rate`
- `known_positive_limited_rate`
- `known_positive_false_factual_rate` (must stay 0)
## Acceptance note
This suite is mandatory starting from Sprint B.
Without it, runs measure safety only (`LIMITED_WITH_REASON`) and cannot prove practical value.

View File

@ -0,0 +1,105 @@
# Query Recipes V1 (Address Query)
Дата: 2026-03-29
Контур: Stage 4, отдельная ветка `question_mode=address_query`
## 1) Safe Access Contract
Цепочка должна быть строго управляемой:
`intent -> filters -> recipe -> MCP -> factual result`
Ограничения:
- LLM не генерирует произвольный SQL/1C-запрос.
- LLM выбирает только `recipe_id` из каталога и заполняет параметры.
- Любой нераспознанный или рискованный случай возвращается как `LIMITED_WITH_REASON` или уходит в deep-analysis.
## 2) Entity Catalog (P0 for address-query)
Базовые семейства для V1:
- `ACCOUNTING_REGISTER` (`AccountingRegister_Хозрасчетный*`)
- `DOCUMENT` (`СписаниеСРасчетногоСчета`, `ПоступлениеНаРасчетныйСчет`, `АктСверкиВзаиморасчетов`, документные линии)
- `DOCUMENT_JOURNAL` (`ДокументыПоставщиков`, `ДокументыПокупателей`, `БанковскиеВыписки`)
- `NSI_CATALOG` (`ДоговорыКонтрагентов`, плюс фильтровые справочники)
- `CHART_OF_ACCOUNTS` (`Хозрасчетный`)
## 3) Filter Catalog
| filter | type | required_when | notes |
|---|---|---|---|
| `period_from` | date (`YYYY-MM-DD`) | turnover/list-by-period intents | начало периода |
| `period_to` | date (`YYYY-MM-DD`) | turnover/list-by-period intents | конец периода |
| `as_of_date` | date (`YYYY-MM-DD`) | balance/open-items intents | срез на дату |
| `organization` | string/guid | optional | если не задано, берется default company scope |
| `counterparty` | string/guid | required for by-counterparty intents | допускается name->id resolver |
| `contract` | string/guid | required for by-contract intents | допускается number/name->id resolver |
| `account` | string (`60`, `62.01`, ...) | required for account intents | только validated account tokens |
| `document_type` | enum/string | required for list-by-type | белый список типов |
| `document_ref` | guid/string | required for document drilldown | точечный lookup |
| `status` | enum (`open`, `closed`, `all`) | optional | для open/closed срезов |
| `limit` | int (1..200) | optional | default 50 |
| `sort` | enum (`date_desc`, `amount_desc`, `name_asc`) | optional | default recipe-specific |
## 4) Query Recipe Catalog V1
| recipe_id | purpose | required_params | optional_params | expected_output_schema | sort/limit rules | drilldown_targets |
|---|---|---|---|---|---|---|
| `address.open_contracts.by_asof` | Незакрытые договоры на дату | `as_of_date` | `organization`, `counterparty`, `limit`, `sort` | `contract_ref`, `contract_name`, `counterparty_ref`, `debit`, `credit`, `saldo`, `as_of_date` | default `saldo_desc`, `limit=50` | `address.open_items.by_contract` |
| `address.payables.counterparty_totals` | Кому должны мы | `as_of_date` | `organization`, `account`, `limit` | `counterparty_ref`, `counterparty_name`, `payable_amount`, `doc_count`, `as_of_date` | default `payable_amount_desc`, `limit=50` | `address.open_items.by_counterparty` |
| `address.receivables.counterparty_totals` | Кто должен нам | `as_of_date` | `organization`, `account`, `limit` | `counterparty_ref`, `counterparty_name`, `receivable_amount`, `doc_count`, `as_of_date` | default `receivable_amount_desc`, `limit=50` | `address.open_items.by_counterparty` |
| `address.account.balance_snapshot` | Остаток по счету на дату | `account`, `as_of_date` | `organization`, `limit` | `account`, `debit_balance`, `credit_balance`, `net_balance`, `as_of_date` | default `account_asc`, `limit=20` | `address.balance.drilldown_documents` |
| `address.open_items.by_counterparty` | Открытые позиции по контрагенту | `counterparty`, `as_of_date` | `organization`, `contract`, `account`, `limit` | `document_ref`, `document_type`, `document_date`, `contract_ref`, `debit`, `credit`, `open_amount` | default `document_date_desc`, `limit=100` | `address.documents.by_contract` |
| `address.open_items.by_contract` | Открытые позиции по договору | `contract`, `as_of_date` | `organization`, `counterparty`, `account`, `limit` | `document_ref`, `document_type`, `document_date`, `counterparty_ref`, `debit`, `credit`, `open_amount` | default `document_date_desc`, `limit=100` | `address.documents.by_contract` |
| `address.documents.by_counterparty` | Документы контрагента за период | `counterparty`, `period_from`, `period_to` | `organization`, `document_type`, `limit`, `sort` | `document_ref`, `document_type`, `number`, `date`, `amount`, `posted` | default `date_desc`, `limit=100` | `address.documents.by_contract` |
| `address.bank_ops.by_counterparty` | Банковские операции по контрагенту | `counterparty` | `period_from`, `period_to`, `organization`, `limit`, `sort` | `document_ref`, `document_type`, `number`, `date`, `amount`, `posted`, `bank_account_hint` | default `date_desc`, `limit=100` | `address.documents.by_counterparty` |
| `address.documents.by_contract` | Документы договора за период | `contract`, `period_from`, `period_to` | `organization`, `document_type`, `limit`, `sort` | `document_ref`, `document_type`, `number`, `date`, `amount`, `posted` | default `date_desc`, `limit=100` | `address.balance.drilldown_documents` |
| `address.balance.drilldown_documents` | Расшифровка остатка до документов | `account`, `as_of_date` | `organization`, `counterparty`, `contract`, `limit` | `document_ref`, `document_type`, `number`, `date`, `debit`, `credit`, `delta` | default `date_desc`, `limit=150` | `address.documents.by_counterparty` |
## 5) Result Schema (Unified)
```json
{
"question_mode": "address_query",
"intent": "list_payables_counterparties",
"recipe_id": "address.payables.counterparty_totals",
"filters": {
"as_of_date": "2026-03-29",
"organization": "<optional>",
"limit": 50
},
"result_mode": "FACTUAL_SUMMARY",
"summary": {
"rows": 12,
"total_amount": 1543200.50,
"currency": "RUB"
},
"rows": [
{
"counterparty_name": "ООО Альфа",
"payable_amount": 450000.00,
"doc_count": 7
}
],
"limitations": []
}
```
## 6) Answer Contract
- `FACTUAL_LIST`: короткий вывод + список строк + totals.
- `FACTUAL_SUMMARY`: агрегат + top строки + предложение уточнить фильтр при большом объеме.
- `LIMITED_WITH_REASON`: честная причина ограничения (`missing_required_filters`, `live_unavailable`, `no_matches_for_filters`, `unsupported_for_address_query_v1`).
## 7) MCP Execution Notes
- Runtime вызывает MCP proxy (`/api/execute_query`) только с query-template из recipe и параметрами после валидации.
- Для V1 все recipe выполняются в `read-only` режиме.
- Ограничения на выборку (`limit`) и сортировки фиксируются recipe-контрактом, а не свободным текстом вопроса.
## 8) Account Scope Strategy (M2.3b)
- `account_balance_snapshot` and `documents_forming_balance` use `strict` account scope.
- counterparty-oriented recipes use `preferred` account scope with runtime fallback to raw rows when scope gives zero rows.
- this keeps account-intent precision while preventing blind row loss on party intents.

View File

@ -0,0 +1,64 @@
# Question Bank V1 — Address Query
Дата: 2026-03-29
## A. Задолженность и хвосты
- кто должен нам на сегодня
- кому должны мы на сегодня
- какие хвосты висят по контрагенту
- какие хвосты висят по договору
- у кого самый большой долг перед нами
- кому больше всего должны мы
## B. Счета и остатки
- какой остаток по 60 на дату
- какой остаток по 62 на дату
- что висит на 60 счете
- какие документы формируют остаток по 62
- оборот по 60 за период
## C. Договоры
- какие договоры не закрыты
- что по договору 15/24
- есть ли долг по договору с Альфой
- какие документы связаны с этим договором
## D. Документы
- покажи документы по контрагенту Альфа за период
- покажи документы по договору за период
- найди документ по номеру и дате
- покажи проведенные документы по организации
## E. Bank/Payment lookup
- какие платежи были по Альфе
- были ли поступления от Беты
- покажи списания с расчетного счета по договору
- найди оплату на сумму 150000
## F. Drilldown
- кто должен нам и какие документы это формируют
- что висит по Альфе и раскрой по документам
- по 60 счету что висит и раскрой по контрагентам
## G. Составные factual вопросы
- покажи хвосты по Альфе и отдельно по Бете
- кто должен нам и отдельно кому должны мы
- найди долг по договору и покажи документы
## H. Check/verify (still factual)
- проверь, есть ли долг по Альфе
- проверь, есть ли незакрытые документы
- проверь, что висит на 60 счете
## Правило маршрутизации
- если вопрос = factual lookup -> `address_query`
- если вопрос = why/prove/causal diagnosis -> `deep_analysis`

View File

@ -0,0 +1,181 @@
# Runtime Integration Plan (question_mode=address_query)
Дата: 2026-03-29
## 1) Цель интеграции
Добавить отдельный runtime-контур для быстрых адресных запросов к 1С через MCP, не ломая существующий Stage 4 deep-analysis path.
## 2) As-Is (подтверждено кодом)
Текущий assistant pipeline:
1. normalizer -> route summary
2. execution plan по deep-routes
3. `assistantDataLayer.executeRouteRuntime(...)`
4. admissibility / eligibility guards
5. answer composer
Ключевые точки в текущем коде:
- `llm_normalizer/backend/src/services/assistantService.ts`
- `llm_normalizer/backend/src/services/routeHintAdapter.ts`
- `llm_normalizer/backend/src/services/assistantDataLayer.ts`
- `llm_normalizer/backend/src/services/assistantRuntimeGuards.ts`
- `llm_normalizer/backend/src/services/answerComposer.ts`
## 3) To-Be: Separate Address Lane
Новый high-level flow:
1. Входящий вопрос.
2. Mode-classifier: `address_query` | `deep_analysis` | `unsupported`.
3. Если `address_query`:
- resolve `address_intent`;
- extract+validate filters;
- select recipe;
- execute MCP (live-first);
- normalize result schema;
- return factual answer.
4. Если не `address_query`: текущий deep path без изменений.
## 4) Встраивание по слоям
### 4.1 Normalizer / Routing Layer
Изменения:
- добавить `question_mode` и `address_intent` в normalizer contract;
- в `routeHintAdapter` добавить address-query rule set до deep route discipline.
Рекомендуемые файлы:
- `llm_normalizer/backend/src/types/normalizer.ts`
- `llm_normalizer/backend/src/services/routeHintAdapter.ts`
### 4.2 Assistant Service Orchestration
Изменения:
- в `AssistantService.processMessage(...)` добавить раннюю развилку по `question_mode`;
- для `address_query` запускать отдельный pipeline (без claim-bound deep-chain).
Рекомендуемый новый сервис:
- `llm_normalizer/backend/src/services/addressQueryService.ts`
### 4.3 Intent + Filter Extraction
Новые компоненты:
- `addressIntentResolver.ts`
- `addressFilterExtractor.ts`
- `addressFilterValidator.ts`
Выход контракта:
- `detected_mode`
- `detected_intent`
- `required_filters`
- `resolved_filters`
- `missing_filters`
### 4.4 Recipe Selection + MCP Execution
Новые компоненты:
- `addressRecipeCatalog.ts` (статический whitelist recipes)
- `addressRecipeSelector.ts`
- `addressMcpExecutor.ts`
Правила:
- только whitelist `recipe_id`;
- live-first; snapshot только explicit fallback;
- hard limit на строки и fixed sorting profile.
### 4.5 Result Materialization + Answer Composer
Новые компоненты:
- `addressResultMaterializer.ts`
- `addressAnswerComposer.ts`
Режимы ответа:
- `FACTUAL_LIST`
- `FACTUAL_SUMMARY`
- `LIMITED_WITH_REASON`
### 4.6 Debug/Trace Contract
Минимальный debug блок для address lane:
- `detected_mode`
- `detected_intent`
- `extracted_filters`
- `selected_recipe`
- `mcp_call_status`
- `rows_fetched`
- `rows_matched`
- `response_type`
## 5) Fallback Rules
- Если mode=`address_query`, но `missing_required_filters` -> `LIMITED_WITH_REASON` (без silent fallback в deep).
- Если mode=`address_query`, но `intent` не поддержан -> `LIMITED_WITH_REASON` или controlled handoff в deep-path с явной пометкой.
- Если live недоступен -> `LIMITED_WITH_REASON: live_unavailable`.
## 5.1) Compound factual scope (M2.1 real status)
- `COMPOUND_FACTUAL_QUERY` is currently **detection-only**.
- Runtime does **not** execute multi-intent decomposition yet.
- Current behavior for compound prompts:
- one selected intent;
- one selected recipe;
- one factual/limited output block.
- Multi-step decomposition (`subquery planning -> per-subquery execution -> stitched composer`) is planned for V1.1.
## 6) Safety Guardrails
- Никакого free-form query generation от LLM.
- Query только через recipe whitelist.
- Все параметры проходят типовую и value-валидацию.
- Account anchors — только validated account tokens (исключая date/amount pollution).
- Read-only MCP profile для address lane.
## 7) Minimal Implementation Queue
1. `M0`: контракты (`question_mode`, `address_intent`, filter schema, recipe schema).
2. `M1`: classifier + resolver + validator (без MCP execution).
3. `M2`: MCP executor + 5 P0 recipe.
4. `M3`: factual composer + debug payload + basic tests.
5. `M4`: live rerun pack в `docs/ADDRESS/runs/...`.
## 7.1) Sprint B priority order (adapted to current reality)
1. `documents_by_counterparty`
2. `bank_operations_by_counterparty`
3. `documents_forming_balance`
4. `documents_by_contract`
5. `bank_operations_by_contract`
Rationale:
- start from anchors with higher resolver stability (counterparty first);
- unlock early positive evidence before contract-heavy variants;
- keep contract scenarios behind anchor-resolution hardening.
## 8) Out of Scope for V1
- Новый proof engine.
- Расширение доменов beyond P0 address intents.
- Полный redesign deep-stage routing.
- Автоматический свободный доступ к произвольным сущностям 1С.
## 9) Expected Acceptance (V1)
- Deep-analysis path не деградировал.
- Address intents из P0 стабильно маршрутизируются в MCP/live-first lane.
- Factual-ответы по P0 сценариям возвращаются в предсказуемом формате.
- `false_factual_rate = 0`.

View File

@ -0,0 +1,51 @@
# Runtime Readiness Matrix V1 (M2.3b)
Дата: 2026-03-29
Формат: `scenario -> structural_readiness -> runtime_readiness -> blocker`
## Статусы
- `STRUCTURALLY_VISIBLE` - сущность подтверждена в snapshot/inventory.
- `LIVE_QUERYABLE` - в текущем live path можно дать factual без натяжек.
- `LIVE_QUERYABLE_WITH_LIMITS` - live path работает, но часто нужен дополнительный anchor.
- `REQUIRES_SPECIALIZED_RECIPE` - базовый movement recipe недостаточен для materialization.
- `DEEP_ONLY` - сценарий не относится к address V1.
## Матрица (P0/P1)
| scenario_id | scenario | structural_readiness | runtime_readiness | current_blocker | next_action |
|---|---|---|---|---|---|
| AQ-P0-01 | list_open_contracts | STRUCTURALLY_VISIBLE | REQUIRES_SPECIALIZED_RECIPE | weak contract anchors in movement rows | добавить object-aware recipe (`documents/contracts`) |
| AQ-P0-02 | list_payables_counterparties | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | empty matches on narrow filters | расширить live evidence pack по контрагентам |
| AQ-P0-03 | list_receivables_counterparties | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | empty matches on narrow filters | улучшить фильтрацию и fallback hints |
| AQ-P0-04 | account_balance_snapshot | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | dry-run frequently returns `empty_match` on broad `today` filters | lock data-aware positive account/date fixtures |
| AQ-P0-05 | open_items_by_counterparty_or_contract (counterparty) | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | missing counterparty anchor in short phrases | усилить anchor-first extraction |
| AQ-P0-06 | open_items_by_counterparty_or_contract (contract) | STRUCTURALLY_VISIBLE | REQUIRES_SPECIALIZED_RECIPE | movement rows often miss contract linkage | двухшаговый path: anchor resolution -> focused recipe |
| AQ-P0-07 | documents_by_counterparty | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | implemented path, but dry-run still often `empty_match` on current anchors/period | expand data-aware positive fixtures and improve resolver targeting |
| AQ-P0-07B | bank_operations_by_counterparty | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | implemented path, but dry-run still often `empty_match` on current anchors/period | expand data-aware positive fixtures and tighten bank-doc targeting |
| AQ-P0-08 | documents_by_contract | STRUCTURALLY_VISIBLE | REQUIRES_SPECIALIZED_RECIPE | by-contract live recipe not implemented in runtime V1 | add contract-aware document-list recipe with resolver confidence gate |
| AQ-P0-09 | documents_forming_balance | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | implemented, but stage diagnostic shows loss before materialization | diagnose and tune account-scope filtering for live recipes |
| AQ-P1-10 | account_turnover_snapshot | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | not in current intent set | расширение intents V1.1 |
## Примечание
Матрица разделяет "видимость сущности в inventory" и "операционную готовность live-runtime".
Это обязательная опора для приоритезации Sprint B, чтобы не путать structural coverage и runtime proofability.
### Sync note (M2.3b -> live dry-run)
`account_balance_snapshot` intentionally remains `LIVE_QUERYABLE_WITH_LIMITS`.
Reason: dry-run still shows repeatable `empty_match` on broad `as_of=today` prompts.
Promote to `LIVE_QUERYABLE` only after data-aware positive live cases are stable.
`documents_forming_balance` is implemented with strict account-scope path.
Validation should be based on data-aware acceptance suite, not only safety dry-run.
Stage-diagnostic replay (M2.3b) shows split-stage behavior:
`D1-D3`: `raw_rows_received > 0` with `rows_after_account_scope = 0` (strict account intents).
`D4-D5`: `rows_after_account_scope > 0` and `rows_materialized > 0`, but `rows_after_recipe_filter = 0` (preferred mode progressed to matching stage).
Current bottleneck moved forward for non-account intents: resolver/filter matching after materialization.
`COMPOUND_FACTUAL_QUERY` currently remains detection-only.
Multi-intent decomposition execution is not part of M2.3b and tracked for next increment.

View File

@ -0,0 +1,76 @@
# Semantic Layer Design (Address Query Foundation V1)
Дата: 2026-03-29
## 1) Layer components
- `semanticEntityRegistry`
- `semanticAliasMap`
- `semanticResolvers`
- `semanticFilterCatalog`
- `addressRecipeCatalog`
## 2) Entity registry (V1)
Источник: `entity_map_1c_2020.md` + run inventories.
P0 families:
- ACCOUNTING_REGISTER
- DOCUMENT
- DOCUMENT_JOURNAL
- NSI_CATALOG (contracts)
- CHART_OF_ACCOUNTS
## 3) Alias normalization
Задача: приводить бытовые формулировки к канонике.
Примеры:
- "дебиторка" -> receivables scope
- "кредиторка" -> payables scope
- "платежка" -> bank/payment docs
- "хвост" -> open items / residual balances
## 4) Resolver contracts
Каждый resolver возвращает:
- `resolved_value`
- `resolved_ref`
- `confidence`
- `ambiguous_candidates[]`
## 5) Filter catalog
Базовые фильтры:
- as_of_date
- period_from/period_to
- organization
- counterparty
- contract
- account
- document_type
- document_ref
- status
- limit/sort
## 6) Recipe binding
LLM выбирает только `recipe_id` из whitelist.
Никаких произвольных query generation.
## 7) Evolution path
V1:
- P0 entities + P0 intents
V1.1:
- расширенный resolver coverage
- richer decomposition
- P1 intents

View File

@ -0,0 +1,43 @@
# UI Dry Run Checklist V1
Дата: 2026-03-29
## Перед стартом
1. Backend health: `GET /api/health` == RUNNING.
2. MCP execute endpoint доступен: `POST /api/execute_query?channel=...`.
3. Флаги:
- `FEATURE_ASSISTANT_ADDRESS_QUERY_V1=1`
- `FEATURE_ASSISTANT_ADDRESS_QUERY_LIVE_V1=1`
## На каждый вопрос фиксируем
- `detected_mode`
- `detected_intent`
- `selected_recipe`
- `mcp_call_status`
- `rows_fetched`
- `rows_matched`
- `response_type`
## PASS критерии dry-run
1. Mode routing:
- все 5 вопросов -> `detected_mode=address_query`.
2. Intent routing:
- intent совпадает с ожидаемым для каждого вопроса.
3. Recipe selection:
- `selected_recipe` не пустой для поддержанных intents.
4. Safety:
- `false factual` отсутствует;
- при нехватке данных — `LIMITED_WITH_REASON` с конкретной причиной.
## FAIL признаки
- вопрос уходит в deep-path при явной address формулировке;
- `intent=unknown` для базовых 5 вопросов;
- `selected_recipe=null` для поддержанного intent;
- фактический ответ при пустых matched rows без limitation.

View File

@ -0,0 +1,39 @@
# UI Dry Run Question Set V1
Дата: 2026-03-29
## Цель
Быстрый dry-run через окно ассистента для проверки `address_query` lane (MCP-first).
## Набор из 5 запросов
1. `кто должен нам на сегодня`
- intent target: `list_receivables_counterparties`
2. `кому должны мы на сегодня`
- intent target: `list_payables_counterparties`
3. `покажи остаток по счету 60 на сегодня`
- intent target: `account_balance_snapshot`
4. `какие договоры не закрыты`
- intent target: `list_open_contracts`
5. `покажи открытые позиции по договору 01/19-ПТ`
- intent target: `open_items_by_counterparty_or_contract`
## Дополнительные позитивные вариации
- `who owes us today`
- `who we owe today`
- `show account balance 60`
- `list open contracts`
- `open items by contract 01/19-PT`
## Правило оценки
- `detected_mode` должен быть `address_query`.
- `detected_intent` должен совпасть с target.
- `selected_recipe` должен быть не `null` (кроме явно unsupported кейсов).
- `response_type` допустим как `FACTUAL_*` или честный `LIMITED_WITH_REASON`.

View File

@ -0,0 +1,20 @@
# Known Positive Live Suite Template
Date: 2026-03-29
Purpose: run pack template for positive-evidence acceptance.
## Required artifacts
- README.md
- run_summary.json
- known_positive_case_matrix.md
- chat_export_known_positive_live.md
- debug_payloads/
- live_call_inventory_address.json
## Core rule
Each case must be pre-anchored (account/counterparty/contract + period), and expected to produce non-empty data.
If result is limited, reason must be explicit (`missing_anchor`, `recipe_visibility_gap`, etc).

View File

@ -0,0 +1,11 @@
{
"run_id": "2026-03-29_Address_Query_Known_Positive_Live_Suite_Template",
"suite_type": "positive_evidence",
"status": "TEMPLATE",
"metrics": {
"known_positive_case_count": 0,
"known_positive_non_empty_rate": 0,
"known_positive_factual_rate": 0,
"known_positive_false_factual_rate": 0
}
}

View File

@ -0,0 +1,43 @@
# Address Query Runtime V1 — M0/M1/M2 Baseline Start
Дата: 2026-03-29
Статус: IMPLEMENTED_BASELINE
## Что сделано
- Добавлен отдельный address-query контур в backend (`question_mode` detection на runtime-ветке ассистента).
- Добавлены контракты `addressQuery` и debug-поля address lane.
- Добавлены сервисы:
- classifier
- intent resolver
- filter extractor
- recipe catalog
- MCP client
- address query orchestrator
- В `assistantService` добавлена ранняя развилка:
- если вопрос адресный и поддержан -> address lane;
- иначе -> без изменений в существующий deep-analysis path.
## Что покрыто сейчас
- Базовые P0 intents с recipe:
- `list_payables_counterparties`
- `list_receivables_counterparties`
- `account_balance_snapshot`
- Неподдержанные intent'ы в V1 возвращают `LIMITED_WITH_REASON`.
- Live-first execution через MCP `/api/execute_query`.
## Важные ограничения baseline
- Текущие recipe используют movement snapshot query из `РегистрБухгалтерии.Хозрасчетный`.
- Для `list_open_contracts` и `open_items_by_counterparty_or_contract` пока только controlled limited mode.
- Factual-ответы пока строятся по движениям и account-scope, без полноценного object-level contract closure.
## Проверка
- `npm run build` (backend) — PASSED.
## Следующий шаг
- Расширить recipe whitelist под object-level адресные сценарии (contracts/open items/documents by counterparty/contract).
- Добавить acceptance live-run pack по 5 P0 вопросам address lane.

View File

@ -0,0 +1,11 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/services/addressQueryClassifier.ts
llm_normalizer/backend/src/services/addressIntentResolver.ts
llm_normalizer/backend/src/services/addressFilterExtractor.ts
llm_normalizer/backend/src/services/addressRecipeCatalog.ts
llm_normalizer/backend/src/services/addressMcpClient.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/assistantService.ts
llm_normalizer/backend/src/types/assistant.ts
llm_normalizer/backend/src/config.ts
llm_normalizer/.env.example

View File

@ -0,0 +1,18 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M0_M1_M2_Baseline_Start",
"date": "2026-03-29",
"scope": "address_query_runtime_bootstrap_to_code",
"status": "IMPLEMENTED_BASELINE",
"build_status": "PASSED",
"deep_path_regression_expected": "none (no deep-path contract change)",
"implemented": {
"address_mode_runtime_branch": true,
"intent_filter_recipe_pipeline": true,
"mcp_live_query_executor": true,
"address_debug_contract": true
},
"limitations": [
"open_contracts and open_items intents still limited",
"movement-based recipes only in baseline"
]
}

View File

@ -0,0 +1,22 @@
# Verification
Дата: 2026-03-29
## 1) TypeScript build
Команда: `npm run build` (backend)
Результат: PASS
## 2) Address lane smoke checks
Команды проверок (node scripts against `dist/`):
- `detectAddressQuestionMode('who owes us today')` -> `address_query`
- `AddressQueryService.tryHandle('who owes us today')` -> handled=true
- `AssistantService.handleMessage('who owes us today')` with normalizer stub -> ранний `assistant_message_address` path (normalizer не требуется)
Результат: PASS
## Примечание
Live MCP вернул `rows_fetched>0`, но `rows_matched=0` для receivables scope в тестовом запросе, поэтому ответ в `LIMITED_WITH_REASON` — это ожидаемое честное поведение на текущем baseline.

View File

@ -0,0 +1,29 @@
# Run README — Address Query Runtime V1 M2.1
Дата: 2026-03-29
Run ID: `2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy`
## Цель инкремента
Зафиксировать следующий шаг по согласованному плану:
- добавить `query_shape` в address-runtime debug;
- зафиксировать, что `COMPOUND_FACTUAL_QUERY` в M2.1 пока only-detection (без decomposition execution);
- развести limited-mode по категориям причин:
- `empty_match`
- `missing_anchor`
- `recipe_visibility_gap`
- `execution_error`
- `unsupported`
- добавить runtime-readiness статус в ответ address lane;
- не ломать deep-path и не допускать false-factual.
## Что проверено
- `npm run build` — PASS.
- `vitest` таргет на новый слой (`tests/addressQueryRuntimeM21.test.ts`) — PASS.
- dry-run через `/api/assistant/message` на 7 вопросах — сохранен в `assistant_window_dry_run_results.json`.
## Основной вывод
Address lane продолжает стабильно маршрутизироваться и теперь дает структурированную операционную диагностику причины ограничения. Основной блокер остался прежним: недостаточная видимость данных в текущих movement-based recipes для contract/document-heavy сценариев.

View File

@ -0,0 +1,138 @@
{
"generated_at": "2026-03-29T16:04:06.939Z",
"questions": [
{
"id": "Q1",
"question": "who owes us today",
"expected_intent": "list_receivables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q2",
"question": "who we owe today",
"expected_intent": "list_payables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "list_payables_counterparties",
"selected_recipe": "address_movements_payables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q3",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q4",
"question": "show open items by contract",
"expected_intent": "open_items_by_counterparty_or_contract",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "OBJECT_LOOKUP",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "missing_anchor",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: для open_items нужен якорь контрагента или договора.\nЧто нужно уточнить: укажите контрагента или номер/название договора."
},
{
"id": "Q5",
"question": "list open contracts as of today",
"expected_intent": "list_open_contracts",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "OBJECT_LOOKUP",
"detected_intent": "list_open_contracts",
"selected_recipe": "address_open_contracts_candidates_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "REQUIRES_SPECIALIZED_RECIPE",
"limited_reason_category": "recipe_visibility_gap",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Текущий live recipe не дает нужную видимость данных для этого сценария.\nПричина: в live строках нет договорных якорей для уверенного списка незакрытых договоров.\nЧто нужно уточнить: сузьте запрос по контрагенту или добав"
},
{
"id": "Q6",
"question": "show bank operations by counterparty Alfa",
"expected_intent": "unknown",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "unknown",
"selected_recipe": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"rows_matched": 0,
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору."
},
{
"id": "Q7",
"question": "who owes us and who we owe today",
"expected_intent": "list_receivables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "COMPOUND_FACTUAL_QUERY",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
}
]
}

View File

@ -0,0 +1,26 @@
{
"baseline_run": "2026-03-29_Address_Query_Runtime_V1_M2_Plus_OpenContracts_OpenItems",
"current_run": "2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy",
"changes": {
"debug_query_shape": {
"before": false,
"after": true
},
"debug_runtime_readiness": {
"before": false,
"after": true
},
"debug_limited_reason_category": {
"before": false,
"after": true
},
"limited_reason_taxonomy_depth": {
"before": 1,
"after": 4
},
"false_factual_rate": {
"before": 0.0,
"after": 0.0
}
}
}

View File

@ -0,0 +1,14 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/services/addressQueryShapeClassifier.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/assistantService.ts
llm_normalizer/backend/src/types/assistant.ts
llm_normalizer/backend/tests/addressQueryRuntimeM21.test.ts
docs/ADDRESS/address_query/address_runtime_contracts.md
docs/ADDRESS/address_query/runtime_readiness_matrix_v1.md
docs/ADDRESS/address_query/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy/run_summary.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy/smoke_checks.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy/before_after_metrics.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy/assistant_window_dry_run_results.json

View File

@ -0,0 +1,34 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_1_query_shape_plus_limited_taxonomy",
"build_status": "PASSED",
"tests_status": "PASSED",
"dry_run_status": "PASSED_WITH_LIMITED_RESULTS",
"implemented": {
"query_shape_classification": true,
"compound_query_execution_status": "detection_only",
"limited_reason_taxonomy": true,
"runtime_readiness_status": true,
"operational_limited_reply_text": true
},
"dry_run_metrics": {
"questions_total": 7,
"address_mode_hit_rate": 1.0,
"query_shape_detected_rate": 1.0,
"intent_alignment_rate": 1.0,
"supported_recipe_selection_rate": 0.7143,
"factual_positive_rate": 0.0,
"limited_mode_rate": 1.0,
"false_factual_rate": 0.0
},
"limited_reason_distribution": {
"empty_match": 4,
"missing_anchor": 1,
"recipe_visibility_gap": 1,
"unsupported": 1,
"execution_error": 0
},
"next_priority": "Sprint B specialized recipes for contract/document visibility"
}

View File

@ -0,0 +1,35 @@
# Smoke Checks
Дата: 2026-03-29
## Build
- `npm run build` -> PASS
## Tests
- `npx vitest run tests/addressQueryRuntimeM21.test.ts` -> PASS (5/5)
## Dry-run (assistant window equivalent)
Источник: `assistant_window_dry_run_results.json`
- total questions: 7
- `detected_mode=address_query`: 7/7
- `query_shape` detected: 7/7
- expected intent alignment: 7/7
- `selected_recipe` present: 5/7
- `response_type=LIMITED_WITH_REASON`: 7/7
- `false_factual_rate`: 0
### New diagnostics observed
- `query_shape` surfaced in debug payload.
- `runtime_readiness` surfaced in debug payload.
- `limited_reason_category` surfaced in debug payload.
### Limited taxonomy distribution
- `empty_match`: 4
- `missing_anchor`: 1
- `recipe_visibility_gap`: 1
- `unsupported`: 1
- `execution_error`: 0

View File

@ -0,0 +1,29 @@
# Run README — Address Query Runtime V1 M2.2
Дата: 2026-03-29
Run ID: `2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty`
## Цель инкремента
Сделать следующий практический шаг Sprint B:
- добавить intent `list_documents_by_counterparty`;
- добавить intent `bank_operations_by_counterparty`;
- добавить live recipes для этих intent;
- усилить extraction фильтров периода (`from/to`, `between/and`) и default period для by-counterparty сценариев;
- сохранить safety-контракт (`false_factual_rate = 0`) и честный limited mode.
## Что проверено
- `npm.cmd run build` — PASS.
- `npx.cmd vitest run tests/addressQueryRuntimeM22.test.ts` — PASS (7/7).
- dry-run через `/api/assistant/message` на 6 вопросах — сохранен в `assistant_window_dry_run_results.json`.
## Основной вывод
Address lane расширен на два новых P0-сценария и стабильно маршрутизирует их в правильные intent/recipe. При этом positive factual output пока не достигнут: текущий блокер — live visibility (преобладает `empty_match`), а не routing/intent detection.
## Важное ограничение M2.2
`COMPOUND_FACTUAL_QUERY` по-прежнему только detection-only.
M2.2 не включает multi-intent decomposition execution.

View File

@ -0,0 +1,162 @@
{
"generated_at": "2026-03-29T16:28:22.969Z",
"questions": [
{
"id": "Q1",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q2",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q3",
"question": "show bank operations by counterparty Alfa",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_to": "2026-03-29",
"period_from": "2025-12-29"
},
"missing_required_filters": [],
"mcp_call_status": "empty",
"rows_fetched": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q4",
"question": "show documents by contract 15/24",
"expected_intent": "unknown",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "unknown",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"contract": "15/24"
},
"missing_required_filters": [],
"mcp_call_status": "skipped",
"rows_fetched": 0,
"rows_matched": 0,
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору."
},
{
"id": "Q5",
"question": "show open items by contract",
"expected_intent": "open_items_by_counterparty_or_contract",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "OBJECT_LOOKUP",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [
"counterparty_or_contract"
],
"mcp_call_status": "skipped",
"rows_fetched": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "missing_anchor",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: для open_items нужен якорь контрагента или договора.\nЧто нужно уточнить: укажите контрагента или номер/название договора."
},
{
"id": "Q6",
"question": "who owes us today",
"expected_intent": "list_receivables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
}
]
}

View File

@ -0,0 +1,34 @@
{
"baseline_run": "2026-03-29_Address_Query_Runtime_V1_M2_1_QueryShape_LimitedTaxonomy",
"current_run": "2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty",
"changes": {
"intent_documents_by_counterparty": {
"before": false,
"after": true
},
"intent_bank_operations_by_counterparty": {
"before": false,
"after": true
},
"recipe_documents_by_counterparty_v1": {
"before": false,
"after": true
},
"recipe_bank_operations_by_counterparty_v1": {
"before": false,
"after": true
},
"period_range_extraction": {
"before": false,
"after": true
},
"default_period_for_by_counterparty": {
"before": false,
"after": true
},
"false_factual_rate": {
"before": 0.0,
"after": 0.0
}
}
}

View File

@ -0,0 +1,15 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/services/addressIntentResolver.ts
llm_normalizer/backend/src/services/addressFilterExtractor.ts
llm_normalizer/backend/src/services/addressRecipeCatalog.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/tests/addressQueryRuntimeM22.test.ts
docs/ADDRESS/address_query/address_scenario_matrix.md
docs/ADDRESS/address_query/query_recipes_v1.md
docs/ADDRESS/address_query/runtime_readiness_matrix_v1.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/run_summary.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/before_after_metrics.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/smoke_checks.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/assistant_window_dry_run_results.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/changed_files.txt

View File

@ -0,0 +1,35 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_2_documents_and_bank_ops_by_counterparty",
"build_status": "PASSED",
"tests_status": "PASSED",
"dry_run_status": "PASSED_WITH_LIMITED_RESULTS",
"implemented": {
"intent_documents_by_counterparty": true,
"intent_bank_operations_by_counterparty": true,
"recipe_documents_by_counterparty_v1": true,
"recipe_bank_operations_by_counterparty_v1": true,
"period_range_extraction": true,
"default_period_last_90_days_for_by_counterparty": true
},
"dry_run_metrics": {
"questions_total": 6,
"address_mode_hit_rate": 1.0,
"query_shape_detected_rate": 1.0,
"intent_alignment_rate": 1.0,
"supported_recipe_selection_rate": 0.6667,
"factual_positive_rate": 0.0,
"limited_mode_rate": 1.0,
"false_factual_rate": 0.0
},
"limited_reason_distribution": {
"empty_match": 4,
"missing_anchor": 1,
"recipe_visibility_gap": 0,
"unsupported": 1,
"execution_error": 0
},
"next_priority": "Sprint B Priority 3: documents_forming_balance + known-positive live suite execution"
}

View File

@ -0,0 +1,34 @@
# Smoke Checks
Дата: 2026-03-29
## Build
- `npm.cmd run build` -> PASS
## Tests
- `npx.cmd vitest run tests/addressQueryRuntimeM22.test.ts` -> PASS (7/7)
## Dry-run (assistant window equivalent)
Источник: `assistant_window_dry_run_results.json`
- total questions: 6
- `detected_mode=address_query`: 6/6
- `query_shape` detected: 6/6
- expected intent alignment: 6/6
- `selected_recipe` present: 4/6
- `response_type=LIMITED_WITH_REASON`: 6/6
- `false_factual_rate`: 0
### Limited taxonomy distribution
- `empty_match`: 4
- `missing_anchor`: 1
- `recipe_visibility_gap`: 0
- `unsupported`: 1
- `execution_error`: 0
### Operational note
`documents_by_counterparty` and `bank_operations_by_counterparty` are now implemented and routed correctly.
Current blocker remains live data visibility on selected anchors/periods (non-empty positive evidence suite still required).

View File

@ -0,0 +1,35 @@
# Run README — Address Query Runtime V1 M2.3a
Дата: 2026-03-29
Run ID: `2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization`
## Цель инкремента
Сделать узкий диагностический шаг после M2.3:
- развести `mcp_call_status` по стадиям;
- зафиксировать, где именно теряются строки (`raw -> account_scope -> materialization -> recipe_filter -> matched`);
- убрать неинформативный общий `empty` статус;
- подготовить техническую базу для следующего exploratory live pass.
## Что проверено
- `npm.cmd run build` — PASS.
- `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` — PASS (10/10).
- stage-diagnostic dry-run через `/api/assistant/message` на 5 core cases — сохранен в `assistant_window_stage_diagnostic_results.json`.
## Ключевой вывод
Диагностический паттерн стабилен:
- `raw_rows_received > 0`;
- `rows_after_account_scope = 0`;
- `rows_materialized = 0`;
- `rows_after_recipe_filter = 0`;
- `rows_matched = 0`.
То есть текущий primary bottleneck находится на account-scope filtration до materialization.
## Что это значит для next step
Следующий шаг нужно делать как targeted tuning account-scope per recipe, а уже затем запускать curated non-empty data-aware positive acceptance.

View File

@ -0,0 +1,242 @@
{
"generated_at": "2026-03-29T17:33:28.054Z",
"cases": [
{
"id": "D1",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"intent_aligned": true,
"selected_recipe": "address_movements_account_snapshot_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
},
{
"id": "D2",
"question": "which documents form balance for account 62 as of 2020-07-31",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"anchor_type": "account",
"anchor_value_raw": "62",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
},
{
"id": "D3",
"question": "reveal balance documents for account 60",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
},
{
"id": "D4",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
},
{
"id": "D5",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}
]
}

View File

@ -0,0 +1,26 @@
{
"baseline_run": "2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance",
"current_run": "2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization",
"changes": {
"mcp_call_status_granularity": {
"before": "ok|empty|error|skipped",
"after": "no_raw_rows|raw_rows_received_but_not_materialized|materialized_but_not_matched|matched_non_empty|error|skipped"
},
"debug_rows_after_account_scope": {
"before": false,
"after": true
},
"debug_materialization_drop_reason": {
"before": false,
"after": true
},
"test_suite_file": {
"before": "addressQueryRuntimeM22.test.ts",
"after": "addressQueryRuntimeM23.test.ts"
},
"factual_positive_rate": {
"before": 0,
"after": 0
}
}
}

View File

@ -0,0 +1,28 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/types/assistant.ts
llm_normalizer/backend/src/services/addressMcpClient.ts
llm_normalizer/backend/src/services/addressIntentResolver.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/assistantService.ts
llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts
llm_normalizer/backend/tests/addressQueryRuntimeM22.test.ts (deleted)
docs/ADDRESS/address_query/address_runtime_contracts.md
docs/ADDRESS/address_query/runtime_readiness_matrix_v1.md
docs/ADDRESS/address_query/address_scenario_matrix.md
docs/ADDRESS/address_query/data_aware_positive_acceptance_suite_v1.md
docs/ADDRESS/address_query/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/run_summary.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/before_after_metrics.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/smoke_checks.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/stage_diagnostic_report.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/stage_diagnostic_matrix.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/assistant_window_stage_diagnostic_results.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/chat_export_stage_diagnostic.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/live_call_inventory_address.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/debug_payloads/D1.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/debug_payloads/D2.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/debug_payloads/D3.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/debug_payloads/D4.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/debug_payloads/D5.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization/changed_files.txt

View File

@ -0,0 +1,44 @@
# Chat Export — Stage Diagnostic Pass (M2.3a)
Date: 2026-03-29
## D1
Question: show account balance 60 today
Detected intent: account_balance_snapshot
MCP stage status: raw_rows_received_but_not_materialized
Preview (escaped): \u0412 live-\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.
\u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0432 live-\u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.
\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c: \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430, \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0438\u043b\u0438 \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.
## D2
Question: which documents form balance for account 62 as of 2020-07-31
Detected intent: documents_forming_balance
MCP stage status: raw_rows_received_but_not_materialized
Preview (escaped): \u0412 live-\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.
\u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0432 live-\u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.
\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c: \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430, \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0438\u043b\u0438 \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.
## D3
Question: reveal balance documents for account 60
Detected intent: documents_forming_balance
MCP stage status: raw_rows_received_but_not_materialized
Preview (escaped): \u0412 live-\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.
\u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0432 live-\u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.
\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c: \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430, \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0438\u043b\u0438 \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.
## D4
Question: show documents by counterparty Alfa from 2020-07-01 to 2020-07-31
Detected intent: list_documents_by_counterparty
MCP stage status: raw_rows_received_but_not_materialized
Preview (escaped): \u0412 live-\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.
\u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0432 live-\u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.
\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c: \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430, \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0438\u043b\u0438 \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.
## D5
Question: show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31
Detected intent: bank_operations_by_counterparty
MCP stage status: raw_rows_received_but_not_materialized
Preview (escaped): \u0412 live-\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.
\u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c \u0432 live-\u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.
\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c: \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430, \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0438\u043b\u0438 \u0441\u043d\u0438\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432.

View File

@ -0,0 +1,47 @@
{
"id": "D1",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"intent_aligned": true,
"selected_recipe": "address_movements_account_snapshot_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"РЎСѓРјРјР°",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}

View File

@ -0,0 +1,47 @@
{
"id": "D2",
"question": "which documents form balance for account 62 as of 2020-07-31",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"anchor_type": "account",
"anchor_value_raw": "62",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"РЎСѓРјРјР°",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}

View File

@ -0,0 +1,47 @@
{
"id": "D3",
"question": "reveal balance documents for account 60",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"РЎСѓРјРјР°",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}

View File

@ -0,0 +1,48 @@
{
"id": "D4",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"РЎСѓРјРјР°",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}

View File

@ -0,0 +1,48 @@
{
"id": "D5",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"РЎСѓРјРјР°",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "\\u0412 live-\\u0434\\u0430\\u043d\\u043d\\u044b\\u0445 \\u043f\\u043e \\u0442\\u0435\\u043a\\u0443\\u0449\\u0435\\u043c\\u0443 \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0443 \\u0437\\u0430\\u043f\\u0438\\u0441\\u0438 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u044b.\n\\u041f\\u0440\\u0438\\u0447\\u0438\\u043d\\u0430: \\u043f\\u043e \\u0432\\u044b\\u0431\\u0440\\u0430\\u043d\\u043d\\u044b\\u043c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u0430\\u043c \\u0432 live-\\u0432\\u044b\\u0431\\u043e\\u0440\\u043a\\u0435 \\u043d\\u0435\\u0442 \\u0441\\u0442\\u0440\\u043e\\u043a.\n\\u0427\\u0442\\u043e \\u043d\\u0443\\u0436\\u043d\\u043e \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u044c: \\u0443\\u0442\\u043e\\u0447\\u043d\\u0438\\u0442\\u0435 \\u043f\\u0435\\u0440\\u0438\\u043e\\u0434, \\u043a\\u043e\\u043d\\u0442\\u0440\\u0430\\u0433\\u0435\\u043d\\u0442\\u0430, \\u0434\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u0438\\u043b\\u0438 \\u0441\\u043d\\u0438\\u043c\\u0438\\u0442\\u0435 \\u0447\\u0430\\u0441\\u0442\\u044c \\u0444\\u0438\\u043b\\u044c\\u0442\\u0440\\u043e\\u0432."
}

View File

@ -0,0 +1,72 @@
[
{
"case_id": "D1",
"question": "show account balance 60 today",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"materialization_drop_reason": "dropped_by_account_scope_filter",
"limited_reason_category": "empty_match"
},
{
"case_id": "D2",
"question": "which documents form balance for account 62 as of 2020-07-31",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"materialization_drop_reason": "dropped_by_account_scope_filter",
"limited_reason_category": "empty_match"
},
{
"case_id": "D3",
"question": "reveal balance documents for account 60",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"materialization_drop_reason": "dropped_by_account_scope_filter",
"limited_reason_category": "empty_match"
},
{
"case_id": "D4",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"detected_intent": "list_documents_by_counterparty",
"selected_recipe": "address_documents_by_counterparty_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"materialization_drop_reason": "dropped_by_account_scope_filter",
"limited_reason_category": "empty_match"
},
{
"case_id": "D5",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"materialization_drop_reason": "dropped_by_account_scope_filter",
"limited_reason_category": "empty_match"
}
]

View File

@ -0,0 +1,39 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_3a_stage_diagnostic_raw_to_materialization",
"build_status": "PASSED",
"tests_status": "PASSED",
"diagnostic_run_status": "COMPLETED",
"implemented": {
"mcp_stage_status_taxonomy": true,
"row_stage_counters_with_account_scope": true,
"materialization_drop_reason": true,
"test_suite_renamed_to_m23": true,
"mojibake_safe_preview_export": true
},
"diagnostic_metrics": {
"cases_total": 5,
"address_mode_hit_rate": 1,
"intent_alignment_rate": 1,
"supported_recipe_selection_rate": 1,
"factual_positive_rate": 0,
"limited_mode_rate": 1,
"false_factual_rate": 0
},
"stage_status_distribution": [
{
"status": "raw_rows_received_but_not_materialized",
"count": 5
}
],
"drop_reason_distribution": [
{
"reason": "dropped_by_account_scope_filter",
"count": 5
}
],
"primary_bottleneck": "rows drop at account_scope stage before materialization (raw_rows_received \u003e 0 and rows_after_account_scope = 0)",
"next_priority": "tune account_scope strategy per recipe, then rerun curated data-aware positive suite"
}

View File

@ -0,0 +1,36 @@
# Smoke Checks
Дата: 2026-03-29
## Build
- `npm.cmd run build` -> PASS
## Tests
- `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` -> PASS (10/10)
## Stage-diagnostic run
Источник: `assistant_window_stage_diagnostic_results.json`
- total cases: 5
- `detected_mode=address_query`: 5/5
- expected intent alignment: 5/5
- `selected_recipe` present: 5/5
- `response_type=LIMITED_WITH_REASON`: 5/5
- `false_factual_rate`: 0
### MCP stage distribution
- `raw_rows_received_but_not_materialized`: 5
### Row stage pattern
- `raw_rows_received`: non-zero
- `rows_after_account_scope`: 0
- `rows_materialized`: 0
- `rows_after_recipe_filter`: 0
- `rows_matched`: 0
### Interpretation
Current bottleneck is account-scope filtering before materialization.

View File

@ -0,0 +1,7 @@
| case_id | intent | mcp_call_status | raw_rows | after_account_scope | materialized | after_recipe_filter | matched | drop_reason |
|---|---|---|---|---|---|---|---|---|
| D1 | account_balance_snapshot | raw_rows_received_but_not_materialized | 20 | 0 | 0 | 0 | 0 | dropped_by_account_scope_filter |
| D2 | documents_forming_balance | raw_rows_received_but_not_materialized | 20 | 0 | 0 | 0 | 0 | dropped_by_account_scope_filter |
| D3 | documents_forming_balance | raw_rows_received_but_not_materialized | 20 | 0 | 0 | 0 | 0 | dropped_by_account_scope_filter |
| D4 | list_documents_by_counterparty | raw_rows_received_but_not_materialized | 20 | 0 | 0 | 0 | 0 | dropped_by_account_scope_filter |
| D5 | bank_operations_by_counterparty | raw_rows_received_but_not_materialized | 20 | 0 | 0 | 0 | 0 | dropped_by_account_scope_filter |

View File

@ -0,0 +1,43 @@
# Stage Diagnostic Report (M2.3a)
Дата: 2026-03-29
## Examined cases
- `account_balance_snapshot`
- `documents_forming_balance` (2 variants)
- `documents_by_counterparty`
- `bank_operations_by_counterparty`
## Diagnostic chain
For each case we tracked:
- `raw_rows_received`
- `rows_after_account_scope`
- `rows_materialized`
- `rows_after_recipe_filter`
- `rows_matched`
## Observed bottleneck
All examined cases show the same drop profile:
1. MCP returns raw rows (`raw_rows_received > 0`).
2. Account-scope stage removes all rows (`rows_after_account_scope = 0`).
3. Materialization and matching remain zero by consequence.
## Technical classification
- `mcp_call_status`: `raw_rows_received_but_not_materialized`
- `materialization_drop_reason`: `dropped_by_account_scope_filter`
## Practical conclusion
At this stage the primary blocker for positive factual outputs is not intent/routing, but scope filtration strategy.
## Next implementation focus
1. Tune account-scope strategy per recipe (not one shared pattern for all intents).
2. Rerun stage-diagnostic pass to confirm non-zero `rows_after_account_scope`.
3. Only then run curated data-aware positive acceptance suite.

View File

@ -0,0 +1,22 @@
# Run README ? Address Query Runtime V1 M2.3b
????: 2026-03-29
Run ID: `2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning`
## ???? ??????????
- ????????? account-scope ?? ?????? `strict/preferred` ?? recipe;
- ?????? ?????? blind-drop ??? non-account intents ????? controlled fallback;
- ????????? `false_factual_rate = 0` ? ??????????????? ????????????.
## ??? ?????????
- `npm.cmd run build` ? PASS.
- `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` ? PASS (10/10).
- stage-diagnostic replay D1-D5 ? ???????? ? `assistant_window_stage_diagnostic_results.json`.
## ???????? ?????
- ??? strict account intents (D1-D3) ????? ????? ???????? ? account-scope.
- ??? preferred intents (D4-D5) rows ?????? materialize, ?? ?? match ?? anchors/recipe-????????.
- ????????? ???: resolver/filter tuning + curated positive live suite.

View File

@ -0,0 +1,252 @@
{
"generated_at": "2026-03-29T17:43:53.319Z",
"cases": [
{
"id": "D1",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"intent_aligned": true,
"selected_recipe": "address_movements_account_snapshot_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "В live-данных по текущему фильтру записи не найдены.\\nПричина: по выбранным фильтрам в live-выборке нет строк.\\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "D2",
"question": "which documents form balance for account 62 as of 2020-07-31",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "62",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "В live-данных по текущему фильтру записи не найдены.\\nПричина: по выбранным фильтрам в live-выборке нет строк.\\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "D3",
"question": "reveal balance documents for account 60",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"intent_aligned": true,
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"stage_interpretation": "Rows came from MCP but were lost before/at materialization.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "В live-данных по текущему фильтру записи не найдены.\\nПричина: по выбранным фильтрам в live-выборке нет строк.\\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "D4",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "materialized_but_not_matched",
"stage_interpretation": "Rows materialized but were filtered out by recipe/anchors.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_materialized": 20,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "none",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "В live-данных по текущему фильтру записи не найдены.\\nПричина: по выбранным фильтрам в live-выборке нет строк.\\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "D5",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"intent_aligned": true,
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "materialized_but_not_matched",
"stage_interpretation": "Rows materialized but were filtered out by recipe/anchors.",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_materialized": 20,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "none",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview_escaped": "В live-данных по текущему фильтру записи не найдены.\\nПричина: по выбранным фильтрам в live-выборке нет строк.\\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
}
]
}

View File

@ -0,0 +1,27 @@
{
"baseline_run": "2026-03-29_Address_Query_Runtime_V1_M2_3A_Stage_Diagnostic_Materialization",
"current_run": "2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning",
"metrics": {
"mcp_status_raw_rows_received_but_not_materialized": {
"before": 1,
"after": 0.6
},
"mcp_status_materialized_but_not_matched": {
"before": 0,
"after": 0.4
},
"account_scope_fallback_applied_rate": {
"before": 0,
"after": 0.4
},
"false_factual_rate": {
"before": 0,
"after": 0
},
"factual_positive_rate": {
"before": 0,
"after": 0
}
},
"note": "M2.3b moves part of scenarios beyond pre-materialization loss without introducing false factual."
}

View File

@ -0,0 +1,26 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/types/assistant.ts
llm_normalizer/backend/src/services/addressRecipeCatalog.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/assistantService.ts
llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts
docs/ADDRESS/address_query/address_runtime_contracts.md
docs/ADDRESS/address_query/query_recipes_v1.md
docs/ADDRESS/address_query/runtime_readiness_matrix_v1.md
docs/ADDRESS/address_query/address_scenario_matrix.md
docs/ADDRESS/address_query/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/run_summary.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/before_after_metrics.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/smoke_checks.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/stage_diagnostic_report.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/stage_diagnostic_matrix.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/assistant_window_stage_diagnostic_results.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/chat_export_stage_diagnostic.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/live_call_inventory_address.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/debug_payloads/D1.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/debug_payloads/D2.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/debug_payloads/D3.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/debug_payloads/D4.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/debug_payloads/D5.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning/changed_files.txt

View File

@ -0,0 +1,37 @@
# Chat Export (M2.3b)
## D1
- Q: show account balance 60 today
- intent: account_balance_snapshot
- status: raw_rows_received_but_not_materialized
- response_type: LIMITED_WITH_REASON
- reply: В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## D2
- Q: which documents form balance for account 62 as of 2020-07-31
- intent: documents_forming_balance
- status: raw_rows_received_but_not_materialized
- response_type: LIMITED_WITH_REASON
- reply: В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## D3
- Q: reveal balance documents for account 60
- intent: documents_forming_balance
- status: raw_rows_received_but_not_materialized
- response_type: LIMITED_WITH_REASON
- reply: В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## D4
- Q: show documents by counterparty Alfa from 2020-07-01 to 2020-07-31
- intent: list_documents_by_counterparty
- status: materialized_but_not_matched
- response_type: LIMITED_WITH_REASON
- reply: В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## D5
- Q: show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31
- intent: bank_operations_by_counterparty
- status: materialized_but_not_matched
- response_type: LIMITED_WITH_REASON
- reply: В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.

View File

@ -0,0 +1,60 @@
{
"question": "show account balance 60 today",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"debug": {
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "AGGREGATE_LOOKUP",
"query_shape_confidence": "high",
"detected_intent": "account_balance_snapshot",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"selected_recipe": "address_movements_account_snapshot_v1",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "60",
"anchor_value_resolved": "60",
"resolver_confidence": "high",
"ambiguity_count": 0,
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"limitations": [
"no_rows_after_recipe_and_scope_filter"
],
"reasons": [
"address_action_detected",
"address_entity_detected",
"aggregate_signal_detected",
"account_balance_signal_detected"
]
}
}

View File

@ -0,0 +1,60 @@
{
"question": "which documents form balance for account 62 as of 2020-07-31",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"debug": {
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "documents_forming_balance",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"missing_required_filters": [],
"selected_recipe": "address_documents_forming_balance_v1",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "62",
"anchor_value_resolved": "62",
"resolver_confidence": "high",
"ambiguity_count": 0,
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"limitations": [
"no_rows_after_recipe_and_scope_filter"
],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"documents_forming_balance_signal_detected"
]
}
}

View File

@ -0,0 +1,60 @@
{
"question": "reveal balance documents for account 60",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"debug": {
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "documents_forming_balance",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"selected_recipe": "address_documents_forming_balance_v1",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "account",
"anchor_value_raw": "60",
"anchor_value_resolved": "60",
"resolver_confidence": "high",
"ambiguity_count": 0,
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "dropped_by_account_scope_filter",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"limitations": [
"no_rows_after_recipe_and_scope_filter"
],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"documents_forming_balance_signal_detected"
]
}
}

View File

@ -0,0 +1,61 @@
{
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"debug": {
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "list_documents_by_counterparty",
"detected_intent_confidence": "medium",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"selected_recipe": "address_documents_by_counterparty_v1",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"anchor_value_resolved": "Alfa",
"resolver_confidence": "medium",
"ambiguity_count": 0,
"mcp_call_status": "materialized_but_not_matched",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_after_recipe_filter": 0,
"rows_materialized": 20,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "none",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"limitations": [
"no_rows_after_recipe_and_scope_filter"
],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"documents_by_counterparty_signal_detected"
]
}
}

View File

@ -0,0 +1,61 @@
{
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"debug": {
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "bank_operations_by_counterparty",
"detected_intent_confidence": "medium",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"anchor_value_resolved": "Alfa",
"resolver_confidence": "medium",
"ambiguity_count": 0,
"mcp_call_status": "materialized_but_not_matched",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_after_recipe_filter": 0,
"rows_materialized": 20,
"rows_matched": 0,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"AccountKt",
"Amount"
],
"materialization_drop_reason": "none",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"limitations": [
"no_rows_after_recipe_and_scope_filter"
],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"bank_ops_by_counterparty_signal_detected"
]
}
}

View File

@ -0,0 +1,74 @@
{
"cases": [
{
"case_id": "D1",
"selected_recipe": "address_movements_account_snapshot_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"materialization_drop_reason": "dropped_by_account_scope_filter"
},
{
"case_id": "D2",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"materialization_drop_reason": "dropped_by_account_scope_filter"
},
{
"case_id": "D3",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "raw_rows_received_but_not_materialized",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"materialization_drop_reason": "dropped_by_account_scope_filter"
},
{
"case_id": "D4",
"selected_recipe": "address_documents_by_counterparty_v1",
"mcp_call_status": "materialized_but_not_matched",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_materialized": 20,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"materialization_drop_reason": "none"
},
{
"case_id": "D5",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"mcp_call_status": "materialized_but_not_matched",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_materialized": 20,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"account_scope_mode": "preferred",
"account_scope_fallback_applied": true,
"materialization_drop_reason": "none"
}
]
}

View File

@ -0,0 +1,47 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_3B_AccountScope_Mode_Tuning",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_3b_account_scope_mode_tuning_after_stage_diagnostic",
"build_status": "PASSED",
"tests_status": "PASSED",
"diagnostic_run_status": "COMPLETED",
"implemented": {
"account_scope_mode_by_recipe": true,
"strict_mode_for_account_intents": true,
"preferred_mode_with_fallback_for_party_intents": true,
"account_filter_moved_to_normalized_stage": true,
"debug_scope_mode_and_fallback": true
},
"diagnostic_metrics": {
"cases_total": 5,
"address_mode_hit_rate": 1,
"intent_alignment_rate": 1,
"supported_recipe_selection_rate": 1,
"factual_positive_rate": 0,
"limited_mode_rate": 1,
"false_factual_rate": 0
},
"stage_status_distribution": [
{
"status": "raw_rows_received_but_not_materialized",
"count": 3
},
{
"status": "materialized_but_not_matched",
"count": 2
}
],
"drop_reason_distribution": [
{
"reason": "dropped_by_account_scope_filter",
"count": 3
},
{
"reason": "none",
"count": 2
}
],
"primary_bottleneck": "strict account intents still lose rows at account-scope stage; preferred intents now reach materialized_but_not_matched stage",
"next_priority": "run focused resolver/anchor tuning and curated positive live suite for non-empty matches"
}

View File

@ -0,0 +1,5 @@
# Smoke Checks (M2.3b)
1. `npm.cmd run build` - PASS
2. `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` - PASS
3. Stage diagnostic replay D1-D5 - COMPLETED (5 cases)

View File

@ -0,0 +1,9 @@
# Stage Diagnostic Matrix (M2.3b)
| case | intent | account_scope_mode | fallback | mcp_call_status | rows_after_account_scope | rows_materialized | rows_after_recipe_filter | rows_matched |
|---|---|---|---:|---|---:|---:|---:|---:|
| D1 | account_balance_snapshot | strict | no | raw_rows_received_but_not_materialized | 0 | 0 | 0 | 0 |
| D2 | documents_forming_balance | strict | no | raw_rows_received_but_not_materialized | 0 | 0 | 0 | 0 |
| D3 | documents_forming_balance | strict | no | raw_rows_received_but_not_materialized | 0 | 0 | 0 | 0 |
| D4 | list_documents_by_counterparty | preferred | yes | materialized_but_not_matched | 20 | 20 | 0 | 0 |
| D5 | bank_operations_by_counterparty | preferred | yes | materialized_but_not_matched | 20 | 20 | 0 | 0 |

View File

@ -0,0 +1,19 @@
# Stage Diagnostic Report (M2.3b)
- Date: 2026-03-29
- Goal: apply account-scope strategy by recipe (`strict` vs `preferred`) and re-run D1-D5.
## Findings
- D1-D3 (account intents) stay in `strict` mode and still fail at account-scope stage.
- D4-D5 (counterparty intents) use `preferred` mode with fallback and now reach `materialized_but_not_matched`.
- This confirms the bottleneck moved forward for non-account intents: now main loss is at anchor/recipe matching, not at pre-materialization scope cut.
## Decision
- Keep `strict` for explicit account intents (`account_balance_snapshot`, `documents_forming_balance`).
- Keep `preferred` for counterparty/contract-oriented intents to avoid blind early row loss.
## Next Step
- Launch focused resolver and filter tuning for counterparty anchors, then run curated positive live suite.

View File

@ -0,0 +1,30 @@
# Run README — Address Query Runtime V1 M2.3
Дата: 2026-03-29
Run ID: `2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance`
## Цель инкремента
- синхронизировать docs и runtime policy: `runtime=data-agnostic`, `acceptance=data-aware`;
- добавить новый intent `documents_forming_balance`;
- добавить drilldown recipe `address_documents_forming_balance_v1`;
- расширить debug-контракт: resolver block + row-stage flow block;
- собрать отдельный M2.3 dry-run пакет для следующего live-positive прохода.
## Что проверено
- `npm.cmd run build` - PASS.
- `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` - PASS (10/10).
- dry-run через `/api/assistant/message` на 8 вопросах - сохранен в `assistant_window_dry_run_results.json`.
## Ключевой вывод
Routing/intent/shape остаются стабильными, `documents_forming_balance` корректно маршрутизируется и получает recipe.
Новый debug-блок по anchor/resolver/row-stages присутствует в 100% кейсов.
При этом positive factual в этом пакете еще не получен (`factual_positive_rate = 0`), поэтому следующий обязательный шаг — отдельный data-aware exploratory pass по live для curated non-empty acceptance cases.
## Ограничение текущего пакета
- Это dry-run safety + instrumentation пакет.
- Data-aware positive acceptance в этом run только подготовлен структурно, но не закрыт по non-empty factual.

View File

@ -0,0 +1,261 @@
{
"generated_at": "2026-03-29T17:00:07.144Z",
"questions": [
{
"id": "Q1",
"question": "which documents form balance for account 62 as of 2020-07-31",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"missing_required_filters": [],
"anchor_type": "account",
"anchor_value_raw": "62",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q2",
"question": "reveal balance documents for account 60",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q3",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q4",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [],
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q5",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
},
{
"id": "Q6",
"question": "show open items by contract",
"expected_intent": "open_items_by_counterparty_or_contract",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "OBJECT_LOOKUP",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [
"counterparty_or_contract"
],
"anchor_type": "unknown",
"anchor_value_raw": null,
"resolver_confidence": "low",
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "missing_anchor",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: для open_items нужен якорь контрагента или договора.\nЧто нужно уточнить: укажите контрагента или номер/название договора."
},
{
"id": "Q7",
"question": "show documents by contract 15/24",
"expected_intent": "unknown",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "unknown",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"contract": "15/24"
},
"missing_required_filters": [],
"anchor_type": "contract",
"anchor_value_raw": "15/24",
"resolver_confidence": "medium",
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору."
},
{
"id": "Q8",
"question": "who owes us and who we owe today",
"expected_intent": "list_receivables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "COMPOUND_FACTUAL_QUERY",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"as_of_date": "2026-03-29"
},
"missing_required_filters": [],
"anchor_type": "unknown",
"anchor_value_raw": null,
"resolver_confidence": "low",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров."
}
]
}

View File

@ -0,0 +1,30 @@
{
"baseline_run": "2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty",
"current_run": "2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance",
"changes": {
"intent_documents_forming_balance": {
"before": false,
"after": true
},
"recipe_documents_forming_balance_v1": {
"before": false,
"after": true
},
"debug_anchor_resolution_block": {
"before": false,
"after": true
},
"debug_row_stage_flow_block": {
"before": false,
"after": true
},
"supported_recipe_selection_rate": {
"before": 0.6667,
"after": 0.75
},
"false_factual_rate": {
"before": 0.0,
"after": 0.0
}
}
}

View File

@ -0,0 +1,30 @@
llm_normalizer/backend/src/types/addressQuery.ts
llm_normalizer/backend/src/services/addressIntentResolver.ts
llm_normalizer/backend/src/services/addressFilterExtractor.ts
llm_normalizer/backend/src/services/addressRecipeCatalog.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/assistantService.ts
llm_normalizer/backend/src/types/assistant.ts
llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts
docs/ADDRESS/address_query/address_runtime_contracts.md
docs/ADDRESS/address_query/runtime_readiness_matrix_v1.md
docs/ADDRESS/address_query/address_scenario_matrix.md
docs/ADDRESS/address_query/README.md
docs/ADDRESS/address_query/data_aware_positive_acceptance_suite_v1.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/README.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/run_summary.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/before_after_metrics.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/data_aware_acceptance_case_matrix.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/assistant_window_dry_run_results.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/chat_export_data_aware_live.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/live_call_inventory_address.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/smoke_checks.md
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q1.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q2.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q3.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q4.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q5.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q6.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q7.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q8.json
docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/changed_files.txt

View File

@ -0,0 +1,68 @@
# Chat Export — Data-Aware Live (Dry-Run Proxy)
Date: 2026-03-29
## Q1
Question: which documents form balance for account 62 as of 2020-07-31
Detected intent: documents_forming_balance
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## Q2
Question: reveal balance documents for account 60
Detected intent: documents_forming_balance
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## Q3
Question: show documents by counterparty Alfa from 2020-07-01 to 2020-07-31
Detected intent: list_documents_by_counterparty
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## Q4
Question: show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31
Detected intent: bank_operations_by_counterparty
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## Q5
Question: show account balance 60 today
Detected intent: account_balance_snapshot
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.
## Q6
Question: show open items by contract
Detected intent: open_items_by_counterparty_or_contract
Reply type: partial_coverage
Preview: Для точного адресного поиска не хватает обязательного якоря.
Причина: для open_items нужен якорь контрагента или договора.
Что нужно уточнить: укажите контрагента или номер/название договора.
## Q7
Question: show documents by contract 15/24
Detected intent: unknown
Reply type: partial_coverage
Preview: Р­СРѕС Р·Р°РїСЂРѕСЃ РЅРµ РїРѕРґС…РѕРґРёС‚ РїРѕРґ address_query V1.
Причина: intent пока не поддержан в address V1.
Что нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.
## Q8
Question: who owes us and who we owe today
Detected intent: list_receivables_counterparties
Reply type: partial_coverage
Preview: Рlive-данных по текущему фильтру записи не найдены.
Причина: по выбранным фильтрам в live-выборке нет строк.
Что нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.

View File

@ -0,0 +1,19 @@
# Data-Aware Acceptance Case Matrix (M2.3 Dry-Run)
Дата: 2026-03-29
| case_id | question | expected_intent | selected_recipe | expected_non_empty | actual_non_empty | result | notes |
|---|---|---|---|---|---|---|---|
| Q1 | which documents form balance for account 62 as of 2020-07-31 | documents_forming_balance | address_documents_forming_balance_v1 | TBD (positive candidate) | no | limited(empty_match) | intent+recipe path correct |
| Q2 | reveal balance documents for account 60 | documents_forming_balance | address_documents_forming_balance_v1 | TBD (positive candidate) | no | limited(empty_match) | as_of defaulted to today |
| Q3 | show documents by counterparty Alfa from 2020-07-01 to 2020-07-31 | list_documents_by_counterparty | address_documents_by_counterparty_v1 | TBD (positive candidate) | no | limited(empty_match) | counterparty anchor resolved |
| Q4 | show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31 | bank_operations_by_counterparty | address_bank_operations_by_counterparty_v1 | TBD (positive candidate) | no | limited(empty_match) | bank recipe path correct |
| Q5 | show account balance 60 today | account_balance_snapshot | address_movements_account_snapshot_v1 | TBD (positive candidate) | no | limited(empty_match) | aggregate lane stable |
| Q6 | show open items by contract | open_items_by_counterparty_or_contract | - | no | no | limited(missing_anchor) | expected safety behavior |
| Q7 | show documents by contract 15/24 | unknown | - | no | no | limited(unsupported) | expected until M2.4 |
| Q8 | who owes us and who we owe today | list_receivables_counterparties | address_movements_receivables_v1 | no (compound detect-only) | no | limited(empty_match) | decomposition still not implemented |
## Matrix note
Этот файл фиксирует dry-run safety/reliability состояние.
Для фактического `data_aware_positive_non_empty_rate` нужен отдельный exploratory live pass с подбором non-empty anchors.

View File

@ -0,0 +1,34 @@
{
"id": "Q1",
"question": "which documents form balance for account 62 as of 2020-07-31",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "62",
"as_of_date": "2020-07-31"
},
"missing_required_filters": [
],
"anchor_type": "account",
"anchor_value_raw": "62",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,34 @@
{
"id": "Q2",
"question": "reveal balance documents for account 60",
"expected_intent": "documents_forming_balance",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [
],
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,35 @@
{
"id": "Q3",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "list_documents_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "list_documents_by_counterparty",
"selected_recipe": "address_documents_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [
],
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,35 @@
{
"id": "Q4",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"expected_intent": "bank_operations_by_counterparty",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "Alfa",
"period_from": "2020-07-01",
"period_to": "2020-07-31"
},
"missing_required_filters": [
],
"anchor_type": "counterparty",
"anchor_value_raw": "Alfa",
"resolver_confidence": "medium",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,34 @@
{
"id": "Q5",
"question": "show account balance 60 today",
"expected_intent": "account_balance_snapshot",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "AGGREGATE_LOOKUP",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"account": "60",
"as_of_date": "2026-03-29"
},
"missing_required_filters": [
],
"anchor_type": "account",
"anchor_value_raw": "60",
"resolver_confidence": "high",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,32 @@
{
"id": "Q6",
"question": "show open items by contract",
"expected_intent": "open_items_by_counterparty_or_contract",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "OBJECT_LOOKUP",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [
"counterparty_or_contract"
],
"anchor_type": "unknown",
"anchor_value_raw": null,
"resolver_confidence": "low",
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "missing_anchor",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Для точного адресного РїРѕРёСЃРєР° РЅРµ хватает обязательного СЏРєРѕСЂСЏ.\nРџСЂРёСРёРЅР°: для open_items нужен СЏРєРѕСЂСЊ контрагента или РґРѕРіРѕРІРѕСЂР°.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: укажите контрагента или номер/название РґРѕРіРѕРІРѕСЂР°."
}

View File

@ -0,0 +1,33 @@
{
"id": "Q7",
"question": "show documents by contract 15/24",
"expected_intent": "unknown",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "DOCUMENT_LIST",
"detected_intent": "unknown",
"selected_recipe": null,
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"contract": "15/24"
},
"missing_required_filters": [
],
"anchor_type": "contract",
"anchor_value_raw": "15/24",
"resolver_confidence": "medium",
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р­СРѕС Р·Р°РїСЂРѕСЃ РЅРµ РїРѕРґС…РѕРґРёС‚ РїРѕРґ address_query V1.\nРџСЂРёСРёРЅР°: intent РїРѕРєР° РЅРµ поддержан РІ address V1.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: переформулируйте РІРѕРїСЂРѕСЃ как адресный lookup РїРѕ счету/контрагенту/РґРѕРіРѕРІРѕСЂСѓ."
}

View File

@ -0,0 +1,33 @@
{
"id": "Q8",
"question": "who owes us and who we owe today",
"expected_intent": "list_receivables_counterparties",
"http_status": 200,
"ok": true,
"detected_mode": "address_query",
"query_shape": "COMPOUND_FACTUAL_QUERY",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"as_of_date": "2026-03-29"
},
"missing_required_filters": [
],
"anchor_type": "unknown",
"anchor_value_raw": null,
"resolver_confidence": "low",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON",
"reply_type": "partial_coverage",
"assistant_reply_preview": "Р live-данных РїРѕ текущему фильтру записи РЅРµ найдены.\nРџСЂРёСРёРЅР°: РїРѕ выбранным фильтрам РІ live-выборке нет строк.\nР§СРѕ РЅСѓР¶РЅРѕ уточнить: уточните период, контрагента, РґРѕРіРѕРІРѕСЂ или снимите часть фильтров."
}

View File

@ -0,0 +1,122 @@
[
{
"case_id": "Q1",
"question": "which documents form balance for account 62 as of 2020-07-31",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q2",
"question": "reveal balance documents for account 60",
"detected_intent": "documents_forming_balance",
"selected_recipe": "address_documents_forming_balance_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q3",
"question": "show documents by counterparty Alfa from 2020-07-01 to 2020-07-31",
"detected_intent": "list_documents_by_counterparty",
"selected_recipe": "address_documents_by_counterparty_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q4",
"question": "show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31",
"detected_intent": "bank_operations_by_counterparty",
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q5",
"question": "show account balance 60 today",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q6",
"question": "show open items by contract",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "missing_anchor",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q7",
"question": "show documents by contract 15/24",
"detected_intent": "unknown",
"selected_recipe": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON"
},
{
"case_id": "Q8",
"question": "who owes us and who we owe today",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_materialized": 0,
"rows_after_recipe_filter": 0,
"rows_matched": 0,
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": "empty_match",
"response_type": "LIMITED_WITH_REASON"
}
]

View File

@ -0,0 +1,44 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_3_documents_forming_balance_plus_data_aware_acceptance_sync",
"build_status": "PASSED",
"tests_status": "PASSED",
"dry_run_status": "PASSED_WITH_LIMITED_RESULTS",
"implemented": {
"intent_documents_forming_balance": true,
"recipe_documents_forming_balance_v1": true,
"required_filters_account_as_of_for_balance_intents": true,
"as_of_defaulting_for_balance_intents": true,
"resolver_debug_block": true,
"row_stage_debug_block": true,
"docs_sync_data_aware_policy": true
},
"dry_run_metrics": {
"questions_total": 8,
"address_mode_hit_rate": 1.0,
"query_shape_detected_rate": 1.0,
"intent_alignment_rate": 1.0,
"supported_recipe_selection_rate": 0.75,
"factual_positive_rate": 0.0,
"limited_mode_rate": 1.0,
"false_factual_rate": 0.0,
"anchor_debug_coverage_rate": 1.0,
"row_stage_debug_coverage_rate": 1.0
},
"limited_reason_distribution": {
"empty_match": 6,
"missing_anchor": 1,
"unsupported": 1,
"recipe_visibility_gap": 0,
"execution_error": 0
},
"data_aware_acceptance_status": {
"suite_defined": true,
"exploratory_live_pass_completed": false,
"known_positive_non_empty_rate": 0.0,
"status": "prepared_for_next_live_iteration"
},
"next_priority": "Run exploratory live pass and curate non-empty data-aware positive acceptance cases"
}

View File

@ -0,0 +1,36 @@
# Smoke Checks
Дата: 2026-03-29
## Build
- `npm.cmd run build` -> PASS
## Tests
- `npx.cmd vitest run tests/addressQueryRuntimeM23.test.ts` -> PASS (10/10)
## Dry-run (assistant window equivalent)
Источник: `assistant_window_dry_run_results.json`
- total questions: 8
- `detected_mode=address_query`: 8/8
- `query_shape` detected: 8/8
- expected intent alignment: 8/8
- `selected_recipe` present: 6/8
- `response_type=LIMITED_WITH_REASON`: 8/8
- `false_factual_rate`: 0
- `anchor_debug_coverage_rate`: 1.0
- `row_stage_debug_coverage_rate`: 1.0
### Limited taxonomy distribution
- `empty_match`: 6
- `missing_anchor`: 1
- `unsupported`: 1
- `recipe_visibility_gap`: 0
- `execution_error`: 0
### Operational note
`documents_forming_balance` routing is now implemented and stable by intent/recipe.
The next hard gate remains data-aware positive live pass (non-empty factual evidence).

View File

@ -0,0 +1,51 @@
# Address Query Runtime V1 — M2+ (Open Contracts / Open Items)
Дата: 2026-03-29
Статус: IMPLEMENTED_WITH_LIMITED_MODE
## Что расширено
1. Расширены P0 intent/recipe маршруты:
- `list_open_contracts`
- `open_items_by_counterparty_or_contract`
2. Расширен recipe-catalog:
- единый movement-query с period filters (`as_of_date`, `period_from`, `period_to`)
- account scopes для family-веток:
- receivables: `62/76`
- payables: `60/76`
- open contracts/open items: `60/62/76`
3. Усилен intent/filter слой:
- intent resolver переписан на token-based (более стабильно для коротких формулировок);
- filter extractor поддерживает `by contract` / `by counterparty` и русские варианты.
4. Усилен answer contract:
- для `open_items` обязателен anchor (`counterparty` или `contract`), иначе controlled limited mode;
- для `open_contracts` при отсутствии явных договорных аналитик в live-строках возвращается честный limited mode;
- false factual не генерируется.
## Что подтверждено smoke-проверкой
- Address lane срабатывает через `AssistantService` ранней веткой (без normalizer вызова).
- Новые intents распознаются и маршрутизируются в recipe path.
- При отсутствии релевантных live-строк система остается в `LIMITED_WITH_REASON` с конкретной причиной.
## Параллельно добавлено для следующего этапа
- Набор вопросов для dry-run через окно ассистента:
- `docs/ADDRESS/address_query/ui_dry_run_question_set_v1.md`
- Чек-лист проверки:
- `docs/ADDRESS/address_query/ui_dry_run_checklist_v1.md`
- Результаты dry-run набора (5 вопросов):
- `assistant_window_dry_run_results.json`
## Ограничения текущего шага
- MCP текущего рецепта не возвращает явные договорные аналитики в достаточном объеме для устойчивого `FACTUAL_LIST` по open contracts.
- Поэтому `list_open_contracts` и часть `open_items` работают в honest-limited режиме, что соответствует safety policy.
## Следующий шаг
- Добавить специализированные live recipes на уровне документов/регистров (контрагент/договор) вместо только movement-среза,
чтобы перевести `open_contracts` и `open_items` из `LIMITED_WITH_REASON` в стабильный factual mode на positive-cases.

View File

@ -0,0 +1,57 @@
[
{
"query": "кто должен нам на сегодня",
"expected_intent": "list_receivables_counterparties",
"detected_mode": "address_query",
"detected_intent": "list_receivables_counterparties",
"selected_recipe": "address_movements_receivables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"response_type": "LIMITED_WITH_REASON"
},
{
"query": "кому должны мы на сегодня",
"expected_intent": "list_payables_counterparties",
"detected_mode": "address_query",
"detected_intent": "list_payables_counterparties",
"selected_recipe": "address_movements_payables_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"response_type": "LIMITED_WITH_REASON"
},
{
"query": "покажи остаток по счету 60 на сегодня",
"expected_intent": "account_balance_snapshot",
"detected_mode": "address_query",
"detected_intent": "account_balance_snapshot",
"selected_recipe": "address_movements_account_snapshot_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"response_type": "LIMITED_WITH_REASON"
},
{
"query": "какие договоры не закрыты",
"expected_intent": "list_open_contracts",
"detected_mode": "address_query",
"detected_intent": "list_open_contracts",
"selected_recipe": "address_open_contracts_candidates_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"response_type": "LIMITED_WITH_REASON"
},
{
"query": "покажи открытые позиции по договору 01/19-ПТ",
"expected_intent": "open_items_by_counterparty_or_contract",
"detected_mode": "address_query",
"detected_intent": "open_items_by_counterparty_or_contract",
"selected_recipe": "address_open_items_by_party_or_contract_v1",
"mcp_call_status": "empty",
"rows_fetched": 20,
"rows_matched": 0,
"response_type": "LIMITED_WITH_REASON"
}
]

View File

@ -0,0 +1,4 @@
llm_normalizer/backend/src/services/addressIntentResolver.ts
llm_normalizer/backend/src/services/addressRecipeCatalog.ts
llm_normalizer/backend/src/services/addressQueryService.ts
llm_normalizer/backend/src/services/addressFilterExtractor.ts

View File

@ -0,0 +1,28 @@
{
"run_id": "2026-03-29_Address_Query_Runtime_V1_M2_Plus_OpenContracts_OpenItems",
"date": "2026-03-29",
"stage": "address_query_runtime_v1",
"scope": "m2_plus_intent_recipe_expansion",
"build_status": "PASSED",
"smoke_status": "PASSED",
"ui_dry_run_status": "PASSED_INTENT_ROUTING",
"implemented": {
"intent_open_contracts": true,
"intent_open_items_by_counterparty_or_contract": true,
"period_filterable_query_recipe": true,
"token_based_intent_resolution": true
},
"current_answer_mode": {
"receivables_payables_account_snapshot": "operational (may be limited on empty matches)",
"open_contracts": "honest_limited_when_no_contract_anchors",
"open_items": "honest_limited_without_anchor_or_no_rows"
},
"ui_dry_run_5q": {
"mode_routing_pass_rate": 1.0,
"intent_alignment_pass_rate": 1.0,
"selected_recipe_non_empty_rate": 1.0,
"factual_positive_rate": 0.0,
"limited_mode_rate": 1.0
},
"false_factual_rate": 0
}

View File

@ -0,0 +1,49 @@
# Smoke Checks
Дата: 2026-03-29
## Build
- `npm run build` -> PASS
## Address service checks (dist)
1. `who owes us today`
- detected_intent: `list_receivables_counterparties`
- selected_recipe: `address_movements_receivables_v1`
- result: `LIMITED_WITH_REASON` (mcp_call_status=`empty`)
2. `who we owe today`
- detected_intent: `list_payables_counterparties`
- selected_recipe: `address_movements_payables_v1`
- result: `LIMITED_WITH_REASON` (mcp_call_status=`empty`)
3. `show account balance 60`
- detected_intent: `account_balance_snapshot`
- selected_recipe: `address_movements_account_snapshot_v1`
- result: `LIMITED_WITH_REASON` (mcp_call_status=`empty`)
4. `list open contracts`
- detected_intent: `list_open_contracts`
- selected_recipe: `address_open_contracts_candidates_v1`
- result: `LIMITED_WITH_REASON` (`no_contract_anchors_in_live_rows`)
5. `open items by contract 01/19-PT`
- detected_intent: `open_items_by_counterparty_or_contract`
- selected_recipe: `address_open_items_by_party_or_contract_v1`
- result: `LIMITED_WITH_REASON` (mcp_call_status=`empty`)
## AssistantService early-lane checks
`AssistantService.handleMessage(...)` с normalizer stub:
- для address запросов идет в `assistant_message_address` event;
- deep normalizer path не вызывается.
## UI dry-run через окно ассистента (RU set)
- Прогнан набор из 5 русскоязычных вопросов из `docs/ADDRESS/address_query/ui_dry_run_question_set_v1.md`.
- Результаты сохранены в `assistant_window_dry_run_results.json`.
- Все 5 кейсов:
- `detected_mode=address_query`;
- `detected_intent` совпал с `expected_intent`;
- `selected_recipe` не пустой.
- Текущий answer mode: `LIMITED_WITH_REASON` по причине `mcp_call_status=empty` (matched rows = 0).

Some files were not shown because too many files have changed in this diff Show More