6.0 KiB
6.0 KiB
Статус проекта на 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_balanceresult_mode = confirmed_balancecapability_route_mode = exact
- Для открытых договоров прямой бизнес-вопрос больше не идет в heuristic shortlist:
- exact-вопросы маршрутизируются в
open_contracts_confirmed_as_of_date; list_open_contractsсохранен как диагностический heuristic-слой, а не как substitute для exact-ответа.
- 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.tsllm_normalizer/backend/tests/assistantLivingRouter.test.tsllm_normalizer/backend/tests/assistantWave17RunRegression20260411.test.ts
- Текущий кодовый результат:
367/367PASS.
- В тестах отдельно закрыты:
- exact routing для
open_contracts_confirmed_as_of_date; - отсутствие silent degrade в heuristic для прямого exact-запроса;
- business-view блоков
net/grossи вынос грязных сущностей в спорный блок.
- exact routing для
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) Что в приоритете дальше
- НДС-контур: усилить exact evidence layer для ответов “НДС к уплате / обязательство за период/на дату”.
- Открытые договоры: усилить quality gates для
contract/counterparty identity, особенно на76и специальных расчетах. - UI-ответы: довести exact business view до executive-summary уровня без потери доказательности.
- Compound factual queries: не расширять домены раньше, чем появится контролируемый multi-intent execution.
6) Быстрый smoke-check (ручной)
какие есть открытые договора на май 2020а по ним кто нам должен и кому должны мы?скок надо ндс платить на март 2020а на эту же дату
Ожидаемое поведение:
- для 1 — exact route
open_contracts_confirmed_as_of_date,confirmed_balance, без подмены на heuristic shortlist; - для 2 — follow-up c сохранением даты и корректным переключением домена;
- для 3/4 — exact VAT/payables route с переносом даты среза, если пользователь не задал новую.