АРЧ АП11 - Архитектура после регресса: Архитектура: сохранить свежую дату при inventory root restore и очистить data-scope ответы от грязных лейблов

This commit is contained in:
2026-04-18 09:12:39 +03:00
parent a5ea9adf53
commit 0431595542
24 changed files with 1030 additions and 58 deletions
@@ -79,6 +79,24 @@
{
"step_id": "step_09_company_activity_age",
"title": "Organization age should be answered through reachable activity evidence or honest boundedness",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"expected_intents": [
"counterparty_activity_lifecycle"
],
"expected_recipe": "address_counterparty_activity_lifecycle_v1",
"required_direct_answer_patterns_any": [
"(?i)по активности",
"(?i)первая подтвержденная активность|не удается точно определить"
],
"forbidden_direct_answer_patterns": [
"(?i)не найден контрагент",
"(?i)уточните точное наименование организации"
],
"criticality": "critical",
"question": "а по Альтернативе Плюс сколько лет активности в базе 1С?",
"semantic_tags": [
"organization_activity_age",
@@ -88,6 +106,23 @@
{
"step_id": "step_10_capability_meta_interrupt",
"title": "Capability meta interrupt does not destroy prior context",
"allowed_reply_types": [
"factual_with_explanation",
"factual"
],
"required_direct_answer_patterns_any": [
"(?i)1СЃ",
"(?i)ндс|контрагент|остатк|склад"
],
"forbidden_direct_answer_patterns": [
"(?i)vat_period_snapshot",
"(?i)inventory_on_hand_as_of_date",
"(?i)explain_boundary",
"(?i)suggest_safe_next_step",
"(?i)read_only",
"(?i)mcp"
],
"criticality": "warning",
"question": "что ты умеешь?",
"semantic_tags": [
"meta_capability"
@@ -0,0 +1,337 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase8_manual_runtime_authority_mix",
"domain": "address_phase8_manual_runtime_authority_mix",
"title": "Phase 8 manual runtime authority replay for company continuity, activity age, and human meta answers",
"description": "Mixed AGENT replay based on the latest manual session. The pack validates company authority, counterparty -> inventory transition behavior, selected-object continuity, organization activity age, capability meta cleanliness, same-date cross-domain pivot, and account 60 tails in one live session.",
"bindings": {},
"steps": [
{
"step_id": "step_01_smalltalk",
"title": "Casual opening stays human",
"question": "привет, как дела?",
"required_answer_patterns_any": [
"(?i)привет|дела|помочь|норм"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)address_mode",
"(?i)living_reason",
"(?i)snapshot_items"
],
"criticality": "info",
"semantic_tags": [
"meta_smalltalk"
]
},
{
"step_id": "step_02_data_scope_meta",
"title": "Data-scope meta stays deterministic and non-technical",
"question": "по какой компании мы сейчас работаем?",
"required_answer_patterns_any": [
"(?i)компан|организац|контур",
"(?i)работ"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)hard_meta_mode",
"(?i)living_reason",
"(?i)mcp",
"(?i)read_only"
],
"criticality": "warning",
"semantic_tags": [
"meta_scope"
]
},
{
"step_id": "step_03_counterparty_documents",
"title": "Counterparty documents use the legal name contour",
"question": "покажи все документы по чепурнову",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"list_documents_by_counterparty"
],
"required_direct_answer_patterns_any": [
"(?i)чепурнов",
"(?i)документ|отгруз|оплат|счет|акт"
],
"criticality": "critical",
"semantic_tags": [
"counterparty_documents"
]
},
{
"step_id": "step_04_counterparty_shipments",
"title": "Counterparty shipment fallback stays human and business-useful",
"question": "что нам отгружал чепурнов, какой товар или услугу?",
"allowed_reply_types": [
"factual",
"partial_coverage"
],
"expected_intents": [
"list_documents_by_counterparty"
],
"required_direct_answer_patterns_any": [
"(?i)чепурнов",
"(?i)товар|услуг|отгруз|документ|оплат"
],
"forbidden_direct_answer_patterns": [
"(?i)^сейчас не дам прямой адресный ответ",
"(?i)^в текущем адресном контуре этот запрос лучше не закрывать"
],
"criticality": "critical",
"semantic_tags": [
"counterparty_shipment_fallback"
]
},
{
"step_id": "step_05_inventory_root_after_counterparty",
"title": "Inventory root after counterparty branch remains human and non-technical",
"question": "какие остатки на складе на март 2021",
"allowed_reply_types": [
"factual",
"clarification_required",
"partial_coverage"
],
"required_answer_patterns_any": [
"(?i)март 2021|31\\.03\\.2021|организац|компан"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)address_mode",
"(?i)mcp",
"(?i)read_only",
"(?i)snapshot_items"
],
"criticality": "warning",
"semantic_tags": [
"inventory_root",
"company_authority_probe"
]
},
{
"step_id": "step_06_selected_item_supplier",
"title": "Selected-object supplier follow-up stays action-first",
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?",
"allowed_reply_types": [
"factual",
"clarification_required"
],
"expected_intents": [
"inventory_purchase_provenance_for_item"
],
"required_direct_answer_patterns_any": [
"(?i)столешница 600\\*3050\\*26 альмандин",
"(?i)поставщик|поставил|куплен|союз|торговый дом|уточните организац"
],
"forbidden_direct_answer_patterns": [
"(?i)^сейчас не дам прямой адресный ответ"
],
"criticality": "critical",
"semantic_tags": [
"selected_object",
"selected_object_supplier"
]
},
{
"step_id": "step_07_capability_meta",
"title": "Capability meta answer is business-first and free from technical garbage",
"question": "что ты умеешь?",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"required_direct_answer_patterns_any": [
"(?i)могу|умею",
"(?i)документ|остатк|контрагент|ндс|склад|долг"
],
"forbidden_direct_answer_patterns": [
"(?i)vat_period_snapshot",
"(?i)inventory_on_hand_as_of_date",
"(?i)explain_boundary",
"(?i)suggest_safe_next_step",
"(?i)read_only",
"(?i)mcp",
"(?i)snapshot_items",
"(?i)assessed state",
"(?i)open item"
],
"criticality": "critical",
"semantic_tags": [
"meta_capability"
]
},
{
"step_id": "step_08_selected_item_documents",
"title": "Selected-object documents stay in the same contour after meta interrupt",
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции",
"allowed_reply_types": [
"factual",
"clarification_required"
],
"expected_intents": [
"inventory_purchase_documents_for_item"
],
"required_direct_answer_patterns_any": [
"(?i)столешница 600\\*3050\\*26 альмандин|по этой позиции",
"(?i)документ|уточните организац"
],
"criticality": "critical",
"semantic_tags": [
"selected_object",
"selected_object_documents"
]
},
{
"step_id": "step_09_memory_recap",
"title": "Memory recap does not invent grounded facts",
"question": "а ты помнишь, что мы по этой позиции уже выяснили?",
"required_answer_patterns_any": [
"(?i)помню|по позиции|столешница"
],
"forbidden_answer_patterns": [
"(?i)^сейчас не дам прямой адресный ответ"
],
"criticality": "warning",
"semantic_tags": [
"meta_memory"
]
},
{
"step_id": "step_10_receivables_march_2020",
"title": "Receivables root establishes March 2020 carryover",
"question": "кто нам должен на март 2020",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"receivables_confirmed_as_of_date"
],
"required_filters": {
"as_of_date": "2020-03-31",
"period_from": "2020-03-01",
"period_to": "2020-03-31"
},
"required_direct_answer_patterns_any": [
"(?i)дебитор",
"31\\.03\\.2020"
],
"criticality": "critical",
"semantic_tags": [
"settlements_receivables"
]
},
{
"step_id": "step_11_inventory_same_date_after_receivables",
"title": "Inventory same-date pivot reuses March 2020 without re-clarification",
"question": "остатки по складу на эту же дату",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"required_filters": {
"as_of_date": "{{step_10_receivables_march_2020.filters.as_of_date}}",
"period_from": "{{step_10_receivables_march_2020.filters.period_from}}",
"period_to": "{{step_10_receivables_march_2020.filters.period_to}}"
},
"required_direct_answer_patterns_all": [
"(?i)на складе",
"31\\.03\\.2020"
],
"forbidden_direct_answer_patterns": [
"(?i)уточните организац",
"(?i)по какой компании"
],
"required_filter_within_previous_step_period": {
"as_of_date": "step_10_receivables_march_2020"
},
"criticality": "critical",
"semantic_tags": [
"inventory_root",
"same_date_pivot"
]
},
{
"step_id": "step_12_historical_inventory_capability",
"title": "Historical inventory capability follow-up stays human",
"question": "а исторические остатки ты можешь дать?",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"required_answer_patterns_any": [
"(?i)историческ|история",
"(?i)могу|умею"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)hard_meta_mode",
"(?i)mcp",
"(?i)read_only"
],
"criticality": "warning",
"semantic_tags": [
"meta_historical_capability",
"inventory_root"
]
},
{
"step_id": "step_13_open_items_account_60",
"title": "Account 60 tails stay exact after the mixed session",
"question": "хвосты покажи по счету 60 на август 2022",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"expected_intents": [
"open_items_by_counterparty_or_contract"
],
"required_filters": {
"account": "60",
"period_from": "2022-08-01",
"period_to": "2022-08-31",
"as_of_date": "2022-08-31"
},
"required_direct_answer_patterns_any": [
"(?i)счету 60|счёту 60",
"(?i)хвост"
],
"criticality": "critical",
"semantic_tags": [
"settlements_account_60"
]
},
{
"step_id": "step_14_company_activity_age",
"title": "Organization activity age is answered through activity evidence or honest boundedness",
"question": "а по Альтернативе Плюс сколько лет активности в базе 1С?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"expected_intents": [
"counterparty_activity_lifecycle"
],
"expected_recipe": "address_counterparty_activity_lifecycle_v1",
"required_direct_answer_patterns_any": [
"(?i)активност",
"(?i)первая подтвержденная|не удается точно определить|лет"
],
"forbidden_direct_answer_patterns": [
"(?i)не найден контрагент",
"(?i)уточните точное наименование организации"
],
"criticality": "critical",
"semantic_tags": [
"organization_activity_age",
"company_selected"
]
}
]
}