Архитектура: ввести answer-inspection follow-up contract и закрыть phase15 replay

This commit is contained in:
2026-04-18 23:04:37 +03:00
parent c605fae3a3
commit 1d48f01841
16 changed files with 575 additions and 13 deletions
@@ -0,0 +1,221 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase15_answer_inspection_followup",
"domain": "address_phase15_answer_inspection_followup",
"title": "Phase 15 answer-inspection replay for selected-item trace continuity",
"description": "Focused AGENT replay for a different saved-session seam: after a historical inventory slice and selected-item purchase/sale trace, the user inspects the previous answer shape and then asks for VAT on the purchase date using colloquial wording. The scenario validates that result-inspection follow-ups stay grounded instead of collapsing into unsupported address mode, and that the purchase-date VAT bridge still survives after the inspection turn.",
"bindings": {},
"steps": [
{
"step_id": "step_01_smalltalk_scope_offer",
"title": "Smalltalk entry offers organization proactively",
"question": "приветик - че как там дела",
"required_answer_patterns_all": [
"(?i)привет",
"(?i)альтернатива плюс|лайсвуд|райм"
],
"forbidden_answer_patterns": [
"(?i)mcp",
"(?i)tool_gate_reason",
"(?i)living_reason"
],
"criticality": "important",
"semantic_tags": [
"smalltalk_entry",
"scope_offer"
]
},
{
"step_id": "step_02_choose_organization",
"title": "Explicit company selection fixes the session contour",
"question": "Альтернатива Плюс",
"required_answer_patterns_all": [
"(?i)зафиксир|рабочую организац|работаем по",
"(?i)Альтернатива Плюс"
],
"criticality": "critical",
"semantic_tags": [
"organization_authority"
]
},
{
"step_id": "step_03_inventory_march_2016",
"title": "Current inventory root enters the warehouse contour first",
"question": "что там на складе по остаткам?",
"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": "2026-04-18",
"organization": "ООО Альтернатива Плюс"
},
"required_direct_answer_patterns_any": [
"(?i)на складе|остат",
"18\\.04\\.2026"
],
"criticality": "critical",
"semantic_tags": [
"inventory_root",
"current_snapshot"
]
},
{
"step_id": "step_04_inventory_history_capability",
"title": "Inventory history capability handshake before month-only follow-up",
"question": "а исторические остатки на другие даты умеешь?",
"allowed_reply_types": [
"factual_with_explanation"
],
"required_direct_answer_patterns_any": [
"(?i)^да, могу",
"(?i)историческ",
"(?i)дат|месяц|год"
],
"criticality": "important",
"semantic_tags": [
"inventory_history_capability",
"context_setup"
]
},
{
"step_id": "step_05_inventory_march_2016",
"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",
"organization": "ООО Альтернатива Плюс"
},
"required_direct_answer_patterns_any": [
"31\\.03\\.2016",
"(?i)на складе"
],
"criticality": "critical",
"semantic_tags": [
"inventory_root",
"historical_anchor"
]
},
{
"step_id": "step_06_selected_item_purchase_provenance",
"title": "Selected workstation purchase provenance",
"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_05_inventory_march_2016.filters.as_of_date}}"
},
"required_direct_answer_patterns_any": [
"(?i)рабочая станция",
"(?i)поставщик|закуп"
],
"criticality": "critical",
"semantic_tags": [
"selected_object",
"purchase_provenance"
]
},
{
"step_id": "step_07_selected_item_sale_trace",
"title": "Buyer / sale trace follow-up on the same selected item",
"question": "а кому продали?",
"allowed_reply_types": [
"factual",
"partial_coverage"
],
"expected_intents": [
"inventory_sale_trace_for_item"
],
"expected_recipe": "address_inventory_sale_trace_for_item_v1",
"required_filters": {
"item": "Рабочая станция универсального специалиста (индивидуальное изготовление)",
"as_of_date": "{{step_05_inventory_march_2016.filters.as_of_date}}"
},
"required_direct_answer_patterns_any": [
"(?i)покупател|выбыт|прод",
"(?i)рабочая станция"
],
"criticality": "critical",
"semantic_tags": [
"selected_object",
"sale_trace"
]
},
{
"step_id": "step_08_answer_inspection_counterparty_label",
"title": "Result-inspection follow-up stays grounded instead of unsupported",
"question": "у тебя написано кто контрагент: рабочая станция - это ошибка?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_direct_answer_patterns_any": [
"(?i)рабочая станция",
"(?i)контрагент|номенклатур|позици|товар|поле"
],
"forbidden_direct_answer_patterns": [
"(?i)пока не поддерживается",
"(?i)ограничени[яй] адресного режима",
"(?i)не представляется возможным",
"(?i)система не поддерживает",
"(?i)tool_gate_reason",
"(?i)mcp"
],
"criticality": "critical",
"semantic_tags": [
"answer_inspection",
"selected_object_context",
"grounded_self_correction"
]
},
{
"step_id": "step_09_vat_on_purchase_date_after_inspection",
"title": "VAT bridge survives after the inspection turn",
"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)дата покупки|налогов|период|2015|феврал|июл"
],
"forbidden_direct_answer_patterns": [
"(?i)пока не поддерживается",
"(?i)ограничени[яй] адресного режима",
"(?i)tool_gate_reason",
"(?i)mcp"
],
"criticality": "critical",
"semantic_tags": [
"purchase_date_vat_bridge",
"selected_object",
"post_inspection_continuity"
]
}
]
}