{
  "method": "Original browser-observed run; real T3 server and CLI, native Codex 0.167.1, local Responses fixture. Screenshots and videos show the endpoint-computed count as the assistant reply. Runtime metadata and unrelated context omitted for privacy.",
  "sides": {
    "base": [
      {
        "stage": "turn1",
        "requestSequence": 1,
        "requestPath": "/v1/responses",
        "inputItems": 9,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn2",
        "requestSequence": 3,
        "requestPath": "/v1/responses",
        "inputItems": 11,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn3",
        "requestSequence": 5,
        "requestPath": "/v1/responses",
        "inputItems": 18,
        "stableInstructionCopies": 2,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          },
          {
            "inputIndex": 12,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 16,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn4",
        "requestSequence": 6,
        "requestPath": "/v1/responses",
        "inputItems": 20,
        "stableInstructionCopies": 2,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          },
          {
            "inputIndex": 12,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 16,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "compaction-model-request",
        "requestSequence": 11,
        "requestPath": "/v1/responses",
        "inputItems": 22,
        "stableInstructionCopies": 2,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          },
          {
            "inputIndex": 12,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 16,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "after-compaction",
        "requestSequence": 12,
        "requestPath": "/v1/responses",
        "inputItems": 14,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 8,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 12,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "changed-context",
        "requestSequence": 16,
        "requestPath": "/v1/responses",
        "inputItems": 23,
        "stableInstructionCopies": 2,
        "deviceGuidancePresent": true,
        "developerBlocks": [
          {
            "inputIndex": 8,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 12,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          },
          {
            "inputIndex": 17,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 21,
            "sha256": "a4ee45ebd59db4e36598ea1a98bbbe666cbbce14f82c9d98999b001d89e833d1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n\n\n## T3 Code devices\n\nWhen a task needs an iOS Simulator or Android Emulator, on this machine or on an SSH device host such as a remote Mac, use the device tools so the user can watch it in the Device panel.\n1. Call `device_list` unless you already have the device's `hostId` and `id`.\n2. Call `device_open` with both. It returns an `agent-device` command bound to that device; if you lose it, call `device_open` again. Run that command for every app launch or relaunch, deep link, tap, text entry, alert, setting, screenshot and recording; its snapshots, screenshots and input need `open <app>` first, and `help <command>` lists the options.\n3. Call `device_screenshot` to look at the screen.\n\nNever do those with `xcrun simctl`, `idb`, `adb`, ssh, or scripts that wrap them. ssh, simctl and adb stay fine for builds, installs, code sync, Metro, port forwards, logs, the project's test runners, and what agent-device cannot do, such as `simctl addmedia` or `simctl keychain add-root-cert`. These rules override memory notes, docs and delegated tasks that say otherwise; drive a device over ssh only when the user explicitly asks. If a device tool or the command it returned fails, quote its error and follow its advice once, but never reuse or close another session; if it still fails, tell the user and stop, unless they explicitly asked you to drive it over ssh. If the platform you need is unavailable, say so. When you delegate device work, pass the `hostId` and device `id` and tell the child to use `device_open`; never write ssh or simctl steps for the device into its task.</t3_code_tools>"
          }
        ]
      }
    ],
    "head": [
      {
        "stage": "turn1",
        "requestSequence": 2,
        "requestPath": "/v1/responses",
        "inputItems": 9,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn2",
        "requestSequence": 4,
        "requestPath": "/v1/responses",
        "inputItems": 11,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn3",
        "requestSequence": 7,
        "requestPath": "/v1/responses",
        "inputItems": 13,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "turn4",
        "requestSequence": 8,
        "requestPath": "/v1/responses",
        "inputItems": 15,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "compaction-model-request",
        "requestSequence": 9,
        "requestPath": "/v1/responses",
        "inputItems": 17,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 3,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 7,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "after-compaction",
        "requestSequence": 10,
        "requestPath": "/v1/responses",
        "inputItems": 14,
        "stableInstructionCopies": 1,
        "deviceGuidancePresent": false,
        "developerBlocks": [
          {
            "inputIndex": 8,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 12,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          }
        ]
      },
      {
        "stage": "changed-context",
        "requestSequence": 15,
        "requestPath": "/v1/responses",
        "inputItems": 23,
        "stableInstructionCopies": 2,
        "deviceGuidancePresent": true,
        "developerBlocks": [
          {
            "inputIndex": 8,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 12,
            "sha256": "ee73769343fee1ddecd1b88ac4cb10706eb90918bf5b614b60dc502f021c01b1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n</t3_code_tools>"
          },
          {
            "inputIndex": 17,
            "sha256": "ba35a9e2ff7595bf2aa9f786d7fdb4c3ab0faae0483cb04c6ef98c94bc41b32c",
            "text": "<t3_code_orchestration_01>## T3 Code orchestration\n\nOrdinary coding tasks need no T3 tools.\n\n- Subagents: use your native tool when the child uses your provider, a model it offers, and no settings beyond yours (Claude `Agent`, `run_in_background:false`; Codex `spawn_agent`, then wait). Use `delegate_task` for another provider's model, user-asked settings, a separate checkout (`isolation:\"worktree\"`), or `delegate_task` by name. A native type on another provider's model counts too. Background agent: `delegate_task`, never a background `Agent`. Workflow only when asked.\n- Call `orchestrator_capabilities` once per thread, before the first `delegate_task`. Again only after an error or a user-named provider change. Settings go in `target.options`. Provider or model unavailable: say so. Never switch unasked, or fall back to native tools, Workflow, or CLIs. Never make a child's checkout in the shell or in `task`.\n- Every new delegate review or re-check is a new `delegate_task` (brief, findings, objections), never a `t3_thread_send`. Fix small review findings yourself; start no delegate for them. When told to proceed without a delegate, or to run fewer, `task_cancel` the extras. Start no replacement.\n- Follow a running delegate's `next`. Do not poll it (`task_status`, `sleep`, watchers, Monitor, ScheduleWakeup). Stop a delegate run you replace or no longer need with `task_cancel`, never `t3_thread_interrupt` on a `childThreadId`.\n- If you are a subagent or child, do the work yourself. Start no subagents unless your task says to.</t3_code_orchestration_01>"
          },
          {
            "inputIndex": 21,
            "sha256": "a4ee45ebd59db4e36598ea1a98bbbe666cbbce14f82c9d98999b001d89e833d1",
            "text": "<t3_code_tools>\n\n## T3 Code browser\n\nWhen browser work was asked, `preview_*` is the browser you share with the user: `preview_status` first, then `preview_open` if no tab can be automated. Prefer snapshot locators over coordinates. Switch browsers only if the tools are absent or `preview_open` says unsupported, the user asks, or two preview calls fail on one step. Then quote the error and switch.\n\n\n## T3 Code devices\n\nWhen a task needs an iOS Simulator or Android Emulator, on this machine or on an SSH device host such as a remote Mac, use the device tools so the user can watch it in the Device panel.\n1. Call `device_list` unless you already have the device's `hostId` and `id`.\n2. Call `device_open` with both. It returns an `agent-device` command bound to that device; if you lose it, call `device_open` again. Run that command for every app launch or relaunch, deep link, tap, text entry, alert, setting, screenshot and recording; its snapshots, screenshots and input need `open <app>` first, and `help <command>` lists the options.\n3. Call `device_screenshot` to look at the screen.\n\nNever do those with `xcrun simctl`, `idb`, `adb`, ssh, or scripts that wrap them. ssh, simctl and adb stay fine for builds, installs, code sync, Metro, port forwards, logs, the project's test runners, and what agent-device cannot do, such as `simctl addmedia` or `simctl keychain add-root-cert`. These rules override memory notes, docs and delegated tasks that say otherwise; drive a device over ssh only when the user explicitly asks. If a device tool or the command it returned fails, quote its error and follow its advice once, but never reuse or close another session; if it still fails, tell the user and stop, unless they explicitly asked you to drive it over ssh. If the platform you need is unavailable, say so. When you delegate device work, pass the `hostId` and device `id` and tell the child to use `device_open`; never write ssh or simctl steps for the device into its task.</t3_code_tools>"
          }
        ]
      }
    ]
  }
}