NODEDC_1C/IN/Stage 4 - Family Card v1 F...

11 KiB
Raw Blame History

Stage 4 - Family Card v1 — FA amortization coverage (runtime-aligned)

document_status: ACTIVE
family_name: Амортизация ОС — полнота охвата / риск пропуска объекта
family_id: FA_AMORTIZATION_COVERAGE_V1
stage_scope: Stage 4 (P0-only)
current_family_status: PROOF_PATH_RAISED_LIVE_ACCEPTANCE_PENDING
primary_gap: live object-level relation clarity + production live acceptance
latest_pack: 2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure
next_pack_focus: live replay acceptance + relation/anchor consistency in production channel
family_source_of_truth_questions: FA-Q1 (31 июля: 2 471,52 / 2 465,28 / 849,83 — полное ли начисление); FA-Q2 (expected vs actual set по объектам ОС за июль); FA-Q3 (есть ли missing object candidates в июльском начислении)
family_latest_live_replay: X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure_live_attempt\fa_live_raw.json (текущий live attempt: http_status=400, невалидная приемка)
family_latest_acceptance_run: X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure\run_summary.json

1) Что фиксирует этот документ

Карточка разделяет два слоя:

  1. Runtime V1 (as-is) — только то, что подтверждено текущим кодом и артефактами пакета.
  2. Target V2 (planned) — что нужно дожать, но пока не считается текущим acceptance gate.

Это защищает от ложного закрытия family по mock-результату без live-приемки.

2) Runtime V1 (фактический контракт на 2026-03-29)

2.1 Claim contract (as-is)

  • primary claim_type: prove_fixed_asset_amortization_coverage
  • additional claim_types: пока не выделялись как отдельные first-class claim types
  • границы claim:
  • не расширяет домены за рамки Stage 4 P0;
  • не вводит новый proof engine;
  • не использует Stage 5 investigation как core path.

2.2 Required anchors (runtime-enforced, as-is)

Для prove_fixed_asset_amortization_coverage в рантайме обязательны:

  • period
  • fixed_asset_signal
  • amortization_signal
  • amount_or_document
  • account_scope_or_document_type

Факт по latest acceptance run:

  • required_anchors_count = 5
  • missing_anchor_classes_count = 0
  • claim_anchor_coverage_ratio = 1

2.3 Claim-bound live recipe (runtime-enforced, as-is)

Обязательные live вызовы:

  1. find_amortization_documents_in_period
  2. find_fixed_asset_movements_accounts_01_02
  3. find_fixed_asset_cards_expected_for_period
  4. match_expected_vs_actual_fa_coverage

Ожидаемый результат recipe:

  • документ(ы) начисления амортизации;
  • candidate/actual набор объектов ОС;
  • expected set для периода;
  • сравнение expected vs actual и кандидаты пропуска.

2.4 Route behavior (as-is)

Для FA-claim runtime:

  • форсирует claim-bound live-capable route;
  • может переопределять store_feature_risk в live/hybrid path;
  • экспортирует fa_live_route_audit в debug payload.

Факт по latest acceptance run:

  • live_route_execution_rate = 1
  • required_live_calls = 4
  • missing_live_calls = 0
  • route_adjustments_applied = 1

2.5 Evidence/admissibility behavior (as-is)

Факт по latest acceptance run:

  • admissible_evidence_count = 16
  • rejected_evidence_count = 32
  • reject breakdown: wrong_account_scope = 16, weak_source_mapping = 16

Факт по targeted evidence:

  • targeted_evidence_hit_rate = 1
  • expected_fa_set_count = 2
  • actual_fa_set_count = 2
  • missing_fa_candidates_count = 0
  • uncertain_fa_candidates_count = 28

2.6 Runtime acceptance snapshot (по latest pack)

  • FA_EXPECTED_SET_FIXED = FIXED
  • FA_RELATION_MAPPING_FIXED = FIXED
  • FA_CLAIM_ANCHOR_CLOSURE_FIXED = FIXED
  • FA_PROOF_CLOSURE_FIXED = FIXED
  • общий статус: FA_PACK_ACCEPTED
  • важная оговорка: режим пакета mock (controlled replay)

2.7 known_runtime_limits (as-is)

  • live acceptance pending: актуальный live attempt завершился http_status=400, не может быть источником приемки.
  • relation clarity incomplete: несмотря на coverage=1 в mock, в relation map много coverage_status=uncertain и слабых object-level link.
  • admissibility noise remains: значимый reject-шум (wrong_account_scope, weak_source_mapping) сохраняется и требует дожима для production live.

3) Target V2 (planned, не критерий текущей приемки)

3.1 Planned claim extension

  • Развести подтипы FA-claim по режимам:
  • prove_fixed_asset_amortization_completeness
  • prove_fixed_asset_missing_object_risk
  • prove_fixed_asset_expected_actual_consistency

