{
  "version": "s11",
  "decisions": [
    {
      "id": "classified-recovery",
      "title": "Different Failures Need Different Recovery Paths",
      "description": "max_tokens, prompt_too_long, and provider overload mean different things. The runtime classifies the error before retrying.",
      "alternatives": "Blind retry is easy, but wastes time and can repeat a failure that needs compaction or token escalation.",
      "zh": {
        "title": "不同失败需要不同恢复路径",
        "description": "max_tokens、prompt_too_long 和供应商过载含义不同。运行时会先分类错误，再决定如何重试。"
      },
      "ja": {
        "title": "失敗ごとに異なる回復経路が必要",
        "description": "max_tokens、prompt_too_long、プロバイダ過負荷は意味が違います。ランタイムは再試行前にエラーを分類します。"
      }
    },
    {
      "id": "recovery-state",
      "title": "RecoveryState Prevents Infinite Retries",
      "description": "The runtime tracks token escalation, compact retries, consecutive 529s, and fallback model use. Recovery becomes bounded and inspectable.",
      "alternatives": "A while-retry loop can accidentally retry forever or hide which mitigation has already run.",
      "zh": {
        "title": "RecoveryState 防止无限重试",
        "description": "运行时记录 token 升级、compact retry、连续 529、fallback model 等状态。恢复因此有边界、可检查。"
      },
      "ja": {
        "title": "RecoveryState が無限リトライを防ぐ",
        "description": "token 拡張、compact retry、連続 529、fallback model の利用を追跡します。回復処理に境界と可観測性を与えます。"
      }
    },
    {
      "id": "no-fake-continuation",
      "title": "Do Not Fake User Messages During Token Recovery",
      "description": "The first max_tokens escalation retries without appending a synthetic user prompt. The transcript should reflect real events, not internal recovery tricks.",
      "alternatives": "Always appending 'continue' is tempting, but it pollutes conversation history and may change model behavior.",
      "zh": {
        "title": "Token 恢复时不伪造用户消息",
        "description": "第一次 max_tokens 升级会直接重试，不追加合成 user prompt。Transcript 应反映真实事件，而不是内部恢复技巧。"
      },
      "ja": {
        "title": "トークン回復で偽のユーザーメッセージを入れない",
        "description": "最初の max_tokens 拡張では合成 user prompt を追加せず再試行します。transcript は内部の回復処理ではなく実際の出来事を反映すべきです。"
      }
    }
  ]
}
