Post-F: закрыть ручные провалы НДС, выручки и item-flow

This commit is contained in:
2026-04-24 20:36:34 +03:00
parent 7262603a26
commit 739e8b808f
16 changed files with 695 additions and 37 deletions
@@ -177,6 +177,7 @@ Materially hardened in this pass:
- referential document follow-up no longer wakes metadata/discovery by mistake;
- `documents -> payments/contracts` and repeated pivot chains now survive year-switch and all-time continuation;
- mixed human AGENT dialogues now keep repeated pivots, open-scope organization questions, and explicit counterparty resets inside one semantically stable session.
- the manual failure slice from `assistant-stage1-9liEOh-7JP` is now replay-backed: VAT purchase-date and February 2017 questions route to confirmed tax-period VAT instead of filtered forecast output, highest-value customer routes to revenue/payment ranking instead of lifecycle activity, and Chepurnov item-flow no longer reuses stale inventory scope.
Replay-backed anchors for the current layer include:
@@ -190,6 +191,7 @@ Replay-backed anchors for the current layer include:
- `address_truth_harness_phase82_human_mixed_integrity_status_dialog_post_m23_rerun_documents_scope_bidirectional`
- `address_truth_harness_phase82_human_mixed_integrity_status_dialog_post_f_account_injection_guard_clean_scope`
- `address_truth_harness_post_f_cross_stage_canary_agent_20260424_live7`, accepted `24/24`, and saved into autoruns as `AGENT | Post-F cross-stage semantic integrity canary` (`gen-ag04241406-abe4d8`)
- `address_truth_harness_post_f_manual_failures_20260424_live3`, accepted `11/11`, and saved into autoruns as `AGENT | Post-F ручные провалы VAT revenue item-flow live3` (`gen-ag04241710-bdb248`)
## Honest Remaining Risk
@@ -0,0 +1,124 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_post_f_manual_failures_20260424",
"domain": "address_post_f_manual_failures",
"title": "AGENT | Post-F manual failures: VAT, revenue ranking, item-flow",
"description": "Focused replay from assistant-stage1-9liEOh-7JP and assistant-stage1-It31Zdb4cf failures. It preserves the human context around steps 11, 13, 14, and 26: inventory selected-object purchase context, VAT month liability, all-time highest-value customer ranking, and explicit counterparty item-flow after stale inventory scope.",
"bindings": {},
"steps": [
{
"step_id": "step_01_inventory_root",
"title": "Open inventory context",
"question": "кайф - что там на складе по остаткам?",
"allowed_reply_types": ["clarification_required", "partial_coverage", "factual"],
"required_answer_patterns_all": ["(?i)организац|альтернатива|уточн|склад|остат"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "inventory_context"]
},
{
"step_id": "step_02_choose_org",
"title": "Choose organization",
"question": "АЛЬТЕРНАТИВА",
"allowed_reply_types": ["factual", "partial_coverage", "factual_with_explanation"],
"required_answer_patterns_all": ["(?i)остат|склад|позици|альтернатива"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "organization_scope"]
},
{
"step_id": "step_03_inventory_march_2016",
"title": "Historical inventory with workstation",
"question": "март 2016",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)31\\.03\\.2016|март|2016", "(?i)рабоч|станц|позици|остат"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "purchase_date_context"]
},
{
"step_id": "step_04_workstation_purchase",
"title": "Selected workstation purchase context",
"question": "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)рабочая станция", "(?i)поставщик|куп|приобрет|дата|документ|однознач"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "selected_object_purchase"]
},
{
"step_id": "step_05_vat_purchase_date",
"title": "VAT on workstation purchase date",
"question": "ндс можешь прикинуть на дату покупки рабочей станции?",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)ндс", "(?i)подтвержден|к уплате|расчет|срез|период"],
"forbidden_answer_patterns": ["(?i)отфильтрован", "(?i)не удается точно определить.*отфильтр"],
"expected_intents": ["vat_liability_confirmed_for_tax_period"],
"expected_recipe": "address_vat_liability_confirmed_tax_period_v1",
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "vat_failure_11", "materialization_gap"]
},
{
"step_id": "step_06_vat_feb_2017",
"title": "VAT February 2017",
"question": "прикинь какой ндс нам надо заплатить на февраль 2017",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)ндс", "(?i)феврал|2017", "(?i)подтвержден|к уплате|расчет|срез|0,00|руб"],
"forbidden_answer_patterns": ["(?i)отфильтрован", "(?i)не удается точно определить.*отфильтр"],
"expected_intents": ["vat_liability_confirmed_for_tax_period"],
"expected_recipe": "address_vat_liability_confirmed_tax_period_v1",
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "vat_failure_13"]
},
{
"step_id": "step_07_highest_value_customer",
"title": "All-time highest-value customer",
"question": "кто у нас самый доходный клиент за все время",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)самый доходный клиент|доходн", "(?i)поступлен|денежн|руб|деньг|выруч"],
"forbidden_answer_patterns": ["(?i)активных заказчиков", "(?i)операций:\\s*\\d+\\s*\\|\\s*последняя активность"],
"expected_intents": ["customer_revenue_and_payments"],
"expected_recipe": "address_customer_revenue_and_payments_v1",
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "revenue_ranking_failure_14"]
},
{
"step_id": "step_08_documents_chepurnov",
"title": "Ground Chepurnov documents",
"question": "по чепурнову покажи все доки",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)чепурнов", "(?i)документ|поступление|договор"],
"expected_intents": ["list_documents_by_counterparty"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "counterparty_grounding"]
},
{
"step_id": "step_09_pivot_svk",
"title": "Retarget to SVK documents",
"question": "а по свк",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)группа свк|свк", "(?i)документ"],
"expected_intents": ["list_documents_by_counterparty"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "counterparty_retarget"]
},
{
"step_id": "step_10_inventory_today",
"title": "Stale inventory root before item-flow",
"question": "а сейчас у нас есть что на складе?",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)склад|остат|позици"],
"expected_intents": ["inventory_on_hand_as_of_date"],
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "stale_inventory_scope"]
},
{
"step_id": "step_11_chepurnov_item_flow",
"title": "Explicit Chepurnov item-flow after stale inventory",
"question": "что нам отгружал чепурнов? какой товар или услугу?",
"allowed_reply_types": ["factual", "partial_coverage"],
"required_answer_patterns_all": ["(?i)чепурнов", "(?i)товар|услуг|позици|номенклатур|поставк|документ"],
"forbidden_answer_patterns": ["(?i)На 24\\.04\\.2026 на складе", "(?i)остатк.*склад"],
"expected_intents": ["list_documents_by_counterparty"],
"expected_recipe": "address_documents_by_counterparty_v1",
"criticality": "critical",
"semantic_tags": ["manual_9liEOh", "item_flow_failure_26", "stale_scope_guard"]
}
]
}