3.2 Planned anchor extension

  • Явный expected_fa_set как first-class anchor.
  • Явный actual_fa_set_from_amortization как first-class anchor.
  • Явный missing_fa_candidates с object identity и link quality.

3.3 Planned family metrics

  • fa_expected_set_reconstruction_rate
  • fa_relation_mapping_coverage_rate
  • fa_claim_anchor_coverage_rate
  • fa_actual_vs_expected_comparison_rate
  • fa_proof_closure_rate
  • fa_false_grounded_answer_rate
  • fa_live_acceptance_pass_rate

4) Required entities and relations (business contract)

4.1 Минимально необходимые сущности для proof closure

  1. Документ(ы) начисления амортизации за июль.
  2. Объекты ОС, которые должны участвовать в начислении.
  3. Движения/проводки по контуру амортизации (в т.ч. счета 01/02).
  4. Expected set объектов ОС на период.
  5. Actual set объектов, реально попавших в начисление.
  6. Missing/uncertain candidates для object-level verdict.
  1. fa_object -> amortization_document
  2. amortization_document -> movement/posting
  3. fa_object -> expected_period_coverage
  4. expected_set -> actual_set
  5. missing_or_uncertain_object -> coverage_risk_verdict

5) Snapshot/Live coverage verdict (as-is)

  • По FA family практический режим: snapshot_plus_live_required.
  • В controlled replay proof-path поднят до grounded_positive.
  • Production live приемка пока не закрыта.

6) Answer/proof modes contract

grounded_positive

Допускается, если одновременно:

  • admissible_evidence_count > 0
  • реконструированы expected_fa_set и actual_fa_set
  • сделано сравнение expected vs actual
  • вывод имеет object-level опору, не только сумму
  • false_grounded_answer_rate = 0

Короткий пример:

  • За июль подтверждены ожидаемый и фактический наборы ОС; пропусков по зафиксированным объектам не выявлено, риск неполноты начисления низкий.

limited_or_insufficient_evidence

Обязателен, если:

  • не реконструирован expected set или actual set
  • object-level links недостаточны
  • есть только косвенная/шумная опора

Короткий пример:

  • Суммы начисления зафиксированы, но object-level соответствие expected vs actual не восстановлено; вывод ограничен и не подтверждает полноту начисления.

Запрещенные паттерны

  • вывод о полноте начисления только по суммам без object-level связи
  • уверенный verdict при admissible = 0
  • общий lifecycle-текст без указания missing object/link

Короткий антипример:

  • Амортизация начислена корректно, пропусков нет (нельзя без expected/actual object-level proof).

7) Gap register (FA family)

gap_id category severity current_state note
FA-G1 live_acceptance_not_confirmed blocker open текущий live attempt дал http_status=400, приемка фактически mock-only
FA-G2 wrong_entity_mapping / relation_clarity high open в relation map много coverage_status=uncertain и слабых direct links
FA-G3 admissibility_reject_not_due_to_data medium open reject-шум по wrong_account_scope и weak_source_mapping
FA-G4 answer_layer_underuses_available_evidence medium partial в части трасс answer-mode может звучать ограничительно при сильной eligibility

8) Code-path inventory (где живет контракт)

  • llm_normalizer/backend/src/services/assistantClaimBoundEvidence.ts

  • FA claim resolution;

  • required anchors;

  • targeted checks;

  • expected/actual/missing/uncertain FA coverage structures.

  • llm_normalizer/backend/src/services/assistantDataLayer.ts

  • claim-bound FA live plan;

  • live call profile claim_bound_fa_live_path;

  • relation markers (asset_card_to_depreciation, document_to_posting).

  • llm_normalizer/backend/src/services/assistantService.ts

  • FA live route enforcement;

  • route override audit (fa_live_route_audit);

  • handoff в eligibility/answer layer.

  • run artifacts:

  • X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure

  • X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure_live_attempt

  • X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_FA_Pack_Amortization_Proof_Closure_mock_replay

9) Regression set and acceptance policy

Обязательный минимум для FA family:

  1. Базовый вопрос по трем суммам 2 471,52 / 2 465,28 / 849,83.
  2. Вариация без сумм, но с запросом полноты expected vs actual.
  3. Вариация на missing-object risk.
  4. Follow-up по конкретному объекту ОС (если объект выделен).

Политика:

  • после каждого FA pack обязателен новый run folder в llm_normalizer/docs/runs;
  • acceptance фиксируется на уровне family;
  • mock acceptance не заменяет live acceptance;
  • false_grounded должен оставаться нулевым.

10) Project decision line for this family

FA family поднята до proof-ready уровня в controlled replay, но остается в статусе live acceptance pending до подтверждения object-level closure на реальном live канале.