Post-F: укрепить VAT, даты остатков и SVK follow-up

This commit is contained in:
2026-05-05 17:09:26 +03:00
parent 2ec2f81dd8
commit 98afdd39c4
15 changed files with 815 additions and 22 deletions
@@ -0,0 +1,481 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase89_open_world_semantic_control_gate_ehmo_subset",
"domain": "open_world_bounded_autonomy_breadth_semantic_control_gate",
"title": "Phase 89 Open-World Semantic Control Gate EHMO critical subset",
"description": "Strict live subset derived from assistant-stage1-EHMOy3lNFt. Covers business overview continuity, wrong-lane prevention, stale frame reset, SVK pivot integrity, metadata continuation, VAT metadata, selected-object profitability, and final summary semantics.",
"source_export": "docs\\orchestration\\manual_qa_open_world_breadth_99_fat_gui_pack_20260505.json",
"bindings": {},
"steps": [
{
"step_id": "step_001_smalltalk_sanity",
"title": "001_smalltalk_sanity",
"question": "привет, ты на связи? перед большим прогоном отвечай живо, но не теряй потом бизнес-контекст",
"criticality": "info",
"semantic_tags": [
"human_answer",
"meta_smalltalk",
"context_guard"
],
"notes": "EHMO subset source=001_smalltalk_sanity; review_focus=Ассистент должен ответить нормально и не начать преждевременно искать данные 1С.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_002_business_overview_2020_full",
"title": "002_business_overview_2020_full",
"question": "Дай взрослый бизнес-обзор ООО Альтернатива Плюс за 2020 год по данным 1С: обороты, входящие и исходящие деньги, нетто, НДС, дебиторка, кредиторка, склад, клиенты, поставщики, договоры, документы, что подтверждено и что пока нельзя утверждать.",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"organization_scope",
"explicit_period",
"analyst_synthesis"
],
"notes": "EHMO subset source=002_business_overview_2020_full; review_focus=Проверить полноту бизнес-обзора и честность границ: нетто не должно выдаваться за прибыль.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
],
"required_answer_patterns_all": [
"2020"
]
},
{
"step_id": "step_003_money_breakdown",
"title": "003_money_breakdown",
"question": "Раскрой деньги подробнее: сколько всего получили, сколько заплатили, какой чистый денежный поток, кто главный клиент и кто главный поставщик в 2020.",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"money_flow",
"top_customer",
"top_supplier",
"followup_reuse"
],
"notes": "EHMO subset source=003_money_breakdown; review_focus=Должен сохраняться scope ООО Альтернатива Плюс и период 2020.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
],
"required_answer_patterns_all": [
"2020"
]
},
{
"step_id": "step_005_profit_margin_boundary",
"title": "005_profit_margin_boundary",
"question": "Можно ли по этим данным посчитать нормальную прибыль и маржу компании? Если нет, дай proxy-анализ и объясни, каких учетных доказательств не хватает.",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"profit_margin_boundary",
"missing_proof_families"
],
"notes": "EHMO subset source=005_profit_margin_boundary; review_focus=Ответ не должен фантазировать exact P&L; должен назвать missing proof families.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_008_vat_2020",
"title": "008_vat_2020",
"question": "Что с НДС за 2020 год по Альтернативе Плюс: какая позиция видна, на чем она основана и чего не хватает для налогового вывода?",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"vat",
"explicit_period",
"tax_boundary"
],
"notes": "EHMO subset source=008_vat_2020; review_focus=VAT-период должен быть 2020, без materialization gap и без выдуманного налогового заключения.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id",
"2000-01-01"
],
"required_answer_patterns_all": [
"2020"
]
},
{
"step_id": "step_013_inventory_date",
"title": "013_inventory_date",
"question": "Покажи складской срез Альтернативы Плюс на 2026-04-16: что есть в остатках, какие самые заметные позиции, и что это говорит о бизнесе.",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"inventory_position",
"explicit_date",
"inventory_boundary"
],
"notes": "EHMO subset source=013_inventory_date; review_focus=Нужен складской факт на дату без превращения его в полное здоровье бизнеса.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
],
"required_answer_patterns_all": [
"2026|2026-04-16|16[.-]04"
]
},
{
"step_id": "step_014_inventory_reserve_boundary",
"title": "014_inventory_reserve_boundary",
"question": "Можно ли из этого сказать, что склад ликвидный или что надо создавать резервы/списывать неликвид? Если нет, что именно подтверждено и чего не хватает?",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"inventory_reserve_boundary",
"missing_proof_families"
],
"notes": "EHMO subset source=014_inventory_reserve_boundary; review_focus=Нельзя выдавать reserve/liquidation evidence без подтвержденных маршрутов.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_016_contract_counterparty_profile",
"title": "016_contract_counterparty_profile",
"question": "Сколько реально активных контрагентов и договоров видно по Альтернативе Плюс, какие роли у контрагентов, и какие договоры используются чаще всего?",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"counterparty_population",
"contract_usage_profile"
],
"notes": "EHMO subset source=016_contract_counterparty_profile; review_focus=Должен быть профиль, а не generic metadata ответ.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_018_business_audit_synthesis",
"title": "018_business_audit_synthesis",
"question": "Собери это как нормальный бизнес-аудит: сильные стороны, риски, что уже можно сказать уверенно, что только proxy, и что директору проверить руками.",
"criticality": "critical",
"semantic_tags": [
"business_overview",
"analyst_synthesis",
"human_answer_quality"
],
"notes": "EHMO subset source=018_business_audit_synthesis; review_focus=Нужен взрослый аналитический ответ, а не короткий высер или debug.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_019_pivot_find_svk",
"title": "019_pivot_find_svk",
"question": "Теперь резко переключаемся: найди в 1С контрагента СВК.",
"criticality": "critical",
"semantic_tags": [
"entity_resolution",
"counterparty_pivot",
"stale_scope_guard"
],
"notes": "EHMO subset source=019_pivot_find_svk; review_focus=Должен смениться focus с организации на контрагента, без залипания Альтернативы как контрагента.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_020_svk_incoming_2020",
"title": "020_svk_incoming_2020",
"question": "Сколько получили по нему за 2020 год?",
"criticality": "critical",
"semantic_tags": [
"value_flow",
"incoming_value_flow",
"followup_anchor",
"explicit_period"
],
"notes": "EHMO subset source=020_svk_incoming_2020; review_focus=Scope: выбранный СВК как контрагент, период 2020.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
],
"required_answer_patterns_all": [
"2020"
]
},
{
"step_id": "step_021_svk_outgoing_2020",
"title": "021_svk_outgoing_2020",
"question": "А теперь сколько заплатили?",
"criticality": "critical",
"semantic_tags": [
"value_flow",
"outgoing_value_flow",
"followup_reuse",
"date_carryover"
],
"notes": "EHMO subset source=021_svk_outgoing_2020; review_focus=Проверить payout switch и carryover периода/контрагента.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
],
"required_answer_patterns_all": [
"2020"
]
},
{
"step_id": "step_022_svk_net",
"title": "022_svk_net",
"question": "А какое нетто по СВК: сколько получили минус сколько заплатили?",
"criticality": "critical",
"semantic_tags": [
"value_flow_comparison",
"net_value_flow",
"followup_reuse"
],
"notes": "EHMO subset source=022_svk_net; review_focus=Нетто должно быть по СВК, не по организации в целом.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_023_svk_documents",
"title": "023_svk_documents",
"question": "А по документам СВК что видно?",
"criticality": "critical",
"semantic_tags": [
"document_evidence",
"counterparty_followup",
"document_pivot"
],
"notes": "EHMO subset source=023_svk_documents; review_focus=Переход value-flow -> documents не должен терять selected counterparty.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_024_svk_movements",
"title": "024_svk_movements",
"question": "А по движениям?",
"criticality": "critical",
"semantic_tags": [
"movement_evidence",
"document_pivot",
"followup_reuse"
],
"notes": "EHMO subset source=024_svk_movements; review_focus=Движения должны относиться к текущему СВК/document context.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_039_metadata_counterparty_catalogs",
"title": "039_metadata_counterparty_catalogs",
"question": "Какие справочники 1С есть по контрагентам?",
"criticality": "critical",
"semantic_tags": [
"phase83_canary",
"catalog_metadata_surface"
],
"notes": "EHMO subset source=039_metadata_counterparty_catalogs; review_focus=Metadata lane должен ответить полезно, не ломая бизнес-контекст.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_040_metadata_drilldown_neutral",
"title": "040_metadata_drilldown_neutral",
"question": "давай дальше",
"criticality": "critical",
"semantic_tags": [
"phase83_canary",
"neutral_followup",
"catalog_drilldown"
],
"notes": "EHMO subset source=040_metadata_drilldown_neutral; review_focus=Нейтральный follow-up должен продолжить metadata drilldown, а не предыдущий деньги/Жуковку.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_041_metadata_document_fields",
"title": "041_metadata_document_fields",
"question": "Какие поля и связи стоит смотреть у документов реализации и поступления, если я хочу потом идти в продажи, закупки, оплату и движения?",
"criticality": "critical",
"semantic_tags": [
"metadata_surface",
"dynamic_schema_traversal",
"route_planning"
],
"notes": "EHMO subset source=041_metadata_document_fields; review_focus=Проверить полезность маршрутизации без жесткой скрепки.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_046_vat_metadata",
"title": "046_vat_metadata",
"question": "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?",
"criticality": "critical",
"semantic_tags": [
"post_f_canary",
"vat_metadata",
"dynamic_schema_traversal"
],
"notes": "EHMO subset source=046_vat_metadata; review_focus=Metadata answer should be useful and not block VAT facts incorrectly.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id",
"2000-01-01"
],
"required_answer_patterns_all": [
"(?i)1C|1?"
]
},
{
"step_id": "step_056_selected_item_profitability",
"title": "056_selected_item_profitability",
"question": "По выбранному объекту \"Четки Пост (84*117)\": сколько заработали на продаже, какие закупочные и продажные документы это подтверждают?",
"criticality": "critical",
"semantic_tags": [
"selected_object_continuity",
"inventory_item_profitability",
"profit_boundary"
],
"notes": "EHMO subset source=056_selected_item_profitability; review_focus=Selected-item profitability should avoid company-level profit confusion.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
},
{
"step_id": "step_061_final_manual_review_summary",
"title": "061_final_manual_review_summary",
"question": "Финально собери executive summary по всему диалогу: где ответы были подтвержденными, где proxy, где не хватило доказательств, и какие места мне руками смотреть особенно внимательно.",
"criticality": "critical",
"semantic_tags": [
"manual_review_summary",
"context_integrity",
"analyst_synthesis"
],
"notes": "EHMO subset source=061_final_manual_review_summary; review_focus=Финальный ответ должен удержать контекст всего прогона и честно выделить рискованные зоны.",
"forbidden_answer_patterns": [
"(?i)business_overview_route_template_v1",
"(?i)mcp_discovery",
"(?i)runtime_",
"(?i)query_documents",
"(?i)query_movements",
"(?i)capability_id",
"(?i)selected_chain_id"
]
}
]
}