Сохранить route-candidate AGENT loop и валидированные автопрогоны
This commit is contained in:
+190
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase90_route_candidate_handoff_open_world",
|
||||
"domain": "address_phase90_route_candidate_handoff",
|
||||
"title": "Phase 90 open-world route candidate handoff replay",
|
||||
"description": "Focused semantic replay for Open-World Route Candidate Promotion. The scenario checks that unfamiliar-but-meaningful 1C asks produce a structured internal route candidate, distinguish missing user scope from executable reviewed routes, preserve catalog alignment, and keep unreviewed proof families honest without leaking route/debug mechanics to the user.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_open_ranking_needs_organization",
|
||||
"title": "Open ranked money-flow ask needs organization scope before execution",
|
||||
"question": "какой контрагент принес больше всего денег за 2020 год?",
|
||||
"allowed_reply_types": [
|
||||
"clarification_required",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_user_scope",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"expected_route_candidate_missing_axes": [
|
||||
"organization"
|
||||
],
|
||||
"required_answer_patterns_any": [
|
||||
"(?i)организац|компан|контур"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"needs_user_scope",
|
||||
"value_flow_ranking",
|
||||
"open_organization_scope"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_company_scope_promotes_ranking_execution",
|
||||
"title": "Natural company clarification promotes the ranking candidate to reviewed execution",
|
||||
"question": "ООО Альтернатива Плюс",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)контрагент|клиент|покупател",
|
||||
"(?i)деньг|поступ|выруч|руб",
|
||||
"(?i)подтвержд|проверен|найден"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_",
|
||||
"(?i)прибыль.*точно"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"ready_for_reviewed_execution",
|
||||
"value_flow_ranking",
|
||||
"clarification_recovery"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_counterparty_lifecycle_not_polluted_by_company_scope",
|
||||
"title": "Counterparty lifecycle pivot has its own executable route candidate",
|
||||
"question": "а теперь сколько лет мы работаем с Группа СВК?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "lifecycle",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)СВК|Группа СВК",
|
||||
"(?i)активност|1С|подтвержд|проверен",
|
||||
"(?i)лет|год|месяц",
|
||||
"(?i)юридическ|регистрац|не подтвержд|не доказ"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)Альтернатива Плюс.*контрагент",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_documents",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"counterparty_lifecycle",
|
||||
"stale_scope_guard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_vat_movements_are_metadata_scoped_not_stale_counterparty",
|
||||
"title": "VAT movement ask uses metadata-scoped movement candidate instead of stale counterparty focus",
|
||||
"question": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"checked_sources_only"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "movement_evidence",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)НДС",
|
||||
"(?i)2020",
|
||||
"(?i)Альтернатива Плюс|организац",
|
||||
"(?i)движен|строк|проверен|подтвержд|источник"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)Группа СВК.*как контрагент",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"movement_evidence",
|
||||
"metadata_scope",
|
||||
"vat",
|
||||
"stale_scope_guard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_inventory_reserve_boundary_stays_honest",
|
||||
"title": "Unreviewed inventory reserve proof family remains bounded and does not overclaim",
|
||||
"question": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer",
|
||||
"out_of_scope"
|
||||
],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)резерв|неликвид|склад|товар",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|нет точн",
|
||||
"(?i)провер|нужн|треб"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)резерв.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"no_overclaim",
|
||||
"inventory_reserve_boundary",
|
||||
"unreviewed_proof_family"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+190
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase91_route_candidate_driven_enablement_loop",
|
||||
"domain": "address_phase91_route_candidate_driven_enablement_loop",
|
||||
"title": "Phase 91 route-candidate-driven enablement loop canary",
|
||||
"description": "Focused semantic replay for the route-candidate-driven enablement loop. The scenario keeps the phase90 user-facing route-candidate handoff behavior as a canary while the development tooling starts grouping route candidates into repair targets and lead-coder handoff artifacts.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_open_ranking_needs_organization",
|
||||
"title": "Open ranked money-flow ask needs organization scope before execution",
|
||||
"question": "какой контрагент принес больше всего денег за 2020 год?",
|
||||
"allowed_reply_types": [
|
||||
"clarification_required",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_user_scope",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"expected_route_candidate_missing_axes": [
|
||||
"organization"
|
||||
],
|
||||
"required_answer_patterns_any": [
|
||||
"(?i)организац|компан|контур"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"needs_user_scope",
|
||||
"value_flow_ranking",
|
||||
"open_organization_scope"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_company_scope_promotes_ranking_execution",
|
||||
"title": "Natural company clarification promotes the ranking candidate to reviewed execution",
|
||||
"question": "ООО Альтернатива Плюс",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)контрагент|клиент|покупател",
|
||||
"(?i)деньг|поступ|выруч|руб",
|
||||
"(?i)подтвержд|проверен|найден"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_",
|
||||
"(?i)прибыль.*точно"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"ready_for_reviewed_execution",
|
||||
"value_flow_ranking",
|
||||
"clarification_recovery"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_counterparty_lifecycle_stale_scope_reset",
|
||||
"title": "Counterparty lifecycle pivot does not inherit the previous company scope",
|
||||
"question": "а теперь сколько лет мы работаем с Группа СВК?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "lifecycle",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)СВК|Группа СВК",
|
||||
"(?i)активност|1С|подтвержд|проверен",
|
||||
"(?i)лет|год|месяц",
|
||||
"(?i)юридическ|регистрац|не подтвержд|не доказ"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)Альтернатива Плюс.*контрагент",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_documents",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"counterparty_lifecycle",
|
||||
"stale_scope_guard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_vat_movement_candidate_keeps_company_scope",
|
||||
"title": "VAT movement ask keeps metadata scope and company scope together",
|
||||
"question": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"checked_sources_only"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "movement_evidence",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)НДС",
|
||||
"(?i)2020",
|
||||
"(?i)Альтернатива Плюс|организац",
|
||||
"(?i)движен|строк|проверен|подтвержд|источник"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)Группа СВК.*как контрагент",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"movement_evidence",
|
||||
"metadata_scope",
|
||||
"vat",
|
||||
"stale_scope_guard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_inventory_reserve_boundary_no_overclaim",
|
||||
"title": "Reserve proof request stays bounded instead of pretending enablement is proof",
|
||||
"question": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer",
|
||||
"out_of_scope"
|
||||
],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)резерв|неликвид|склад|товар",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|нет точн",
|
||||
"(?i)провер|нужн|треб"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)резерв.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"no_overclaim",
|
||||
"inventory_reserve_boundary",
|
||||
"unreviewed_proof_family"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase92_proof_family_enablement_candidates",
|
||||
"domain": "address_phase92_proof_family_enablement_candidates",
|
||||
"title": "Phase 92 proof-family enablement candidates",
|
||||
"description": "Focused semantic replay for route-candidate autonomy: exact proof-family asks must stay user-safe while route_candidate marks missing reviewed proof routes as needs_route_enablement.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_open_ranking_still_needs_company",
|
||||
"title": "Open ranked money-flow ask still needs organization scope",
|
||||
"question": "какой контрагент принес больше всего денег за 2020 год?",
|
||||
"allowed_reply_types": [
|
||||
"clarification_required",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_user_scope",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"expected_route_candidate_missing_axes": [
|
||||
"organization"
|
||||
],
|
||||
"required_answer_patterns_any": [
|
||||
"(?i)организац|компан|контур"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"needs_user_scope",
|
||||
"value_flow_ranking"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_company_clarification_keeps_reviewed_execution",
|
||||
"title": "Company clarification keeps the reviewed value-flow route executable",
|
||||
"question": "ООО Альтернатива Плюс",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)контрагент|клиент|покупател",
|
||||
"(?i)деньг|поступ|выруч|руб",
|
||||
"(?i)подтвержд|проверен|найден"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"route_candidate_handoff",
|
||||
"ready_for_reviewed_execution",
|
||||
"value_flow_ranking"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_profit_margin_needs_reviewed_pnl_route",
|
||||
"title": "Exact profit/margin ask becomes a proof-family enablement candidate",
|
||||
"question": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)прибыл|марж|рентаб",
|
||||
"(?i)не прибыль|не точн|нельзя точно|не подтвержд|не доказ",
|
||||
"(?i)финансов|p&l|расход|себестоим|закрыт"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)чистая прибыль.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"profit_margin_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_debt_due_date_needs_payment_terms_route",
|
||||
"title": "Exact overdue/debt-aging ask becomes a proof-family enablement candidate",
|
||||
"question": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)дебитор|долг|просроч|срок",
|
||||
"(?i)не due-date|не точн|нельзя точно|не подтвержд|не доказ|нет срок",
|
||||
"(?i)договор|срок оплат|расчет|провер"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)просроч.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"debt_due_date_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_vendor_risk_needs_procurement_quality_route",
|
||||
"title": "Exact vendor-risk ask becomes a proof-family enablement candidate",
|
||||
"question": "по ООО Альтернатива Плюс за 2020 есть ли риск, что мы зависим от одного поставщика?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)поставщик|закуп|исходящ",
|
||||
"(?i)риск|зависим|концентрац",
|
||||
"(?i)proxy|не полный|не точн|нельзя точно|не подтвержд|не доказ"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)vendor.*risk.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"vendor_risk_procurement_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_inventory_reserve_needs_quality_route",
|
||||
"title": "Exact reserve/liquidation ask becomes a proof-family enablement candidate",
|
||||
"question": "можно ли по ООО Альтернатива Плюс точно подтвердить резерв под неликвиды на складе?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)резерв|неликвид|склад|товар",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|нет точн",
|
||||
"(?i)списан|ликвидац|учетн|провер"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)резерв.*подтвержден",
|
||||
"(?i)runtime_",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"inventory_reserve_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase93_accounting_profit_margin_reviewed_route",
|
||||
"domain": "address_phase93_accounting_profit_margin_reviewed_route",
|
||||
"title": "Phase 93 accounting profit-margin reviewed route",
|
||||
"description": "Focused semantic replay for promoting accounting_profit_margin from needs_route_enablement to a reviewed 90/91/99 accounting financial-result route while preserving neighbouring proof-family boundaries.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_profit_margin_uses_accounting_result",
|
||||
"title": "Exact profit and margin ask uses reviewed 90/91/99 evidence",
|
||||
"question": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)90/91/99|90\\.01|99",
|
||||
"(?i)учетн|финрезульт|прибыл|убыт",
|
||||
"(?i)марж|рентаб",
|
||||
"(?i)2020",
|
||||
"(?i)1С|проверенн|найденн|подтвержд"
|
||||
],
|
||||
"required_answer_patterns_any": [
|
||||
"7[\\s\\u00a0]*136[\\s\\u00a0]*815",
|
||||
"(?i)минус|убыт"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)только bounded operating-flow/trading-margin proxy",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"profit_margin_boundary",
|
||||
"accounting_profit_margin",
|
||||
"ready_for_reviewed_execution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_short_followup_keeps_accounting_context",
|
||||
"title": "Short follow-up keeps company, year, and accounting result context",
|
||||
"question": "а это прибыль или убыток, коротко?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)убыт|минус",
|
||||
"(?i)2020",
|
||||
"(?i)90/91/99|90\\.01|99|учетн"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните организац",
|
||||
"(?i)какую компанию",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"context_carryover",
|
||||
"profit_margin_boundary",
|
||||
"accounting_profit_margin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_debt_due_date_boundary_still_needs_route",
|
||||
"title": "Debt due-date boundary stays an enablement candidate",
|
||||
"question": "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)дебитор|долг|просроч|срок",
|
||||
"(?i)не due-date|не точн|нельзя точно|не подтвержд|не доказ|нет срок",
|
||||
"(?i)договор|срок оплат|расчет|провер"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)просроч.*подтвержден",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"debt_due_date_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_vat_continuity_still_answers",
|
||||
"title": "VAT continuity still answers from the reviewed tax route",
|
||||
"question": "тогда НДС за 2020 по ООО Альтернатива Плюс какой?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)НДС|VAT|налог",
|
||||
"(?i)2020",
|
||||
"(?i)продаж|покуп|к уплат|к возмещ|зачет",
|
||||
"(?i)подтвержд|проверенн|1С"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"vat_continuity",
|
||||
"ready_for_reviewed_execution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_value_flow_ranking_context_still_works",
|
||||
"title": "Value-flow ranking still uses carried organization context",
|
||||
"question": "а какой контрагент принес больше всего денег за 2020?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)контрагент|клиент|покупател",
|
||||
"(?i)деньг|поступ|выруч|руб",
|
||||
"(?i)подтвержд|проверенн|найден"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните организац",
|
||||
"(?i)какую компанию",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"value_flow_ranking",
|
||||
"context_carryover",
|
||||
"ready_for_reviewed_execution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_inventory_reserve_boundary_still_needs_route",
|
||||
"title": "Inventory reserve boundary remains honest and bounded",
|
||||
"question": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)резерв|неликвид|склад|товар",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|нет точн",
|
||||
"(?i)списан|ликвидац|учетн|провер"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"inventory_reserve_boundary",
|
||||
"missing_proof_families",
|
||||
"needs_route_enablement"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+254
@@ -0,0 +1,254 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase94_debt_due_date_aging_reviewed_route",
|
||||
"domain": "address_phase94_debt_due_date_aging_reviewed_route",
|
||||
"title": "Phase 94 debt due-date aging reviewed route",
|
||||
"description": "Focused semantic replay for promoting debt_due_date_aging_quality from proxy-only enablement to a reviewed payment-term/open-balance route while preserving profit, VAT, inventory, and vendor-risk boundaries.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_debt_due_date_checked_negative",
|
||||
"title": "Debt due-date ask uses reviewed payment-term evidence",
|
||||
"question": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)дебитор|долг|открыт.*расчет|остат",
|
||||
"(?i)2020|2020-12-31|конец 2020",
|
||||
"(?i)срок.*оплат|due[- ]?date|просроч",
|
||||
"(?i)не установлен|не подтвержд|не доказ|нет подтвержденной просроч",
|
||||
"(?i)1С|проверенн|найденн|подтвержд"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю.*просроч",
|
||||
"(?i)просроч.*подтвержден.*без.*срок",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"debt_due_date_boundary",
|
||||
"debt_due_date_aging_quality",
|
||||
"ready_for_reviewed_execution",
|
||||
"checked_negative"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_short_followup_preserves_due_date_boundary",
|
||||
"title": "Short follow-up keeps debt due-date context",
|
||||
"question": "то есть просрочку доказать нельзя, коротко почему?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)срок.*оплат|due[- ]?date|договор",
|
||||
"(?i)не установлен|не хватает|не подтвержд|не доказ",
|
||||
"(?i)просроч",
|
||||
"(?i)2020|2020-12-31|конец 2020"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните организац",
|
||||
"(?i)какую компанию",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"context_carryover",
|
||||
"debt_due_date_boundary",
|
||||
"checked_negative"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_profit_margin_canary_still_reviewed",
|
||||
"title": "Profit/margin canary still uses accounting result route",
|
||||
"question": "а чистая прибыль и маржа за 2020 по этой же компании какие?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)90/91/99|90\\.01|99",
|
||||
"(?i)учетн|финрезульт|прибыл|убыт",
|
||||
"(?i)марж|рентаб",
|
||||
"(?i)2020"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)только bounded operating-flow/trading-margin proxy",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"profit_margin_boundary",
|
||||
"accounting_profit_margin",
|
||||
"canary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_vat_canary_still_answers",
|
||||
"title": "VAT continuity canary still answers from reviewed tax route",
|
||||
"question": "НДС за 2020 по ООО Альтернатива Плюс какой?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)НДС|VAT|налог",
|
||||
"(?i)2020",
|
||||
"(?i)продаж|покуп|к уплат|к возмещ|зачет",
|
||||
"(?i)подтвержд|проверенн|1С"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"vat_continuity",
|
||||
"canary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_value_flow_ranking_context_still_works",
|
||||
"title": "Value-flow ranking still uses carried organization context",
|
||||
"question": "а кто принес больше всего денег за 2020?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "value_flow_ranking",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "ready_for_reviewed_execution",
|
||||
"expected_route_candidate_executable_now": true,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)контрагент|клиент|покупател",
|
||||
"(?i)деньг|поступ|выруч|руб",
|
||||
"(?i)подтвержд|проверенн|найден"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните организац",
|
||||
"(?i)какую компанию",
|
||||
"(?i)route_candidate",
|
||||
"(?i)query_movements",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"value_flow_ranking",
|
||||
"context_carryover",
|
||||
"canary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_inventory_reserve_boundary_still_needs_route",
|
||||
"title": "Inventory reserve boundary remains honest and bounded",
|
||||
"question": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)резерв|неликвид|склад|товар",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|нет точн",
|
||||
"(?i)списан|ликвидац|учетн|провер"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"inventory_reserve_boundary",
|
||||
"missing_proof_families",
|
||||
"canary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_vendor_risk_boundary_still_needs_route",
|
||||
"title": "Vendor-risk boundary stays bounded",
|
||||
"question": "а зависимость от одного поставщика за 2020 можно точно оценить?",
|
||||
"allowed_reply_types": [
|
||||
"factual",
|
||||
"factual_with_explanation",
|
||||
"partial_coverage",
|
||||
"no_grounded_answer"
|
||||
],
|
||||
"expected_catalog_alignment_status": "selected_matches_top",
|
||||
"expected_catalog_chain_top_match": "business_overview",
|
||||
"expected_catalog_selected_matches_top": true,
|
||||
"expected_route_candidate_status": "needs_route_enablement",
|
||||
"expected_route_candidate_executable_now": false,
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)поставщик|vendor|supplier|закуп",
|
||||
"(?i)не подтвержд|не доказ|нельзя точно|proxy|сигнал",
|
||||
"(?i)концентрац|зависим"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)точно подтверждаю",
|
||||
"(?i)route_candidate",
|
||||
"(?i)primitive",
|
||||
"(?i)planner_",
|
||||
"(?i)catalog_"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": [
|
||||
"business_overview",
|
||||
"vendor_risk_procurement_boundary",
|
||||
"missing_proof_families",
|
||||
"canary"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user