{ "schema_version": "domain_scenario_pack_v1", "pack_id": "active_phase106_profit_cashflow_margin_next_step_20260615", "domain": "address_phase106_profit_cashflow_margin_next_step", "runtime_domain": "business_overview_profit_cashflow_margin_boundary", "title": "Profit, cashflow, margin and next-check boundary", "description": "Active slice for the autonomous agent loop: colloquial earnings wording must be answered as checked cashflow/accounting evidence with honest profit boundaries, then pivot safely into товарная маржа and concrete next checks.", "status": "active", "source_of_truth_policy": { "purpose": "single mutable domain source for the current orchestration target", "switching_rule": "when the project switches to another domain, replace this file instead of rewriting the stable agent canon", "stable_layers": [ "AGENTS.md", ".codex/skills/domain-case-loop", ".codex/agents/domain_analyst.toml", ".codex/agents/orchestrator.toml" ], "mutable_layer": [ "docs/orchestration/active_domain_contract.json" ] }, "analysis_context": { "as_of_date": "2026-06-15", "source": "phase106_after_phase104_role_tail_autorun_persistence", "known_previous_anchors": [ "hm_business_overview_cashflow_limits_20260602_p4", "hm_business_profile_evaluation_limits_p3", "agent_margin_profitability_reliability_20260615_p12_detector_scope", "phase104_generic_role_tail_anchor_hygiene_20260615_p04_loop" ] }, "target_score": 88, "bindings": { "main_organization": "ООО Альтернатива Плюс", "control_year": "2020" }, "issue_codes_under_test": [ "cashflow_misreported_as_clean_profit", "margin_domain_leak_accounting_route", "business_next_step_missing", "technical_garbage_in_answer" ], "detectors_under_test": [ "runtime_tokens_in_user_answer", "capability_ids_in_user_answer", "limited_answer_without_next_action", "margin_domain_leak_accounting_route", "margin_required_fields_missing", "margin_next_action_missing" ], "agent_audit_expectations": { "semantic_answer_review_first": true, "direct_answer_first": true, "business_utility_required": true, "cashflow_not_clean_profit": true, "margin_domain_purity_required": true, "next_action_required_when_limited": true, "technical_garbage_forbidden": true, "do_not_accept_if": [ "colloquial earnings wording is answered as confirmed clean profit without evidence", "cashflow/net operating flow is silently presented as accounting profit or margin", "margin follow-up leaks into bank payments, fixed assets, amortization, or generic accounting route", "next-check answer is generic advice without concrete 1C evidence contours", "final answer leaks route ids, capability ids, runtime enums, or debug payload" ] }, "scenarios": [ { "scenario_id": "profit_cashflow_margin_next_step_boundary", "title": "Colloquial earnings, clean-profit boundary, margin pivot, and next checks", "description": "Validate that the assistant handles colloquial earnings wording, refuses to overclaim clean profit, pivots into товарная маржа without wrong-domain leakage, and proposes concrete next 1C checks.", "steps": [ { "step_id": "step_01_choose_company_scope", "title": "Bare organization choice binds active company scope", "node_role": "root", "question": "{{bindings.main_organization}}", "allowed_reply_types": [ "factual_with_explanation", "partial_coverage" ], "semantic_tags": [ "bare_org_scope", "company_scope" ], "required_answer_shape": "direct_answer_first", "required_answer_patterns_all": [ "(?i)фиксир|рабоч.*организац|контур", "(?i)альтернатива" ], "forbidden_answer_patterns": [ "(?i)не могу определить", "(?i)route_candidate|primitive|planner_|catalog_|snapshot_items|answer_object" ] }, { "step_id": "step_02_colloquial_earned_money_2020", "title": "Colloquial earned-money wording stays bounded", "question": "скока денег альтернатива заработала за 20 год?", "depends_on": [ "step_01_choose_company_scope" ], "semantic_tags": [ "business_overview", "colloquial_cashflow", "cashflow_not_profit" ], "required_answer_shape": "direct_answer_first", "required_answer_patterns_all": [ "(?i)2020|20\\s*год", "(?i)поступ|входящ|денег|заработ", "(?i)не.*чист.*прибыл|не.*прибыл|прибыл.*не подтвержд|это.*не.*прибыл" ], "forbidden_answer_patterns": [ "(?i)^\\s*Коротко:", "(?i)это\\s+чистая\\s+прибыль", "(?i)точно.*прибыл", "(?i)route_candidate|primitive|planner_|catalog_|snapshot_items|answer_object|capability_id|mcp_discovery" ], "criticality": "critical" }, { "step_id": "step_03_clean_profit_followup_boundary", "title": "Clean-profit follow-up must not convert cashflow into profit", "question": "а это чистая прибыль?", "depends_on": [ "step_02_colloquial_earned_money_2020" ], "semantic_tags": [ "profitability_boundary", "cashflow_not_profit", "followup_boundary" ], "required_answer_shape": "direct_answer_first", "required_answer_patterns_all": [ "(?i)не.*чист.*прибыл|не.*является.*прибыл|не подтвержд.*прибыл|это.*не.*прибыл", "(?i)денежн|поступ|нетто|оборот|cash|себестоим|расход|закрыва" ], "forbidden_answer_patterns": [ "(?i)^\\s*Коротко:", "(?i)^\\s*да[,\\s]+это.*прибыл", "(?i)точно.*чист.*прибыл", "(?i)route_candidate|primitive|planner_|catalog_|snapshot_items|answer_object|capability_id|mcp_discovery" ], "criticality": "critical" }, { "step_id": "step_04_margin_pivot_keeps_inventory_domain", "title": "Margin pivot uses inventory margin contour, not payments or fixed assets", "question": "тогда какую прибыль или маржу можно проверить по товарам за 2020?", "depends_on": [ "step_03_clean_profit_followup_boundary" ], "expected_intents": [ "inventory_margin_ranking_for_nomenclature" ], "expected_capability": "inventory_inventory_margin_ranking_for_nomenclature", "expected_recipe": "address_inventory_margin_ranking_for_nomenclature_v1", "semantic_tags": [ "margin_profitability", "inventory", "wrong_domain_trap", "cashflow_to_margin_pivot" ], "required_answer_shape": "direct_answer_first", "required_answer_patterns_any": [ "(?i)марж|валов|выруч|себестоим|номенклатур|товар|не могу подтвердить|не хватает" ], "forbidden_answer_patterns": [ "(?i)амортизац|основн(ые|ых)? средств|объект ОС|банк|оплат[аы]|payment_document|settlement", "(?i)route_candidate|primitive|planner_|catalog_|snapshot_items|answer_object|capability_id|mcp_discovery" ], "criticality": "critical" }, { "step_id": "step_05_next_checks_are_concrete_1c_contours", "title": "Next checks must be concrete 1C evidence contours", "question": "что дальше проверить, чтобы понять здоровье бизнеса, без гаданий?", "depends_on": [ "step_04_margin_pivot_keeps_inventory_domain" ], "semantic_tags": [ "business_next_step", "evidence_plan", "no_generic_advice" ], "required_answer_shape": "direct_answer_first", "required_answer_patterns_all": [ "(?i)прибыл|марж|себестоим|финрезульт", "(?i)ндс|налог", "(?i)дебитор|кредитор|долг|расчет", "(?i)склад|остат|оборач|товар" ], "forbidden_answer_patterns": [ "(?i)^\\s*Коротко:", "(?i)просто.*посмотр|общ.*рекоменд|улучшить маркетинг|нанять|стратег", "(?i)route_candidate|primitive|planner_|catalog_|snapshot_items|answer_object|capability_id|mcp_discovery" ], "criticality": "important" } ] } ] }