АРЧ АП11 - Архитектура после регресса: + Архитектура: восстановить bridge от provenance выбранной позиции к VAT-периоду и закрыть phase10 replay

This commit is contained in:
2026-04-18 11:50:48 +03:00
parent 9872ef5446
commit 31cb4ccbbb
27 changed files with 1655 additions and 49 deletions
@@ -0,0 +1,265 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase10_manual_bridge_and_aggregate_mix",
"domain": "address_phase10_manual_bridge_and_aggregate_mix",
"title": "Phase 10 manual bridge and aggregate replay for orchestration recovery",
"description": "Focused AGENT replay built from the manual saved session assistant-stage1-3NilqwT1G2. The scenario validates broken seams where neighboring contours used to cooperate implicitly: inventory -> selected item -> VAT purchase-date bridge, colloquial VAT liability wording, payables/receivables polarity flip, company-level revenue aggregates, and inventory aging versus generic stock snapshot precedence.",
"bindings": {},
"steps": [
{
"step_id": "step_01_inventory_historical_anchor",
"title": "Historical inventory anchor on March 2016",
"question": "остатки на март 2016",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"expected_recipe": "address_inventory_on_hand_as_of_date_v1",
"required_filters": {
"as_of_date": "2016-03-31",
"period_from": "2016-03-01",
"period_to": "2016-03-31"
},
"required_direct_answer_patterns_any": [
"31\\.03\\.2016",
"(?i)на складе"
],
"criticality": "critical",
"semantic_tags": [
"inventory_root",
"historical_date_anchor"
]
},
{
"step_id": "step_02_selected_item_purchase_provenance",
"title": "Selected workstation supplier / purchase provenance on the same date",
"question": "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"allowed_reply_types": [
"factual",
"partial_coverage"
],
"expected_intents": [
"inventory_purchase_provenance_for_item"
],
"expected_recipe": "address_inventory_purchase_provenance_for_item_v1",
"required_filters": {
"item": "Рабочая станция универсального специалиста (индивидуальное изготовление)",
"as_of_date": "{{step_01_inventory_historical_anchor.filters.as_of_date}}"
},
"required_direct_answer_patterns_any": [
"(?i)поставщик|закуп",
"(?i)рабочая станция"
],
"criticality": "critical",
"semantic_tags": [
"selected_object",
"inventory_provenance",
"date_scope"
]
},
{
"step_id": "step_03_vat_on_purchase_date_bridge",
"title": "VAT approximate on the purchase date of the selected item",
"question": "ндс можешь прикинуть на дату покупки рабочей станции?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"expected_intents": [
"vat_liability_confirmed_for_tax_period"
],
"required_direct_answer_patterns_any": [
"(?i)ндс",
"(?i)дата покупки|период|налоговый период|не удается точно"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"bridge_inventory_to_vat",
"selected_object",
"purchase_date_bundle"
]
},
{
"step_id": "step_04_colloquial_vat_tax_period",
"title": "Colloquial VAT liability wording on February 2017",
"question": "прикинь какой ндс нам надо заплатить на февраль 2017",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"expected_intents": [
"vat_liability_confirmed_for_tax_period"
],
"expected_recipe": "address_vat_liability_confirmed_tax_period_v1",
"required_filters": {
"period_from": "2017-02-01",
"period_to": "2017-02-28"
},
"required_direct_answer_patterns_any": [
"(?i)ндс",
"(?i)2017"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"vat_colloquial_wording",
"tax_period"
]
},
{
"step_id": "step_05_payables_today",
"title": "Payables snapshot for today",
"question": "мы должны комуто денег на сегодня?",
"allowed_reply_types": [
"factual",
"partial_coverage"
],
"expected_intents": [
"payables_confirmed_as_of_date",
"list_payables_counterparties"
],
"required_direct_answer_patterns_any": [
"(?i)кредитор|обязатель|долж",
"(?i)сегодня|на .*20"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"payables",
"debt_polarity"
]
},
{
"step_id": "step_06_receivables_role_flip",
"title": "Short polarity flip from payables to receivables",
"question": "а нам?",
"allowed_reply_types": [
"factual",
"partial_coverage"
],
"expected_intents": [
"receivables_confirmed_as_of_date",
"list_receivables_counterparties"
],
"required_direct_answer_patterns_any": [
"(?i)дебитор|нам должны|должны нам",
"(?i)сегодня|на .*20|не удается точно"
],
"forbidden_direct_answer_patterns": [
"(?i)что относится к вашей компании",
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"receivables",
"polarity_flip",
"followup_short"
]
},
{
"step_id": "step_07_top_customer_all_time",
"title": "Top customer by all-time revenue",
"question": "кто у нас самый доходный клиент за все время",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage",
"clarification_required"
],
"expected_intents": [
"customer_revenue_and_payments"
],
"required_direct_answer_patterns_any": [
"(?i)клиент|контрагент|доход|выруч",
"(?i)не удается точно|за все время|самый доходный"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"customer_analytics",
"aggregate_all_time",
"ranking"
]
},
{
"step_id": "step_08_top_year_revenue",
"title": "Most profitable year",
"question": "какой у нас самый доходный год",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage",
"clarification_required"
],
"expected_intents": [
"customer_revenue_and_payments"
],
"required_direct_answer_patterns_any": [
"(?i)год|доход|выруч|прибыл",
"(?i)не удается точно|самый доходный"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)address_mode",
"(?i)tool_gate_reason"
],
"criticality": "critical",
"semantic_tags": [
"company_analytics",
"aggregate_year",
"ranking"
]
},
{
"step_id": "step_09_very_old_stock",
"title": "Very old stock should prefer aging contour over generic inventory snapshot",
"question": "Есть ли остатки товара, которые закупались очень давно",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"expected_intents": [
"inventory_aging_by_purchase_date"
],
"expected_recipe": "address_inventory_aging_by_purchase_date_v1",
"required_direct_answer_patterns_any": [
"(?i)стар|давно|закуп",
"(?i)остат"
],
"forbidden_direct_answer_patterns": [
"(?i)18\\.04\\.2026",
"(?i)на складе подтверждено \\d+ позиц"
],
"criticality": "critical",
"semantic_tags": [
"inventory_aging",
"very_old_stock",
"precedence"
]
}
]
}