АРЧ АП11 - Архитектура после регресса: Архитектура: исправить deep-turn normalizer schema contract и вернуть hybrid follow-up authority в phase13 replay

This commit is contained in:
2026-04-18 19:23:31 +03:00
parent 09dd0e4513
commit 823cb56a63
6 changed files with 434 additions and 7 deletions
@@ -315,6 +315,16 @@ Still open after the accepted phase12 replay:
- this matters because route, living-chat, data-scope, and early session-scope bootstrap are now closer to the same organization merge order instead of keeping a separate pre-route branch with its own drift risk;
- targeted tests now explicitly protect the case where assistant-side continuity authority is present in prior assistant debug even when legacy history helpers are empty;
- live replay `address_truth_harness_phase12_wider_saved_session_pool_live_20260418_rerun4` remains accepted `20/20`, which is the critical proof that this authority convergence did not reopen the wider saved-session path.
- the next architecture pass exposed and fixed a deeper hybrid-investigation contract break outside the flagship address chain:
- phase13 replay showed that hybrid anomaly/tails questions were no longer failing only on follow-up continuity; the root entry itself had stopped entering the hybrid lane because deep-turn normalization was calling the normalizer with `promptVersion=address_query_runtime_v1`;
- the model was already returning valid `normalized_query_v2_0_2` payloads for these questions, but the runtime validated them as legacy `v1`, discarded the parsed normalized object, and then dropped into claim-bound clarification with empty `fragments / route_summary`;
- deep-turn normalization now forces an actual normalizer contract (`promptVersion=normalizer_v2_0_2`, `schemaVersion=v2_0_2`) unless the caller already supplied a normalizer-family prompt explicitly;
- this is a real architecture fix, not a case patch: deep-turn no longer inherits a user-facing address runtime prompt as if it were a normalizer schema contract;
- targeted deep-turn normalization tests now protect this seam directly, including the case where an address-lane prompt would previously have caused silent `v1` validation and total fragment loss;
- live replay `address_truth_harness_phase13_hybrid_followup_authority_live_20260418_rerun3` is now accepted:
- root supplier tails anomaly questions re-enter `hybrid_store_plus_live` with grounded fragments and non-empty deterministic route summaries;
- narrowing follow-up for `2020-06 / account 60` now keeps hybrid/batch routing instead of collapsing into empty clarification;
- the broader hybrid investigation contour is therefore back under explicit runtime authority rather than ambient luck.
## Next Execution Slice (2026-04-18)
@@ -330,13 +340,15 @@ This next slice should be executed in the following order:
1. Finish continuity authority convergence in the hot runtime path.
2. Widen saved-session replay coverage beyond the already repaired flagship chains.
3. Tighten human answer shaping on long exact answers without reintroducing template drift.
4. Only after that, begin controlled domain-by-domain expansion toward the multi-domain stage.
3. Prove that non-flagship hybrid/deep-turn contours survive the same runtime contracts instead of silently inheriting wrong prompt/schema assumptions.
4. Only after that, continue secondary answer-shaping cleanup where it materially affects acceptance.
5. Only after that, begin controlled domain-by-domain expansion toward the multi-domain stage.
Current explicit goals for this slice:
- fewer owners independently reconstruct `active context`;
- more replay breadth before any large expansion claim;
- fewer hidden runtime contract mismatches between entry prompts, schema validation, and deep-turn orchestration;
- cleaner user-facing business answers on already-correct truth paths;
- lower risk that new domains multiply orchestration chaos faster than capability growth.
@@ -0,0 +1,125 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase13_hybrid_followup_authority",
"domain": "address_phase13_hybrid_followup_authority",
"title": "Phase 13 hybrid investigation follow-up authority replay",
"description": "Focused AGENT replay for the non-flagship hybrid investigation contour. The scenario validates that anomaly investigation roots stay in the hybrid lane, narrowing follow-ups preserve investigation state instead of drifting into address live queries, period-close impact follow-ups reuse the active anomaly frame, and transliterated supplier-tail wording still enters the intended hybrid contour.",
"bindings": {},
"steps": [
{
"step_id": "step_01_supplier_tails_root",
"title": "Root supplier tails investigation enters the hybrid investigation lane",
"question": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"allowed_reply_types": [
"factual_with_explanation",
"factual",
"partial_coverage"
],
"required_answer_patterns_any": [
"(?i)разрыв|хвост|поставщик|оплат|документ",
"(?i)системн|проблем"
],
"forbidden_answer_patterns": [
"(?i)mcp fetch failed",
"(?i)address_query_runtime_v1",
"(?i)live-?запрос в v1",
"(?i)tool_gate_reason",
"(?i)address_mode"
],
"criticality": "critical",
"semantic_tags": [
"hybrid_investigation_root",
"settlements_60_62",
"anomaly_probe"
]
},
{
"step_id": "step_02_narrow_to_june_2020_account_60",
"title": "Narrowing follow-up keeps the same investigation instead of drifting into address live lane",
"question": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"allowed_reply_types": [
"factual_with_explanation",
"factual",
"partial_coverage"
],
"required_answer_patterns_any": [
"(?i)2020",
"(?i)июн|06",
"(?i)счет 60|60",
"(?i)риск закрытия периода|закрыти[ея] периода|максимальн"
],
"forbidden_answer_patterns": [
"(?i)mcp fetch failed",
"(?i)live-?запрос в v1",
"(?i)адресн(ый|ого) live",
"(?i)выберите организац",
"(?i)tool_gate_reason",
"(?i)address_mode"
],
"criticality": "critical",
"semantic_tags": [
"hybrid_investigation_followup",
"period_narrowing",
"account_60",
"period_close_risk"
]
},
{
"step_id": "step_03_period_close_impact_followup",
"title": "Period-close impact follow-up reuses the active anomaly frame",
"question": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"allowed_reply_types": [
"factual_with_explanation",
"factual",
"partial_coverage",
"clarification_required"
],
"required_answer_patterns_any": [
"(?i)закрыти[ея] периода|период",
"(?i)аномал|риск|сильнее всего|наибольш"
],
"forbidden_answer_patterns": [
"(?i)нужны дополнительные уточнения по периоду или объекту проверки",
"(?i)domain_or_scope_unclear",
"(?i)insufficient_specificity",
"(?i)mcp fetch failed",
"(?i)tool_gate_reason",
"(?i)address_mode"
],
"criticality": "critical",
"semantic_tags": [
"hybrid_investigation_followup",
"period_close_impact",
"context_reuse"
]
},
{
"step_id": "step_04_translit_supplier_tails_root",
"title": "Transliterated supplier tails wording still resolves into the hybrid contour",
"question": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"allowed_reply_types": [
"factual_with_explanation",
"factual",
"partial_coverage"
],
"required_answer_patterns_any": [
"(?i)60",
"(?i)2020",
"(?i)документ|оплат|поставщик|хвост|разрыв|tail"
],
"forbidden_answer_patterns": [
"(?i)mcp fetch failed",
"(?i)live-?запрос в v1",
"(?i)выберите организац",
"(?i)tool_gate_reason",
"(?i)address_mode"
],
"criticality": "important",
"semantic_tags": [
"hybrid_investigation_root",
"translit_wording",
"account_60"
]
}
]
}