Архитектура: закрыть phase17 clarification-resume и обновить readiness-статус перед расширением доменов

This commit is contained in:
2026-04-19 17:17:09 +03:00
parent af15e21bf6
commit 0e098cde38
18 changed files with 842 additions and 87 deletions
@@ -0,0 +1,252 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase17_clarification_resume_and_counterparty_tail",
"domain": "address_phase17_clarification_resume_and_counterparty_tail",
"title": "Phase 17 clarification-resume and counterparty tail replay",
"description": "Targeted AGENT replay for the semantic defects from assistant-stage1-uWH6xahSDt: company clarification must resume the pending inventory query, short historical date follow-ups must stay in the inventory contour after a capability answer, short counterparty retarget must not collapse into company fixation, and counterparty shipment wording must answer through shipped positions rather than a stale document/date fallback.",
"bindings": {},
"steps": [
{
"step_id": "step_01_smalltalk_entry",
"title": "Smalltalk entry stays human and may offer organization scope without technical garbage",
"question": "приветик - че как там дела",
"required_answer_patterns_all": [
"(?i)привет|дела|норм|помоч"
],
"forbidden_answer_patterns": [
"(?i)mcp",
"(?i)read_only",
"(?i)tool_gate_reason",
"(?i)snapshot_items"
],
"criticality": "important",
"semantic_tags": [
"smalltalk_entry"
]
},
{
"step_id": "step_02_capability_meta_entry",
"title": "Capability-meta answer stays human before the business contour starts",
"question": "расскажи что можешь интересного",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"required_direct_answer_patterns_any": [
"(?i)могу|умею",
"(?i)ндс|документ|контрагент|долг|склад|остат"
],
"forbidden_direct_answer_patterns": [
"(?i)mcp",
"(?i)read_only",
"(?i)tool_gate_reason",
"(?i)snapshot_items"
],
"criticality": "important",
"semantic_tags": [
"capability_meta"
]
},
{
"step_id": "step_03_inventory_root_requires_company",
"title": "Inventory root after meta entry asks to choose the organization",
"question": "кайф - что там на складе по остаткам?",
"required_answer_patterns_all": [
"(?i)уточнит[ье].*организац|выбери.*организац|названи[ея] компании",
"(?i)альтернатива плюс|лайсвуд|райм"
],
"forbidden_answer_patterns": [
"(?i)mcp",
"(?i)read_only",
"(?i)tool_gate_reason",
"(?i)snapshot_items"
],
"criticality": "critical",
"semantic_tags": [
"inventory_root",
"clarification_required"
]
},
{
"step_id": "step_04_company_choice_resumes_inventory_root",
"title": "Bare company selection resumes the pending inventory query instead of only fixing the scope",
"question": "АЛЬТЕРНАТИВА",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"required_filters": {
"as_of_date": "{{runtime.today_iso}}",
"organization": "ООО Альтернатива Плюс"
},
"required_direct_answer_patterns_any": [
"(?i)на складе|остат",
"{{runtime.today_dot_regex}}"
],
"forbidden_direct_answer_patterns": [
"(?i)^отлично, фиксирую рабочую организацию",
"(?i)^фиксирую рабочую организацию",
"(?i)уточните организацию"
],
"criticality": "critical",
"semantic_tags": [
"clarification_resume",
"inventory_root"
]
},
{
"step_id": "step_05_historical_inventory_capability",
"title": "Historical inventory capability answer stays human",
"question": "а исторические остатки на другие даты умеешь?",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"required_answer_patterns_any": [
"(?i)историческ",
"(?i)могу|умею"
],
"forbidden_answer_patterns": [
"(?i)mcp",
"(?i)tool_gate_reason",
"(?i)read_only"
],
"criticality": "important",
"semantic_tags": [
"inventory_capability_meta"
]
},
{
"step_id": "step_06_inventory_july_2017_after_capability",
"title": "Date-only follow-up keeps the historical inventory contour after the capability answer",
"question": "давай на июль 2017",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"required_filters": {
"as_of_date": "2017-07-31",
"period_from": "2017-07-01",
"period_to": "2017-07-31",
"organization": "ООО Альтернатива Плюс"
},
"required_direct_answer_patterns_any": [
"31\\.07\\.2017",
"(?i)на складе|остат"
],
"forbidden_direct_answer_patterns": [
"(?i)^отлично, фиксирую рабочую организацию",
"(?i)уточните организацию"
],
"criticality": "critical",
"semantic_tags": [
"historical_inventory",
"date_followup"
]
},
{
"step_id": "step_07_inventory_march_2016",
"title": "Another short month follow-up still stays in the same historical inventory contour",
"question": "март 2016",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"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)на складе|остат"
],
"forbidden_direct_answer_patterns": [
"(?i)^отлично, фиксирую рабочую организацию",
"(?i)уточните организацию"
],
"criticality": "critical",
"semantic_tags": [
"historical_inventory",
"date_followup"
]
},
{
"step_id": "step_08_counterparty_documents_chepurnov",
"title": "Counterparty document root stays exact late in the same session",
"question": "по чепурнову покажи все доки",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"expected_intents": [
"list_documents_by_counterparty"
],
"required_direct_answer_patterns_any": [
"(?i)контрагент:.*чепурнов",
"(?i)документ|поступление|счет"
],
"criticality": "critical",
"semantic_tags": [
"counterparty_documents"
]
},
{
"step_id": "step_09_short_counterparty_retarget_svk",
"title": "Short follow-up 'а по свк' retargets the counterparty instead of re-fixing the organization",
"question": "а по свк",
"allowed_reply_types": [
"factual",
"factual_with_explanation"
],
"expected_intents": [
"list_documents_by_counterparty"
],
"required_direct_answer_patterns_any": [
"(?i)контрагент:.*свк",
"(?i)документ|поступление|счет"
],
"forbidden_direct_answer_patterns": [
"(?i)^отлично, фиксирую рабочую организацию",
"(?i)уточните организацию"
],
"criticality": "critical",
"semantic_tags": [
"counterparty_short_retarget",
"display_label_integrity"
]
},
{
"step_id": "step_10_counterparty_item_flow_chepurnov",
"title": "Counterparty shipment wording answers through shipped positions without stale 2017 fallback",
"question": "что нам отгружал чепурнов? какой товар или услугу?",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"list_documents_by_counterparty"
],
"required_direct_answer_patterns_any": [
"(?i)контрагент:.*чепурнов",
"(?i)позици[ия]|товар|услуг"
],
"forbidden_direct_answer_patterns": [
"(?i)по окну 2017-01-01\\.\\.2017-12-31 строк не найдено",
"(?i)^отлично, фиксирую рабочую организацию",
"(?i)уточните организацию"
],
"criticality": "critical",
"semantic_tags": [
"counterparty_item_flow",
"stale_temporal_carryover"
]
}
]
}