# Execution Model ## Базовый цикл 1. Пользователь создает `Task`. 2. Planner materializes `ExecutionGraph`. 3. Graph engine отмечает `ready` узлы. 4. Orchestrator выбирает runner для каждого ready node. 5. Перед side-effecting action выполняется policy evaluation. 6. Если нужен `confirm`, создается `ConfirmationRequest` и graph останавливается. 7. Если action разрешен, runner выполняет node. 8. Node результат сохраняется как output + event trail + optional artifacts. 9. Reviewer может валидировать промежуточный результат. 10. Finalizer формирует user-facing result и cards. ## Node Families ### Planner Создает или пересобирает graph. Не выполняет side effects. ### Model Call Использует `ModelRouter`. Может инициировать fallback, но только внутри router contract. ### Tool Call Использует `ToolGateway` для MCP. ### Local Worker Call Использует `WorkerGateway` для thin executor. ### Reviewer Системный шаг quality gate: - schema validation - semantic validation - retry recommendation - escalate to strong model ### Finalizer Преобразует execution result в user result: - message text - cards - artifacts metadata - summary ## Execution Rules - workers не создают новые workers; - model/router adapters не меняют graph напрямую; - только orchestrator меняет task/node state; - side effects всегда проходят через policy decision; - event log пишется на каждом значимом переходе. ## Manual And Resume `manual` означает, что orchestrator не стартует следующий шаг автоматически. Task остается в `waiting_manual` до явного resume action. ## Replay Replay не означает повтор side effects автоматически. Replay должен уметь: - восстанавливать graph state из persisted state; - переиздавать progress view; - запускать retry только для разрешенных retryable nodes.