# Idempotency And Retry ## Idempotency Principles ### Task Creation - внешний `create task` запрос должен поддерживать idempotency key; - повтор одного и того же запроса не должен создавать дублирующиеся task records. ### Confirmation Resolution - approve/reject одной confirmation должны быть идемпотентны; - повтор того же решения должен возвращать текущее состояние без повторного side effect. ### Worker Results - `command_id` должен быть уникальным ключом идемпотентности для результата worker command; - повторно полученный result envelope не должен переисполнять финализацию шага. ### MCP / Model Invocations - invocation records должны хранить correlation id; - retry создает новую попытку, но с ссылкой на первичную cause chain. ## Retry Matrix ### Retryable - временные network errors; - upstream timeout; - parser failure weak model; - transient MCP transport error; - временный disconnect worker при разрешенном resume policy. ### Non-Retryable - policy denial; - unsupported capability; - invalid request schema; - explicit user rejection; - deterministic contract mismatch in adapter configuration. ## Execution Rule Retry инициируется только orchestrator. Ни MCP adapter, ни worker, ни nested runner не решают самостоятельно “попробовать еще раз” вне зафиксированной policy/runtime semantics.