10 KiB
Stage 4 - Family Card v1 — VAT chain (runtime-aligned)
document_status: ACTIVE
family_name: НДС-цепочка — полнота прохождения от документа до налогового отражения
family_id: VAT_CHAIN_COMPLETENESS_V1
stage_scope: Stage 4 (P0-only)
current_family_status: PARTIALLY_WORKING / NON-BLOCKER
primary_gap: residual admissibility/materialization quality
latest_pack: 2026-03-29_Stage_04_Wave_19_2_Live_Runtime_Fix_Replay_1txt
next_pack_focus: targeted live narrowing + reject cleanup for VAT proof-path
family_source_of_truth_questions: VAT-Q1 (13 июля поступление, 15 июля реализация — полная ли НДС-цепочка); VAT-Q2 (есть ли выпадение между документом, проводкой, НДС-регистром и книгой); VAT-Q3 (по July 2020 VAT path grounded-positive или остаются weak-mapping шумы)
family_latest_live_replay: X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_Wave_19_2_Live_Runtime_Fix_Replay_1txt\1_live_replay.txt
family_latest_acceptance_run: X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_Wave_19_2_Live_Runtime_Fix_Replay_1txt\run_summary.json
1) Что фиксирует этот документ
Карточка разделяет два слоя:
Runtime V1 (as-is)— только то, что подтверждено текущим кодом и run-артефактами.Target V2 (planned)— что нужно дожать следующими family-pack, но пока не является hard gate текущей приемки.
Это соответствует Stage 4 family-based execution в рамках P0-only без перехода в Stage 5 и без архитектурного redesign.
2) Runtime V1 (фактический контракт на 2026-03-29)
2.1 Claim contract (as-is)
- primary claim_type:
prove_vat_chain_completeness - additional claim_types: пока не выделялись как first-class в runtime
- границы claim:
- не расширяет домены за рамки VAT family;
- не включает общий налоговый аудит;
- не включает Stage 5 investigation как core path.
2.2 Required anchors (runtime-enforced, as-is)
Для prove_vat_chain_completeness в текущем runtime обязательны:
perioddocument_typesvat_signalchain_signal
Факт: эти anchors соответствуют текущему requiredByClaim в runtime.
2.3 Claim checks and live recipe (runtime-enforced, as-is)
Для VAT claim runtime требует закрытия проверок:
source_document_foundinvoice_foundtax_register_entry_foundbook_entry_foundchain_linkage_status
Текущий live acquisition path для VAT в runtime:
- в отличие от RBP/FA, нет выделенного VAT-specific набора обязательных live call id;
- используется
hybrid_store_plus_live+ generic live overlay probe; - positive VAT-case может быть закрыт за счет admissible evidence и targeted checks.
2.4 Route behavior (as-is)
Факт по latest run:
- VAT case (
L1) отрабатывает вfactual_with_explanation; - claim:
prove_vat_chain_completeness; - mode:
grounded_positive; - scope:
company_specific_accounting; - temporal outcome:
passed.
2.5 Evidence/admissibility behavior (as-is)
Факт по VAT case (L1) в latest run:
admissible_evidence_count = 12grounding_mode = grounded_positive- основные reject-хвосты:
wrong_account_scope,weak_source_mapping
Факт по aggregate reject breakdown (run-level):
weak_source_mappingиwrong_account_scopeостаются ключевым residual шумом.
2.6 Runtime acceptance snapshot (по latest pack)
- family status:
PARTIALLY_WORKING / NON-BLOCKER - по
L1VAT-кейсу естьgrounded_positive - общий статус run:
WAVE19_2_ACCEPTED - важная оговорка: в run зафиксирован
normalizer_mode = useMock=true
2.7 known_runtime_limits (as-is)
normalizer_mock_mode_in_latest_acceptance: latest acceptance run выполнялся в режимеuseMock=true.no_explicit_vat_live_call_contract: для VAT пока нет отдельного жесткого live-call контракта как у RBP/FA.admissibility_noise_remains: сохраняются residual rejects поweak_source_mappingиwrong_account_scope.
3) Target V2 (planned, не критерий текущей приемки)
3.1 Planned claim extension
prove_vat_register_book_consistencyprove_document_to_tax_reflection_closureprove_missing_vat_link_risk
3.2 Planned anchor extension
invoice_anchorregister_entry_anchorbook_entry_anchorvat_amount_anchorgoods_or_item_linkage_anchor
3.3 Planned family metrics
vat_grounded_positive_ratevat_admissibility_noise_ratevat_book_register_linkage_ratevat_false_grounded_answer_ratevat_live_targeting_precision_rate
4) Required entities and relations (business contract)
4.1 Минимально необходимые сущности для proof closure
- Документ поступления/реализации.
- Счет-фактура.
- Проводка/движение.
- Запись в НДС-регистре.
- Запись в книге покупок/продаж.
- Связь по товарной позиции/номенклатуре/документной цепочке.
- Контрагент/договорный контур при необходимости.
4.2 Критические relation links
receipt_or_sale_document -> postingdocument -> invoiceinvoice -> vat_register_entryvat_register_entry -> purchase_or_sales_book_entrygoods_or_item_context -> chain_completeness_verdict
5) Snapshot/Live coverage verdict (as-is)
- practical mode для VAT family:
snapshot_plus_live_required - positive path уже подтвержден на части кейсов
- family не является текущим главным blocker
- next focus:
live narrowing + reject cleanup, без domain expansion
6) Answer/proof modes contract
grounded_positive
Допускается, если одновременно:
admissible_evidence_count > 0- подтверждены звенья
document -> invoice -> register -> book - вывод не основан только на общем domain narrative
false_grounded_answer_rate = 0
Короткий пример:
По July 2020 цепочка документ -> проводка -> НДС-регистр -> книга подтверждена; явного выпадения по этой связке не найдено.
limited_or_insufficient_evidence
Обязателен, если:
- отсутствует одно из ключевых звеньев цепочки;
- evidence есть, но mapping слабый;
register/booklinkage не закрыт.
Короткий пример:
Документный и проводочный контур частично подтверждены, но связь до НДС-регистра или книги не восстановлена; вывод ограничен.
Запрещенные паттерны
НДС отражен корректнобез документно-регистровой связки;- уверенный verdict при
admissible = 0; - подмена chain-proof общим domain narrative.
Короткий антипример:
НДС-цепочка в порядке(нельзя без подтверждения register/book closure).
7) Gap register (VAT family)
| gap_id | category | severity | current_state | note |
|---|---|---|---|---|
| VAT-G1 | admissibility_residual_noise |
medium | open | остаточный шум по weak_source_mapping / wrong_account_scope |
| VAT-G2 | live_targeting_breadth |
medium | open | live targeting для VAT еще можно сузить до более proof-specific слоя |
| VAT-G3 | materialization_cleanup |
medium | open | positive path есть, но часть proof-path требует дочистки |
| VAT-G4 | false_grounded_risk_control |
low | controlled | family должна удерживать false_grounded = 0 |
8) Code-path inventory (где живет контракт)
-
llm_normalizer/backend/src/services/assistantClaimBoundEvidence.ts -
VAT claim type;
-
required anchors;
-
required checks для VAT chain.
-
llm_normalizer/backend/src/services/assistantDataLayer.ts -
route/live plan behavior (в т.ч. generic live overlay для non-FA/RBP);
-
VAT semantic profile and relation patterns.
-
llm_normalizer/backend/src/services/assistantService.ts -
routing and eligibility handoff;
-
answer-mode and debug export integration.
-
run artifacts:
-
X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_Wave_19_2_Live_Runtime_Fix_Replay_1txt
9) Regression set and acceptance policy
Обязательный минимум для VAT family:
- базовый вопрос по поступлению 13 июля и реализации 15 июля;
- вариация на выпадение между документом, проводкой и налоговым отражением;
- вариация на книгу покупок/продаж;
- follow-up по той же цепочке;
- соседний VAT sanity-check.
Политика:
- после каждого VAT family pack обязателен новый run folder;
- acceptance фиксируется на уровне family;
false_groundedдолжен оставаться нулевым.
10) Project decision line for this family
VAT family уже переведена в family-based execution контур Stage 4 и рассматривается как non-blocker, где нужен cleanup-дожим, а не отдельный большой redesign-пакет.