From 33c757a4374ad7627959e2eaf8c2f7990a74ef70 Mon Sep 17 00:00:00 2001 From: dctouch Date: Thu, 23 Apr 2026 13:50:24 +0300 Subject: [PATCH] =?UTF-8?q?ARCH:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20replay-=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82?= =?UTF-8?q?=D0=B8=D0=B5=20full=20recovery=20=D0=B4=D0=BB=D1=8F=20metadata?= =?UTF-8?q?=20lane?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ase52_metadata_movement_full_recovery.json | 83 +++++++++++++++++++ ...tadata_movement_period_first_recovery.json | 83 +++++++++++++++++++ ...ase54_metadata_document_full_recovery.json | 78 +++++++++++++++++ 3 files changed, 244 insertions(+) create mode 100644 docs/orchestration/address_truth_harness_phase52_metadata_movement_full_recovery.json create mode 100644 docs/orchestration/address_truth_harness_phase53_metadata_movement_period_first_recovery.json create mode 100644 docs/orchestration/address_truth_harness_phase54_metadata_document_full_recovery.json diff --git a/docs/orchestration/address_truth_harness_phase52_metadata_movement_full_recovery.json b/docs/orchestration/address_truth_harness_phase52_metadata_movement_full_recovery.json new file mode 100644 index 0000000..d418388 --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase52_metadata_movement_full_recovery.json @@ -0,0 +1,83 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase52_metadata_movement_full_recovery", + "domain": "address_phase52_metadata_movement_full_recovery", + "title": "Phase 52 metadata movement full recovery to bounded retrieval", + "description": "Targeted AGENT replay for Big Block F where a metadata-born movement lane survives ambiguity resolution, accepts organization and period across follow-ups, and then proceeds into bounded movement retrieval without resetting the proof path.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_metadata_ambiguity_surface", + "title": "Metadata ambiguity is surfaced honestly for VAT", + "question": "какие объекты 1С есть по НДС?", + "allowed_reply_types": ["partial_coverage", "factual_with_explanation"], + "required_answer_patterns_all": [ + "(?i)metadata|метадан", + "(?i)ндс", + "(?i)документ|регистр" + ], + "forbidden_answer_patterns": [ + "(?i)получили", + "(?i)заплатили", + "(?i)нетто" + ], + "criticality": "critical", + "semantic_tags": ["metadata_surface", "mixed_ambiguity"] + }, + { + "step_id": "step_02_neutral_followup_requires_lane_choice", + "title": "Neutral follow-up still requires lane choice", + "question": "давай дальше", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)документ", + "(?i)движени|регистр", + "(?i)уточн|выб(ери|рать)|какой контур" + ], + "criticality": "critical", + "semantic_tags": ["metadata_lane_choice_clarification", "neutral_followup"] + }, + { + "step_id": "step_03_inline_lane_choice_with_org_keeps_only_period_gap", + "title": "Movement lane plus organization in one follow-up leaves only the period gap", + "question": "по движениям по ООО Альтернатива Плюс", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)движени|регистр", + "(?i)период" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*организац", + "(?i)нужн[ао].*организац", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": [ + "movement_lane_after_clarification", + "inline_organization_clarification", + "remaining_period_gap_only" + ] + }, + { + "step_id": "step_04_period_clarification_executes_same_movement_loop", + "title": "Period clarification executes the same bounded movement loop", + "question": "за 2020 год", + "allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)ндс|движени|регистр|операц|платеж|поступлен|списан|строк" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*организац", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": [ + "movement_lane_execution", + "period_gap_closed", + "bounded_retrieval" + ] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase53_metadata_movement_period_first_recovery.json b/docs/orchestration/address_truth_harness_phase53_metadata_movement_period_first_recovery.json new file mode 100644 index 0000000..b7be918 --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase53_metadata_movement_period_first_recovery.json @@ -0,0 +1,83 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase53_metadata_movement_period_first_recovery", + "domain": "address_phase53_metadata_movement_period_first_recovery", + "title": "Phase 53 metadata movement period-first recovery", + "description": "Targeted AGENT replay for Big Block F where a metadata-born movement lane keeps the same proof path when the user closes the period gap first and the organization gap second.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_metadata_ambiguity_surface", + "title": "Metadata ambiguity is surfaced honestly for VAT", + "question": "какие объекты 1С есть по НДС?", + "allowed_reply_types": ["partial_coverage", "factual_with_explanation"], + "required_answer_patterns_all": [ + "(?i)metadata|метадан", + "(?i)ндс", + "(?i)документ|регистр" + ], + "criticality": "critical", + "semantic_tags": ["metadata_surface", "mixed_ambiguity"] + }, + { + "step_id": "step_02_neutral_followup_requires_lane_choice", + "title": "Neutral follow-up still requires lane choice", + "question": "давай дальше", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)документ", + "(?i)движени|регистр", + "(?i)уточн|выб(ери|рать)|какой контур" + ], + "criticality": "critical", + "semantic_tags": ["metadata_lane_choice_clarification", "neutral_followup"] + }, + { + "step_id": "step_03_movement_lane_requires_both_gaps", + "title": "Movement lane keeps both remaining gaps visible", + "question": "по движениям", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)движени|регистр", + "(?i)организац", + "(?i)период" + ], + "criticality": "critical", + "semantic_tags": ["movement_lane_after_clarification", "remaining_gaps"] + }, + { + "step_id": "step_04_period_first_keeps_only_organization_gap", + "title": "Period-first clarification preserves the same movement loop and leaves only organization missing", + "question": "за 2020 год", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)организац" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*период", + "(?i)нужн[ао].*период", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": ["period_first_recovery", "remaining_org_gap_only"] + }, + { + "step_id": "step_05_organization_closes_same_loop_and_executes_retrieval", + "title": "Organization clarification closes the last gap and executes the same bounded movement loop", + "question": "по ООО Альтернатива Плюс", + "allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)ндс|движени|регистр|операц|платеж|поступлен|списан|строк" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*организац", + "(?i)уточните .*период", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": ["organization_second_recovery", "bounded_retrieval"] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase54_metadata_document_full_recovery.json b/docs/orchestration/address_truth_harness_phase54_metadata_document_full_recovery.json new file mode 100644 index 0000000..6c8c77e --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase54_metadata_document_full_recovery.json @@ -0,0 +1,78 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase54_metadata_document_full_recovery", + "domain": "address_phase54_metadata_document_full_recovery", + "title": "Phase 54 metadata document full recovery", + "description": "Targeted AGENT replay for Big Block F where a metadata-born document lane survives ambiguity resolution, accepts organization and period across follow-ups, and then proceeds into bounded document retrieval without resetting the proof path.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_metadata_ambiguity_surface", + "title": "Metadata ambiguity is surfaced honestly for VAT", + "question": "какие объекты 1С есть по НДС?", + "allowed_reply_types": ["partial_coverage", "factual_with_explanation"], + "required_answer_patterns_all": [ + "(?i)metadata|метадан", + "(?i)ндс", + "(?i)документ|регистр" + ], + "criticality": "critical", + "semantic_tags": ["metadata_surface", "mixed_ambiguity"] + }, + { + "step_id": "step_02_neutral_followup_requires_lane_choice", + "title": "Neutral follow-up still requires lane choice", + "question": "давай дальше", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)документ", + "(?i)движени|регистр", + "(?i)уточн|выб(ери|рать)|какой контур" + ], + "criticality": "critical", + "semantic_tags": ["metadata_lane_choice_clarification", "neutral_followup"] + }, + { + "step_id": "step_03_inline_document_choice_with_org_keeps_only_period_gap", + "title": "Document lane plus organization in one follow-up leaves only the period gap", + "question": "по документам по ООО Альтернатива Плюс", + "allowed_reply_types": ["clarification_required", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт", + "(?i)период" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*организац", + "(?i)нужн[ао].*организац", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": [ + "document_lane_after_clarification", + "inline_organization_clarification", + "remaining_period_gap_only" + ] + }, + { + "step_id": "step_04_period_clarification_executes_same_document_loop", + "title": "Period clarification executes the same bounded document loop", + "question": "за 2020 год", + "allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"], + "required_answer_patterns_all": [ + "(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт|строк" + ], + "forbidden_answer_patterns": [ + "(?i)уточните .*организац", + "(?i)уточните .*контрагента", + "(?i)не найден контрагент" + ], + "criticality": "critical", + "semantic_tags": [ + "document_lane_execution", + "period_gap_closed", + "bounded_retrieval" + ] + } + ] +}