NODEDC_1C/docs/TECH/STATUS_2026-04-12.md

76 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Статус проекта на 2026-04-13
Файл сохранен под историческим именем `STATUS_2026-04-12.md`, но содержимое актуализировано по коду и тестам на 2026-04-13.
## 1) Что уже стабильно в compute-слое
- В runtime закреплены exact-маршруты подтвержденного среза на дату:
- `payables_confirmed_as_of_date` (`address_payables_confirmed_as_of_date_v1`)
- `receivables_confirmed_as_of_date` (`address_receivables_confirmed_as_of_date_v1`)
- `vat_payable_confirmed_as_of_date` (`address_vat_payable_confirmed_as_of_date_v1`)
- `vat_liability_confirmed_for_tax_period` (`address_vat_liability_confirmed_tax_period_v1`)
- `open_contracts_confirmed_as_of_date` (`address_open_contracts_confirmed_as_of_date_v1`)
- Для exact-сценариев зафиксирован контракт:
- `requested_result_mode = confirmed_balance`
- `result_mode = confirmed_balance`
- `capability_route_mode = exact`
- Для открытых договоров прямой бизнес-вопрос больше не идет в heuristic shortlist:
- exact-вопросы маршрутизируются в `open_contracts_confirmed_as_of_date`;
- `list_open_contracts` сохранен как диагностический heuristic-слой, а не как substitute для exact-ответа.
- Для exact-интентов ожидания маршрутов закреплены в:
- `docs/TECH/address_route_expectations_v1.json`
## 2) Что доведено в follow-up и presentation-слое
- Короткие follow-up-вопросы продолжают использовать дату среза из контекста, если новая дата явно не задана.
- Для debt/VAT/open-contracts контуров сохранена схема `LLM-first normalize -> deterministic compute route`.
- Для exact-кейса открытых договоров presentation-слой стал бизнесовее:
- появился `net/gross` слой поверх точного среза;
- одна детальная строка = один договор, один контрагент, один тип открытого остатка;
- смешанные экономические смыслы не склеиваются в одну строку;
- отдельными блоками вынесены `финансовые/специальные` и `спорные/некачественно нормализованные` позиции.
- Для open-contracts exact-core отделен от heuristic diagnostics: улучшения бизнес-вывода больше не требуют менять сам route.
## 3) Что уже покрыто тестами
- Актуальный целевой regression-gate:
- `llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts`
- `llm_normalizer/backend/tests/assistantLivingRouter.test.ts`
- `llm_normalizer/backend/tests/assistantWave17RunRegression20260411.test.ts`
- Текущий кодовый результат:
- `367/367` PASS.
- В тестах отдельно закрыты:
- exact routing для `open_contracts_confirmed_as_of_date`;
- отсутствие silent degrade в heuristic для прямого exact-запроса;
- business-view блоков `net/gross` и вынос грязных сущностей в спорный блок.
## 4) Известные ограничения (не считать поломкой exact-core)
- `query_shape` в части exact-кейсов может оставаться `UNKNOWN` при корректном `intent`; сам вычислительный маршрут при этом работает корректно.
- В exact-кейсе открытых договоров главный остаточный риск теперь не в маршрутизации, а в качестве бизнес-сущностей:
- неидеальная идентичность `contract_label` / `counterparty_label`;
- грязные аналитики по счету `76`;
- дальнейшее улучшение executive-summary поверх уже точного среза.
- `list_open_contracts` по-прежнему heuristic и должен использоваться только как диагностический слой.
- `COMPOUND_FACTUAL_QUERY` остается detection-only: multi-intent execution в runtime пока не включен.
## 5) Что в приоритете дальше
1. НДС-контур: усилить exact evidence layer для ответов “НДС к уплате / обязательство за период/на дату”.
2. Открытые договоры: усилить quality gates для `contract/counterparty identity`, особенно на `76` и специальных расчетах.
3. UI-ответы: довести exact business view до executive-summary уровня без потери доказательности.
4. Compound factual queries: не расширять домены раньше, чем появится контролируемый multi-intent execution.
## 6) Быстрый smoke-check (ручной)
1. `какие есть открытые договора на май 2020`
2. `а по ним кто нам должен и кому должны мы?`
3. `скок надо ндс платить на март 2020`
4. `а на эту же дату`
Ожидаемое поведение:
- для 1 — exact route `open_contracts_confirmed_as_of_date`, `confirmed_balance`, без подмены на heuristic shortlist;
- для 2 — follow-up c сохранением даты и корректным переключением домена;
- для 3/4 — exact VAT/payables route с переносом даты среза, если пользователь не задал новую.