Архитектура: ввести answer-inspection follow-up contract и закрыть phase15 replay
This commit is contained in:
@@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user