76 lines
6.0 KiB
Markdown
76 lines
6.0 KiB
Markdown
# Статус проекта на 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 с переносом даты среза, если пользователь не задал новую.
|