Документы: зафиксировать Open-World Semantic Control Gate

This commit is contained in:
2026-05-05 15:26:10 +03:00
parent c0a89ccece
commit ee69c7bc8d
10 changed files with 1999 additions and 11 deletions
@@ -0,0 +1,418 @@
{
"schema_version": "manual_gui_autorun_pack_v1",
"scenario_id": "manual_qa_open_world_breadth_99_fat_gui_pack_20260505",
"title": "MANUAL QA | Open-World 99 жирный прогон: бизнес-обзор, pivots, legacy canaries",
"created_at": "2026-05-05T14:18:16+03:00",
"status": "manual_runtime_run_completed_semantic_control_gate_open",
"latest_manual_runtime_review": {
"run_id": "assistant-stage1-EHMOy3lNFt",
"runtime_case_set": "llm_normalizer/data/eval_cases/assistant_saved_session_runtime_job-eUovXbfqU0.json",
"report": "llm_normalizer/reports/assistant-stage1-EHMOy3lNFt.md",
"review_status": "semantic_control_gate_opened_not_accepted",
"critical_failure_clusters": [
"garbage_anchor_and_pseudo_entity_grounding",
"business_overview_followup_continuation_break",
"intent_dominance_wrong_lane_selection",
"stale_date_or_selected_object_carryover",
"counterparty_vs_organization_frame_mixing",
"metadata_or_final_summary_hijacked_by_exact_lanes",
"underpowered_or_internalized_user_facing_answer_shape"
]
},
"domain": "open_world_bounded_autonomy_breadth_manual_qa",
"architecture_phase": "turnaround_11_open_world_bounded_autonomy_breadth_99",
"manual_review_required": true,
"purpose": "Большой ручной GUI-автопрогон для проверки текущих Open-World/Business Overview наработок, контекстной целостности, stale-scope защиты, Post-F/phase83 canaries и старых детерминированных маршрутов перед закрытием этапа.",
"review_order": [
"Сначала читать user-facing ответы как бизнес-пользователь.",
"Проверять, отвечает ли ассистент прямо, полезно и без технического мусора.",
"Отдельно отмечать stale scope: организация, контрагент, период, выбранный объект.",
"Отдельно отмечать, где ответ честно разделяет подтвержденное, proxy/inference и неизвестное.",
"Только после смысловой оценки смотреть debug/маршруты."
],
"coverage": [
"business_overview evidence fusion",
"tax/VAT explicit period and all-time carryover boundary",
"debt position and due-date/overdue proof boundary",
"inventory position and reserve/liquidation proof boundary",
"supplier concentration and vendor-risk proof boundary",
"counterparty population and contract usage profile",
"document/account-section activity profile",
"yearly operating-flow proxy and best-year wording",
"profit/margin wording boundary and analyst synthesis",
"counterparty pivot from organization overview",
"SVK value-flow documents/movements chain",
"Post-F stale scope canaries",
"phase83 planner-brain catalog alignment canaries",
"selected-object wording canaries",
"off-domain smalltalk guard"
],
"steps": [
{
"step_id": "001_smalltalk_sanity",
"question": "привет, ты на связи? перед большим прогоном отвечай живо, но не теряй потом бизнес-контекст",
"semantic_tags": ["human_answer", "meta_smalltalk", "context_guard"],
"review_focus": "Ассистент должен ответить нормально и не начать преждевременно искать данные 1С."
},
{
"step_id": "002_business_overview_2020_full",
"question": "Дай взрослый бизнес-обзор ООО Альтернатива Плюс за 2020 год по данным 1С: обороты, входящие и исходящие деньги, нетто, НДС, дебиторка, кредиторка, склад, клиенты, поставщики, договоры, документы, что подтверждено и что пока нельзя утверждать.",
"semantic_tags": ["business_overview", "organization_scope", "explicit_period", "analyst_synthesis"],
"review_focus": "Проверить полноту бизнес-обзора и честность границ: нетто не должно выдаваться за прибыль."
},
{
"step_id": "003_money_breakdown",
"question": "Раскрой деньги подробнее: сколько всего получили, сколько заплатили, какой чистый денежный поток, кто главный клиент и кто главный поставщик в 2020.",
"semantic_tags": ["business_overview", "money_flow", "top_customer", "top_supplier", "followup_reuse"],
"review_focus": "Должен сохраняться scope ООО Альтернатива Плюс и период 2020."
},
{
"step_id": "004_best_year_all_time",
"question": "А если смотреть за все доступное время, какой самый доходный год по подтвержденным оборотам и почему? Только не называй это бухгалтерской прибылью, если ее нет.",
"semantic_tags": ["business_overview", "all_time_followup", "best_year", "profit_boundary"],
"review_focus": "Проверить сброс периода 2020 и честную формулировку proxy по оборотам."
},
{
"step_id": "005_profit_margin_boundary",
"question": "Можно ли по этим данным посчитать нормальную прибыль и маржу компании? Если нет, дай proxy-анализ и объясни, каких учетных доказательств не хватает.",
"semantic_tags": ["business_overview", "profit_margin_boundary", "missing_proof_families"],
"review_focus": "Ответ не должен фантазировать exact P&L; должен назвать missing proof families."
},
{
"step_id": "006_customer_concentration",
"question": "Кто крупнейшие клиенты Альтернативы Плюс и насколько бизнес зависит от одного покупателя?",
"semantic_tags": ["business_overview", "customer_concentration", "counterparty_population"],
"review_focus": "Проверить полезность концентрационного анализа и привязку к подтвержденным строкам."
},
{
"step_id": "007_supplier_concentration",
"question": "А по поставщикам: кто самый крупный получатель исходящих денег и есть ли риск зависимости от поставщика?",
"semantic_tags": ["business_overview", "supplier_concentration", "vendor_risk_boundary"],
"review_focus": "Можно давать concentration proxy, но нельзя выдавать vendor-risk как подтвержденный due diligence."
},
{
"step_id": "008_vat_2020",
"question": "Что с НДС за 2020 год по Альтернативе Плюс: какая позиция видна, на чем она основана и чего не хватает для налогового вывода?",
"semantic_tags": ["business_overview", "vat", "explicit_period", "tax_boundary"],
"review_focus": "VAT-период должен быть 2020, без materialization gap и без выдуманного налогового заключения."
},
{
"step_id": "009_vat_all_time_no_carryover",
"question": "Теперь за все доступное время дай обзор компании в целом, но не тащи НДС за 2020 как подтвержденную общую налоговую позицию.",
"semantic_tags": ["business_overview", "vat", "all_time_followup", "stale_period_guard"],
"review_focus": "Должен сброситься явный налоговый срез 2020."
},
{
"step_id": "010_debt_as_of_2020",
"question": "Какая дебиторка и кредиторка у Альтернативы Плюс на 2020-12-31, и где самые крупные открытые расчеты?",
"semantic_tags": ["business_overview", "debt_position", "explicit_as_of_date", "open_settlements"],
"review_focus": "Должен быть as-of-date debt snapshot, а не all-time долг."
},
{
"step_id": "011_overdue_boundary",
"question": "Это можно считать просрочкой и плохим качеством долга или пока только открытыми расчетами? Объясни аккуратно.",
"semantic_tags": ["business_overview", "debt_due_date_boundary", "proof_boundary"],
"review_focus": "Нельзя называть просрочкой без сроков оплаты/due dates."
},
{
"step_id": "012_debt_all_time_no_carryover",
"question": "Теперь снова за все время по компании: дай общий бизнес-обзор, но не тащи долговой срез на 2020-12-31 как текущую или общую долговую позицию.",
"semantic_tags": ["business_overview", "all_time_followup", "stale_debt_snapshot_guard"],
"review_focus": "Должен не протечь snapshot 2020-12-31."
},
{
"step_id": "013_inventory_date",
"question": "Покажи складской срез Альтернативы Плюс на 2026-04-16: что есть в остатках, какие самые заметные позиции, и что это говорит о бизнесе.",
"semantic_tags": ["business_overview", "inventory_position", "explicit_date", "inventory_boundary"],
"review_focus": "Нужен складской факт на дату без превращения его в полное здоровье бизнеса."
},
{
"step_id": "014_inventory_reserve_boundary",
"question": "Можно ли из этого сказать, что склад ликвидный или что надо создавать резервы/списывать неликвид? Если нет, что именно подтверждено и чего не хватает?",
"semantic_tags": ["business_overview", "inventory_reserve_boundary", "missing_proof_families"],
"review_focus": "Нельзя выдавать reserve/liquidation evidence без подтвержденных маршрутов."
},
{
"step_id": "015_inventory_all_time_no_carryover",
"question": "Теперь общий обзор Альтернативы Плюс за все время, но не тащи складской остаток на 2026-04-16 как общий all-time склад.",
"semantic_tags": ["business_overview", "all_time_followup", "stale_inventory_snapshot_guard"],
"review_focus": "Проверить сброс explicit inventory date."
},
{
"step_id": "016_contract_counterparty_profile",
"question": "Сколько реально активных контрагентов и договоров видно по Альтернативе Плюс, какие роли у контрагентов, и какие договоры используются чаще всего?",
"semantic_tags": ["business_overview", "counterparty_population", "contract_usage_profile"],
"review_focus": "Должен быть профиль, а не generic metadata ответ."
},
{
"step_id": "017_document_activity_profile",
"question": "Какой профиль документов и разделов учета виден по компании: продажи, закупки, банк, склад, НДС? Где активность плотнее всего?",
"semantic_tags": ["business_overview", "document_activity_profile", "account_section_profile"],
"review_focus": "Проверить, что ответ не превращается в технический список route/debug."
},
{
"step_id": "018_business_audit_synthesis",
"question": "Собери это как нормальный бизнес-аудит: сильные стороны, риски, что уже можно сказать уверенно, что только proxy, и что директору проверить руками.",
"semantic_tags": ["business_overview", "analyst_synthesis", "human_answer_quality"],
"review_focus": "Нужен взрослый аналитический ответ, а не короткий высер или debug."
},
{
"step_id": "019_pivot_find_svk",
"question": "Теперь резко переключаемся: найди в 1С контрагента СВК.",
"semantic_tags": ["entity_resolution", "counterparty_pivot", "stale_scope_guard"],
"review_focus": "Должен смениться focus с организации на контрагента, без залипания Альтернативы как контрагента."
},
{
"step_id": "020_svk_incoming_2020",
"question": "Сколько получили по нему за 2020 год?",
"semantic_tags": ["value_flow", "incoming_value_flow", "followup_anchor", "explicit_period"],
"review_focus": "Scope: выбранный СВК как контрагент, период 2020."
},
{
"step_id": "021_svk_outgoing_2020",
"question": "А теперь сколько заплатили?",
"semantic_tags": ["value_flow", "outgoing_value_flow", "followup_reuse", "date_carryover"],
"review_focus": "Проверить payout switch и carryover периода/контрагента."
},
{
"step_id": "022_svk_net",
"question": "А какое нетто по СВК: сколько получили минус сколько заплатили?",
"semantic_tags": ["value_flow_comparison", "net_value_flow", "followup_reuse"],
"review_focus": "Нетто должно быть по СВК, не по организации в целом."
},
{
"step_id": "023_svk_documents",
"question": "А по документам СВК что видно?",
"semantic_tags": ["document_evidence", "counterparty_followup", "document_pivot"],
"review_focus": "Переход value-flow -> documents не должен терять selected counterparty."
},
{
"step_id": "024_svk_movements",
"question": "А по движениям?",
"semantic_tags": ["movement_evidence", "document_pivot", "followup_reuse"],
"review_focus": "Движения должны относиться к текущему СВК/document context."
},
{
"step_id": "025_svk_all_time",
"question": "Теперь по СВК за все доступное время: деньги, документы, движения, и короткий вывод.",
"semantic_tags": ["counterparty_all_time", "stale_period_guard", "grounded_summary"],
"review_focus": "Период 2020 должен сброситься, контрагент СВК сохраниться."
},
{
"step_id": "026_scope_sanity",
"question": "Проверь себя: ты сейчас не смешал Группа СВК как контрагента с ООО Альтернатива Плюс как организацией? Объясни контур человечески.",
"semantic_tags": ["scope_integrity", "human_answer_quality", "stale_scope_guard"],
"review_focus": "Нужна ясная человеческая проверка scope без технического мусора."
},
{
"step_id": "027_zhukovka_docs",
"question": "СВК закончили. Новая тема: покажи документы по Жуковке 51.",
"semantic_tags": ["post_f_canary", "document_evidence", "topic_pivot"],
"review_focus": "Переход на Жуковку не должен тащить СВК."
},
{
"step_id": "028_zhukovka_payments",
"question": "Хорошо, а теперь платежи по нему тоже покажи.",
"semantic_tags": ["post_f_canary", "value_flow", "pronoun_followup"],
"review_focus": "Местоимение должно ссылаться на Жуковку 51."
},
{
"step_id": "029_zhukovka_contracts",
"question": "А по нему договоры?",
"semantic_tags": ["post_f_canary", "contract_evidence", "pronoun_followup"],
"review_focus": "Контекст Жуковки должен сохраниться."
},
{
"step_id": "030_zhukovka_documents_again",
"question": "А по нему документы?",
"semantic_tags": ["post_f_canary", "document_evidence", "pronoun_followup"],
"review_focus": "Повторный pivot documents не должен ломать focus."
},
{
"step_id": "031_zhukovka_year_switch",
"question": "А за 2021?",
"semantic_tags": ["post_f_canary", "year_switch", "followup_reuse"],
"review_focus": "Период должен смениться на 2021, объект Жуковка сохраниться."
},
{
"step_id": "032_open_scope_incoming_2020",
"question": "С Жуковкой закончили. Теперь нужна другая задача: быстрый денежный срез по одной организации. Сколько вообще входящих денег было за 2020 год?",
"semantic_tags": ["phase83_canary", "open_scope_total", "organization_clarification"],
"review_focus": "Если организация неоднозначна, корректное уточнение не баг."
},
{
"step_id": "033_choose_altplus",
"question": "По ООО Альтернатива Плюс.",
"semantic_tags": ["phase83_canary", "organization_scope", "clarification_answer"],
"review_focus": "Должен принять уточненную организацию и ответить по 2020."
},
{
"step_id": "034_altplus_all_time_value_flow",
"question": "Понял, тогда за все время.",
"semantic_tags": ["phase83_canary", "all_time_followup", "organization_scope"],
"review_focus": "Организация сохраняется, период сбрасывается."
},
{
"step_id": "035_altplus_in_out_2020",
"question": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?",
"semantic_tags": ["phase83_canary", "value_flow_comparison", "explicit_period"],
"review_focus": "Сравнение входящих/исходящих по организации, не по контрагенту."
},
{
"step_id": "036_altplus_in_out_2021",
"question": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?",
"semantic_tags": ["phase83_canary", "year_switch", "value_flow_comparison"],
"review_focus": "Период меняется на 2021."
},
{
"step_id": "037_altplus_top_customer_2020",
"question": "И кто больше всего принес денег этой организации в 2020 году?",
"semantic_tags": ["phase83_canary", "value_flow_ranking", "top_customer"],
"review_focus": "Ranking по клиентам организации за 2020."
},
{
"step_id": "038_altplus_top_customer_2021",
"question": "А в 2021 году?",
"semantic_tags": ["phase83_canary", "year_switch", "value_flow_ranking"],
"review_focus": "Контекст top customer сохраняется, год меняется."
},
{
"step_id": "039_metadata_counterparty_catalogs",
"question": "Какие справочники 1С есть по контрагентам?",
"semantic_tags": ["phase83_canary", "catalog_metadata_surface"],
"review_focus": "Metadata lane должен ответить полезно, не ломая бизнес-контекст."
},
{
"step_id": "040_metadata_drilldown_neutral",
"question": "давай дальше",
"semantic_tags": ["phase83_canary", "neutral_followup", "catalog_drilldown"],
"review_focus": "Нейтральный follow-up должен продолжить metadata drilldown, а не предыдущий деньги/Жуковку."
},
{
"step_id": "041_metadata_document_fields",
"question": "Какие поля и связи стоит смотреть у документов реализации и поступления, если я хочу потом идти в продажи, закупки, оплату и движения?",
"semantic_tags": ["metadata_surface", "dynamic_schema_traversal", "route_planning"],
"review_focus": "Проверить полезность маршрутизации без жесткой скрепки."
},
{
"step_id": "042_profit_route_meta",
"question": "Если я спрашиваю прибыль компании, какой маршрут ты должен выбрать и что обязан честно ограничить в ответе?",
"semantic_tags": ["meta_route_reasoning", "profit_boundary", "human_answer_quality"],
"review_focus": "Можно объяснить человечески, но без raw route ids/debug."
},
{
"step_id": "043_off_domain_guard",
"question": "А чем капибара отличается от утки?",
"semantic_tags": ["off_domain_living_chat", "stale_replay_forbidden"],
"review_focus": "Не должен тащить бухгалтерский context в обычный вопрос."
},
{
"step_id": "044_vat_feb_2017",
"question": "Возвращаемся к 1С: прикинь, какой НДС нам надо заплатить за февраль 2017.",
"semantic_tags": ["vat_canary", "explicit_period", "post_f_manual_failure"],
"review_focus": "Ключевой VAT canary: период февраль 2017 не должен схлопнуться в 2000-01-01/materialization gap."
},
{
"step_id": "045_vat_dec_2020",
"question": "А сколько НДС в налоговую за декабрь 2020?",
"semantic_tags": ["vat_canary", "explicit_period", "period_switch"],
"review_focus": "Период должен переключиться на декабрь 2020."
},
{
"step_id": "046_vat_metadata",
"question": "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?",
"semantic_tags": ["post_f_canary", "vat_metadata", "dynamic_schema_traversal"],
"review_focus": "Metadata answer should be useful and not block VAT facts incorrectly."
},
{
"step_id": "047_altplus_movements_2020",
"question": "Хорошо, тогда покажи движения по ООО Альтернатива Плюс за 2020 год.",
"semantic_tags": ["post_f_canary", "organization_scope", "movement_evidence", "explicit_period"],
"review_focus": "Organization movements, not stale VAT metadata."
},
{
"step_id": "048_altplus_documents_after_movements",
"question": "А теперь по документам?",
"semantic_tags": ["post_f_canary", "document_pivot", "organization_scope"],
"review_focus": "Pivot movements -> documents keeps org and period."
},
{
"step_id": "049_altplus_documents_2021",
"question": "А теперь за 2021 год?",
"semantic_tags": ["post_f_canary", "year_switch", "document_evidence"],
"review_focus": "Year switch on current document lane."
},
{
"step_id": "050_altplus_documents_all_time",
"question": "А теперь за все время?",
"semantic_tags": ["post_f_canary", "all_time_followup", "document_evidence"],
"review_focus": "Period reset without losing org/document lane."
},
{
"step_id": "051_inventory_colloquial_root",
"question": "кайф, что там на складе по остаткам?",
"semantic_tags": ["post_f_manual_failure", "inventory_root", "colloquial_wording"],
"review_focus": "Если нужен scope, корректное уточнение нормально; не должен выдумывать."
},
{
"step_id": "052_inventory_scope_alt",
"question": "АЛЬТЕРНАТИВА",
"semantic_tags": ["post_f_manual_failure", "organization_clarification", "inventory_scope"],
"review_focus": "Должен распознать Альтернативу как организацию/контур."
},
{
"step_id": "053_inventory_period_march_2016",
"question": "март 2016",
"semantic_tags": ["post_f_manual_failure", "period_clarification", "inventory_position"],
"review_focus": "Период уточняется colloquial короткой фразой."
},
{
"step_id": "054_selected_workstation_source",
"question": "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
"semantic_tags": ["selected_object_continuity", "inventory_item", "document_evidence"],
"review_focus": "UI-style selected object wording should anchor exact item."
},
{
"step_id": "055_selected_workstation_vat",
"question": "НДС можешь прикинуть на дату покупки рабочей станции?",
"semantic_tags": ["selected_object_continuity", "vat", "purchase_date_inference"],
"review_focus": "Должен связать selected item/purchase date carefully and mark inference if exact proof missing."
},
{
"step_id": "056_selected_item_profitability",
"question": "По выбранному объекту \"Четки Пост (84*117)\": сколько заработали на продаже, какие закупочные и продажные документы это подтверждают?",
"semantic_tags": ["selected_object_continuity", "inventory_item_profitability", "profit_boundary"],
"review_focus": "Selected-item profitability should avoid company-level profit confusion."
},
{
"step_id": "057_top_customer_all_time_legacy",
"question": "Кто у нас самый доходный клиент за все время?",
"semantic_tags": ["legacy_canary", "value_flow_ranking", "all_time_followup"],
"review_focus": "Old deterministic route must still answer or clarify, not regress."
},
{
"step_id": "058_chepurnov_docs",
"question": "По Чепурнову покажи все доки.",
"semantic_tags": ["legacy_canary", "counterparty_lookup", "document_evidence"],
"review_focus": "Counterparty/entity lookup and documents."
},
{
"step_id": "059_chepurnov_goods",
"question": "Что нам отгружал Чепурнов: какой товар или услугу?",
"semantic_tags": ["legacy_canary", "document_line_items", "goods_services"],
"review_focus": "Должен перейти от документов к товарным/услужным строкам."
},
{
"step_id": "060_current_inventory",
"question": "А сейчас у нас есть что на складе?",
"semantic_tags": ["legacy_canary", "inventory_current", "current_date_honesty"],
"review_focus": "Проверить temporal honesty: текущая дата анализа 2026-05-05, но данные 1С могут иметь свой последний срез."
},
{
"step_id": "061_final_manual_review_summary",
"question": "Финально собери executive summary по всему диалогу: где ответы были подтвержденными, где proxy, где не хватило доказательств, и какие места мне руками смотреть особенно внимательно.",
"semantic_tags": ["manual_review_summary", "context_integrity", "analyst_synthesis"],
"review_focus": "Финальный ответ должен удержать контекст всего прогона и честно выделить рискованные зоны."
}
]
}