11 KiB
Этап 4 — corrective pack по family isolation, claim routing и чистой приемке
1. Контекст
Stage 4 уже работает в family-based execution:
- единица анализа:
family; - единица реализации:
family pack; - единица приемки:
family acceptance.
По трем новым прогонам подтверждено: основная проблема в runtime не текстовая, а маршрутизационная:
- leakage между family/lane;
- неправильный
claim_typeна корректных вопросах; - рассинхрон между route/domain/claim в разных слоях runtime;
- смешанные acceptance-файлы, где трудно объективно мерить качество lane/family.
2. Архитектурная рамка corrective pack
Чтобы пакет был совместим с текущим проектом, фиксируем:
core familiesStage 4:
VAT chain,RBP tail,FA amortization.control lanes(regression/sanity, не first-class family):
settlements_60_62,month_close_indirect_costs.- Пакет не добавляет новые домены и не меняет Stage 4 модель.
- Пакет не строит новый proof engine и не уводит в Stage 5.
3. Цель corrective pack
Привести execution к состоянию, где:
- вопрос из одного family/lane не уходит в чужой
claim/domain path; - routing в live и follow-up не расходится между runtime-слоями;
- acceptance выполняется по чистым family/lane файлам;
false_grounded_answer_rate = 0;wrong_family_route_rate = 0на контрольном наборе этого pack.
4. Подволны
Подволна 1 — Family isolation matrix
Задача
Снять матрицу соответствия вопроса и целевого family/lane, и явно показать точки leakage.
Что сделать
Построить матрицу по контрольным вопросам из трех файлов:
расчеты банк 60 62.txtндс книга покупок и продаж.txtрбп затраты аморт.txt
Для каждого вопроса зафиксировать:
raw_questionexpected_lane_type(core_family|control_lane)expected_family_or_laneexpected_domainexpected_claim_typeactual_domainactual_claim_typeactual_query_subjectactual_source_profileactual_business_scopemismatch_type
Минимальные lane:
settlements_60_62(control lane)VAT chain(core family)RBP tail(core family)FA amortization(core family)month_close_indirect_costs(control/sanity lane)
Acceptance
Есть явная матрица:
- что относится к core family, а что к control lane;
- где и почему происходит leakage.
Подволна 2 — Claim routing + domain purity alignment
Задача
Устранить переходы:
- settlement -> VAT claim;
- settlement -> FA claim;
- VAT -> settlement guard path;
- month-close -> случайный FA/RBP claim без основания.
Что сделать
A. Синхронизировать domain inference между слоями
Унифицировать доменную классификацию для:
assistantServicedomain hint;investigationStateexplicit domain hint;- follow-up cross-scope checks.
Цель: один и тот же вопрос не должен получать разные домены в разных слоях runtime.
B. Ужесточить claim inference для settlement/VAT/FA
- Settlement/advance/closure не должны резолвиться в:
prove_vat_chain_completeness;prove_fixed_asset_amortization_coverage.
- Убрать ложный FA-триггер на числовых артефактах:
- числа из дат/сумм не должны поднимать FA claim;
62.02не должен теряться какamount_tokenв settlement flow.
- FA claim допускается только при явном FA-сигнале:
- лексический FA-сигнал;
- или валидные account/object anchors после account extraction cleanup.
C. Привязать query_subject к resolved family/lane
query_subject должен строиться от resolved route/domain/claim, а не от сырого mixed-domain списка.
Практический эффект:
- VAT не должен уходить в
supplier_tail_analysis; - settlement не должен маскироваться под VAT/FA path.
D. Сохранить рабочий RBP path
Не ломать поднятый RBP контракт:
claim_type = prove_rbp_tail_state;- обязательный live recipe;
- non-zero admissible evidence path.
E. Для FA использовать route-lock/parity контроль
FA в этом паке контролируется через:
claim-route lock;mock/live parityпо целевым FA вопросам;
а не через прямую метрику domain-card purity 1:1.
Acceptance
На контрольном наборе pack:
wrong_family_route_rate = 0;wrong_claim_type_rate = 0;domain_purity_guard_lane_match_rate = 1.0для lanes с domain-card (settlements,VAT,month_close);fa_route_lock_correctness_rate >= 0.95;supplier_customer_polarityне остается unresolved на core settlement cases.
Подволна 3 — Чистая структура acceptance-прогонов
Задача
Убрать смешанные acceptance-файлы.
Что сделать
Собрать отдельные прогоны:
chat_export_settlements.txt(control lane)chat_export_vat.txt(core family)chat_export_rbp.txt(core family)chat_export_fa.txt(core family)chat_export_month_close_sanity.txt(control lane)
Правило:
- один файл = один family/lane;
- mixed files не используются как family acceptance.
Acceptance
Все acceptance-артефакты lane-clean и сопоставимы между волнами.
Подволна 4 — Final live rerun по изолированным lanes
Задача
Пересобрать финальный live rerun после исправления isolation/routing.
Обязательный набор кейсов
settlements_60_62 (control lane):
- supplier settlement (
55 200) - buyer advance (
62.02) - closure case без суммы
- follow-up по тому же договору/документу
VAT chain:
- услуги связи (
1 166,67 + НДС 233,33) - счет-фактура / книга покупок
- выпадение между документом и книгой
- follow-up по той же VAT-цепочке
RBP tail:
Списание РБП за Июль 2020(5 000)- вариант без суммы
- полнота закрытия
- follow-up по объекту/документу
FA amortization:
2 471,52 / 2 465,28 / 849,83- expected vs actual set
- missing object risk
- follow-up по объекту ОС
month_close_indirect_costs (control lane):
- базовый вопрос по косвенным расходам
- зависший хвост
- limitation-honesty после полного month-end
Acceptance
Новый live rerun показывает:
- route/claim isolation без cross-family leakage;
- корректную lane-классификацию;
- честный limited mode только по фактической нехватке данных.
5. Метрики corrective pack
Добавить/вывести
wrong_family_route_ratewrong_claim_type_ratedomain_purity_guard_lane_match_ratefa_route_lock_correctness_ratefamily_isolation_correctness_ratelive_recipe_binding_ratefalse_grounded_answer_ratemechanism_discrimination_ratelimited_answer_honesty_rate
Минимальные пороги (для контрольного набора этого pack)
wrong_family_route_rate = 0wrong_claim_type_rate = 0domain_purity_guard_lane_match_rate = 1.0(для lanes с domain-card)fa_route_lock_correctness_rate >= 0.95false_grounded_answer_rate = 0mechanism_discrimination_rate >= 0.90limited_answer_honesty_rate >= 0.95
6. Что создать
В docs/ARCH
10 - family_isolation_and_claim_routing_corrective_pack_2026-03-29.md10A - family_isolation_matrix.md10B - wrong_claim_route_register.md10C - clean_family_run_structure.md10D - family_acceptance_policy_update.md10E - cross_layer_domain_inference_parity.md
В llm_normalizer/docs/runs/<new_run_pack>
run_summary.jsonbefore_after_metrics.jsonfamily_case_matrix.mdacceptance_note.mdchat_export_settlements.txtchat_export_vat.txtchat_export_rbp.txtchat_export_fa.txtchat_export_month_close_sanity.txtdebug_payloads/routing_parity_diff.md
7. Что нельзя делать
- не добавлять новые домены;
- не менять Stage 4 family-based model;
- не строить новый proof engine;
- не смешивать acceptance разных family/lane в одном файле;
- не закрывать acceptance по одному удачному ответу;
- не лечить leakage общим ростом generic retrieval.
8. Финальный verdict
Выдать:
FAMILY_ISOLATION_FIXED / NOT_FIXEDCLAIM_ROUTING_FIXED / NOT_FIXEDCLEAN_FAMILY_ACCEPTANCE_READY / NOT_READY
Общий статус:
STAGE4_FAMILY_ISOLATION_PACK_ACCEPTED- или
STAGE4_FAMILY_ISOLATION_PACK_ACCEPTED_WITH_LIMITATIONS - или
STAGE4_FAMILY_ISOLATION_PACK_NOT_ACCEPTED
9. Ожидаемый итог
После этого пакета:
- settlement-вопросы не уходят в VAT/FA claim;
- VAT-вопросы не ведутся через settlement-path;
- mixed-file приемка не используется;
- прогресс измеряется по чистым family/lane с сопоставимыми метриками и артефактами.