# ADR 007: Model Router Fallback Semantics ## Status Accepted ## Context В проекте уже зафиксирована идея: - сначала weak; - затем retry weak; - затем strong fallback; - external models не запрещаются кодом, а регулируются конфигом и policy. ## Decision Fallback pipeline: 1. slot resolution выбирает provider и model для requested slot; 2. weak model вызывается первой; 3. если ответ невалиден по output contract, выполняется ограниченный retry weak; 4. если weak исчерпан, router проверяет доступность strong; 5. если strong разрешен config+policy, выполняется strong fallback; 6. если strong недоступен, возвращается structured degraded result. ## Notes - “невалиден” означает нарушение response schema, parser failure или явный quality rejection; - fallback trail сохраняется в invocation log; - внешняя strong model не вызывается, если `allow_external_models=false` или policy запрещает.