Skip to main content
Glama

sol-luna-orchestrator

npm CI M8ven Verified Node License: MIT

Bounded delegation for OpenAI Codex. Sol remains the supervisor and architect; Luna workers execute well-defined tasks and cannot delegate further. The runtime admits compute under operator policy, checks observed changes against declared scope, isolates parallel work, and independently verifies outcomes.

For each task, the supervisor can stay solo or use one worker, dependent workers in sequence, or independent workers in parallel.

Quick start

Prerequisites: Node.js 22.12 or newer and a logged-in OpenAI Codex CLI.

Any compatible parent model may supervise.

npm install -g sol-luna-orchestrator
sol-luna-orchestrator init
sol-luna-orchestrator doctor

Open Codex and work normally. It can discover the orchestrator and decide whether delegation is useful; you do not need to select workers or call MCP tools yourself. For clone installs, platform requirements, and advanced setup, see Configuration.

The most useful CLI commands are init to register or reconcile the server, doctor to diagnose setup, status for a runtime summary, and activity for recent orchestration activity. See Configuration for the remaining lifecycle commands and options.

Related MCP server: Codex Gemini Delegator V2

How it works

Codex parent
    |
    +--> stay solo
    +--> optional read-only explore or routing preflight
    +--> bounded contract: scope + intent + acceptance + verification
              |
              +--> one Luna worker
              +--> sequential workers sharing workspace state
              +--> parallel workers in isolated worktrees
                            |
                            v
               observed edits + authoritative verification
                            |
                            v
             thin verified handoff, evidence, or next action

The parent chooses the execution shape. A user-owned compute policy bounds the worker model, effort, count, and concurrency; adaptive routing may recommend solo, single, sequential, or parallel execution but never widens that policy. The orchestrator reconciles worker claims with observed changes and reruns the declared checks, including a final deduplicated batch check after integration. See discovery and adaptive routing for the fresh-session setup and routing guidance.

Features

Capability

What it provides

Adaptive orchestration

Solo, single, sequential, or parallel execution, with semantic routing and operator-bounded model, effort, worker-count, and concurrency policy.

Isolated parallel execution

Independent workers use separate worktrees, bounded concurrency, conservative integration, and conflict and scope checks; sequential tasks can share state.

Authoritative verification

Observed changes and independently rerun checks determine trust, including final workspace verification after batch integration.

Bounded repair and recovery

Evidence can authorize one eligible task-local repair or one bounded parallel recovery attempt, without uncontrolled retry chains.

Continuations and next actions

Eligible work can resume under its original contract, while single-use handoffs preserve only execution authority earned from authoritative evidence.

Context lifecycle management

Model-facing context and routine results stay compact while authoritative evidence, diagnostics, and execution lineage remain available for review.

Read-only exploration and portable context

Optional exploration runs in a read-only disposable surface; cross-session handoffs carry informational history without importing execution authority.

Observability and diagnostics

Structured activity, execution evidence, status, and diagnostic tooling make orchestration inspectable without exposing task prompts in the activity stream.

MCP surface

The normal parent process registers exactly five MCP tools:

  • delegate_task - run one bounded task.

  • delegate_tasks - run sequential or parallel task batches.

  • continue_task - resume an eligible task with an explicit follow-up.

  • routing_preflight - after cheap bounded structural inspection, classify concrete candidate leaves and ask for advisory routing guidance.

  • explore - investigate an admitted scope without changing it.

Worker processes register no MCP tools and cannot recurse into delegation. The workflow coordinator and cross-session handoff helpers are programmatic APIs, not additional MCP tools. Cross-session handoff data is informational: it does not grant authority, retry permission, continuation rights, or a wider compute policy.

Safety

Delegated work runs under server-enforced compute policy and declared-scope controls; parallel workers use isolated worktrees, and the runtime detects and reports scope or integration conflicts. These are guardrails, not an absolute sandbox: workers write real files, and some execution runs with the operator's permissions. Read Security for the threat model and limitations.

Benchmark status

V2 is historical architecture evidence, documented in bench/RESULTS.md. Benchmark V3 used the frozen methodology and completed 36/36 valid runs against the v0.11.0 production baseline: both Solo Medium and Adaptive Medium passed all nine tasks across two repetitions, but Adaptive delegated zero workers and was slower and more expensive overall. The two-repetition result is directional, not statistically significant. It motivated the post-V3 routing corrections intended for v0.12.0; those corrections have not been evaluated by another full campaign, so no v0.12.0 performance improvement is claimed.

Documentation

Contributing

Bug reports and pull requests are welcome. Start with Contributing.

License

MIT, see LICENSE.

Available Tools

5 tools
continue_taskContinue an eligible Luna taskA

Continue ONE eligible task once in the same Luna Codex thread with an opaque single-use continuationReference and one bounded instruction. The original objective, allowedFiles, forbiddenFiles, changeIntent, acceptance, and verification contract remain immutable; no widening fields exist. Luna cannot delegate, and continuation never starts automatic repair. Verification, scope checks, and evidence reconciliation run again. handoff is default; compact/full are compatibility modes. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
instructionYes
resultDetailNohandoff
continuationReferenceYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses immutability of the original contract, no widening fields, no delegation, no automatic repair, re-running of verification/scope/evidence checks, resultDetail mode semantics, silence while pending, and the allowed report outcomes. This is exceptional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every clause earns its place, covering action, constraints, mutation semantics, verification behavior, output modes, and communication protocol. The primary action is front-loaded in the first sentence, and the rest provides necessary behavioral guardrails without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and the subtle semantics of continuation, the description is remarkably complete. It explains eligibility constraints, single-use token behavior, immutability, what will not happen, what checks rerun, mode defaults, and when to stay silent versus report. There is little an agent would need to infer on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds real semantics for the key parameters: 'opaque single-use continuationReference', 'one bounded instruction', and 'handoff is default; compact/full are compatibility modes' for resultDetail. It does not provide exhaustive per-parameter descriptions, but what it adds is meaningful and sufficient for invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Continue'), a specific resource ('ONE eligible task'), and critical constraints ('once in the same Luna Codex thread', 'opaque single-use continuationReference'). It is clearly distinguished from siblings by explicitly noting 'Luna cannot delegate', so an agent can tell it apart from delegate_task/delegate_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the context for use: continuing an existing task in the same thread with a continuation reference. It provides exclusions such as 'Luna cannot delegate' and 'continuation never starts automatic repair', which helps differentiate from delegation and repair workflows. It does not name the exact alternative tool names, but the usage context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delegate_taskDelegate a bounded task to a Luna workerA

Delegate ONE substantial, bounded executable seam to gpt-5.6-luna; no second seam is required. Keep small, simple, or tightly coupled work solo. Tasks may be implementation, tests, bug fixing, refactoring, investigation, or chores. The parent owns architecture, decomposition, unresolved design, sequencing, interfaces, scope, acceptance, and final judgement. Luna owns scoped exploration, implementation, verification, and bounded repair; it cannot see the conversation or delegate.

Provide a self-contained objective, effortReason, acceptanceCriteria, verificationCommands, changeIntent, and honest scopes; add a concise activityLabel when safe and only repository-unavailable context. automaticRepair permits at most one conservative same-thread repair. Results include one evidence-derived failureDecision; parent owns nonautomatic actions. resultDetail=handoff is the default.

The runtime reruns declared checks and reconciles observed edits. A clean PASS returns a text-only VERIFIED_COMPLETE handoff: finish without rereading worker-owned files or rerunning passed checks unless a listed risk changes architecture. FAILED/BLOCKED, untrustworthy, discrepant, scope-violating, refused/skipped, or runtime-error results expand with evidence. Worker claims are not authoritative.

Delegate only when ownership, isolation, context, verification, latency, coordination risk, quality, and current parent-conditional credit economics beat fixed overhead; raw tokens are not credit cost and no saving is guaranteed. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
effortNohigh
contextNo
objectiveYes
allowedFilesNo
changeIntentNorequired
effortReasonYes
resultDetailNohandoff
taskCategoryNo
activityLabelNo
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
contextCapsuleNo
forbiddenFilesNo
timeoutSecondsNo
automaticRepairNo
handoffReferenceNo
previousAttemptsNo
routingPreflightNoOptional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. "unknown" biases advice solo, never refuses.
workingDirectoryNo
acceptanceCriteriaYes
verificationCommandsNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden and does so thoroughly. It reveals that the worker cannot see the conversation or delegate, automaticRepair allows at most one conservative same-thread repair, the runtime reruns declared checks and reconciles edits, PASS returns a text-only VERIFIED_COMPLETE handoff, and failure/blocked results expand with evidence. It also states worker claims are not authoritative and the parent owns nonautomatic actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place for a 20-parameter delegation tool. It is front-loaded with the core contract, then proceeds through submission requirements, runtime behavior, and agent etiquette. There is no filler and no repetition of schema enums.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description explains result types, handoff behavior, failure expansion, and verification semantics well. It covers when to delegate and what the worker can and cannot do. It is slightly less complete on explicit routing among sibling tools and on a few top-level parameters, but overall it gives an agent enough to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10%, but the description compensates for the most important parameters: it tells the agent to provide a self-contained objective, effortReason, acceptanceCriteria, verificationCommands, changeIntent, and honest scopes; it clarifies activityLabel should be concise and only for repository-unavailable context; and it explains the behavior of automaticRepair and the default resultDetail=handoff. Some parameters such as contextCapsule, previousAttempts, and timeoutSeconds are left to schema inference, which keeps this from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delegate ONE substantial, bounded executable seam to gpt-5.6-luna.' It also distinguishes itself from sibling tools by emphasizing this is a single-seam delegation, not a multi-seam or parallel operation, and lists allowed task categories. The parent/worker ownership split further clarifies what this tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use and when-not-to-use guidance: 'Keep small, simple, or tightly coupled work solo' and 'Delegate only when ownership, isolation, context, verification, latency, coordination risk, quality, and current parent-conditional credit economics beat fixed overhead.' It also tells the agent to remain silent while pending and to report only meaningful state changes. This is strong operational guidance, even though it does not name sibling tools explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delegate_tasksDelegate several tasks to Luna workersA

Delegate a batch intended for two or more owned seams to gpt-5.6-luna; one task remains accepted for compatibility, but prefer delegate_task when no scheduling is needed. Use sequential for dependencies/shared workspace state and parallel only for genuinely independent disjoint declared scopes. Do not create artificial seams. At most 12 tasks are accepted and at most 3 run concurrently; the rest queue. Each task needs a self-contained contract and a concise activityLabel when a safe label exists. The parent owns architecture/interfaces and exceptional judgement; Luna owns exploration, implementation, verification, and repair. automaticRepair is one bounded task-local turn.

Parallel same-file edits prevent automatic integration. allowOverlappingScopes:true only accepts the declared overlap; it is not a write sandbox and does not permit same-file integration. integrate=false skips copying and retention follows operator policy. Partial outcomes remain visible. automaticRecovery defaults true: at most one evidence-eligible timeout continuation or exact process-exit retry; a counter alone never authorizes retry. Repair precedes recovery and neither nests. Successes, cancellation, scope/security/evidence failures, refused checks, discrepancies, and conflicts are never retried. Successful streams survive sibling failure.

After integration, deterministic code reruns the deduplicated union of declared checks in the final workspace. completionState=verified-complete means all seams, integration, and final checks passed; the default text-only handoff then tells the parent to finish without rereading files or rerunning checks. Any failure/refusal/conflict returns rich evidence for targeted diagnosis. resultDetail is one batch-level compatibility choice. More workers are not automatically cheaper; raw tokens are not credit cost and savings depend on the parent and task mix. While pending with no meaningful new state, remain silent; do not narrate waiting or polling. Report only a result, error, cancellation, timeout, or actionable state change.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
tasksYes
integrateNo
resultDetailNohandoff
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
routingPreflightNoOptional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. "unknown" biases advice solo, never refuses.
workingDirectoryNo
automaticRecoveryNo
allowOverlappingScopesNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It goes far beyond a basic summary by specifying concurrency limits, queueing, retry rules, automaticRecovery defaults, repair scope, integration behavior, completionState semantics, and reporting etiquette. This is exceptional transparency for a complex tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, but the tool is genuinely complex and nearly every sentence adds an operational constraint or decision rule. It is grouped into thematic paragraphs and front-loaded with the primary purpose, but it is still a wall of text rather than a structured, skimmable format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, absence of annotations, and absence of output schema, this description is remarkably complete. It covers selection criteria, operational limits, concurrency and queueing, integration and overlap semantics, retry and recovery behavior, failure handling, result semantics, and even reporting etiquette. An agent has enough context to decide when to call it and how to configure a valid batch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22%, so the description must compensate, and it does. It explains the behavioral meaning of allowOverlappingScopes:true, integrate=false, resultDetail, automaticRepair, automaticRecovery, and sequential/parallel mode, which the bare schema enums do not provide. It also gives practical guidance like requiring self-contained contracts and concise activityLabels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: delegate a batch to Luna workers. It also differentiates from the sibling tool delegate_task by explaining that a single task is accepted for compatibility but delegate_task is preferred when no scheduling is needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to prefer delegate_task, and gives clear rules for choosing sequential vs parallel: sequential for dependencies/shared state, parallel only for independent disjoint scopes. It also forbids artificial seams, leaving no ambiguity about when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exploreExplore repository, API, or documentation with LunaA

Explicitly explore an admitted repository, API, or documentation scope with gpt-5.6-luna; fixed read-only disposable execution returns provenance-marked worker claims, runtime facts, inferences, and unknowns. Implements nothing, cannot delegate, and is never automatic.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYes
effortNohigh
targetYes
contextNo
questionsNo
effortReasonYes
resultDetailNohandoff
activityLabelNo
computePolicyNoOptional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.
contextCapsuleNo
forbiddenFilesNo
timeoutSecondsNo
workingDirectoryNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so unusually well. It discloses that execution is 'fixed read-only disposable,' that it returns 'provenance-marked worker claims, runtime facts, inferences, and unknowns,' and that it 'implements nothing, cannot delegate, and is never automatic.' This gives an agent a clear safety and side-effect profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two efficient sentences with zero filler. Purpose and scope are front-loaded, followed immediately by behavioral disclosures and exclusions. Every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool — 13 parameters, nested objects, no output schema, and no annotations — so the description alone is insufficient for correct invocation. It explains the high-level behavior well but does not clarify target vs scope, effortReason requirements, resultDetail choices, computePolicy, or output structure. An agent could select the tool but would struggle to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 8%, and the description barely compensates: 'repository, API, or documentation scope' hints at target/scope, but the 13 parameters — including required effortReason — receive no meaningful explanation. The schema itself has no descriptions for most properties, so an agent lacks essential parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and object phrase: 'Explicitly explore an admitted repository, API, or documentation scope' — so an agent knows exactly what the tool acts on. It also differentiates from siblings by adding 'Implements nothing, cannot delegate, and is never automatic,' which separates it from delegate_task and routing_preflight. This goes beyond a generic restatement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening clause gives clear usage context: use this for explicit exploration of an admitted scope. The additonal exclusions — 'cannot delegate' and 'never automatic' — tell an agent when not to expect delegation or autonimous routing. Alternatives are not explicitly named, but the behavior boundaries are strong enough to guide tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

routing_preflightCheck cheaply whether delegating is worth itA

Cheap deterministic check of whether delegating is structurally sound and economically sensible, before any repository exploration. Declare the ownership seams you are considering and what they share; leave a field "unknown" when you do not know, which biases the advice toward solo without ever refusing. Creates no worker, batch, worktree, or thread, refuses nothing, and returns route (solo | either | delegation-plausible), the deciding signals, and structural parallel eligibility. Advisory only and never required: the parent owns sequential vs parallel, worker count, effort, and the final decision, and choosing zero workers afterwards is a normal successful outcome. either means fixed delegation overhead needs explicit justification, otherwise stay solo.

ParametersJSON Schema
NameRequiredDescriptionDefault
seamsYes
seamSizeNounknown
coreOverlapNounknown
integrationNounknown
sharedStateNounknown
verificationNounknown

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explicitly states 'Creates no worker, batch, worktree, or thread, refuses nothing' – clearly disclosing side-effect-free behavior. It describes the return values (route, deciding signals, structural parallel eligibility) and explains how unknown inputs bias results toward solo. The advisory and non-required nature is also disclosed, giving the agent complete understanding of behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence. It then flows naturally from usage timing to input guidance to output and interpretation. It is three sentences but dense, with each clause earning its place. Slightly verbose with multiple embedded clauses, but still well-structured and avoids fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 6 parameters and no output schema, the description covers all essential aspects: what the tool does, when to use it, its side-effect-free nature, the input guidance (include seams, mark unknowns), the output format (route, deciding signals, eligibility), and how to interpret results (either requires justification). An agent has enough information to call it correctly without further lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides a high-level hint: 'Declare the ownership seams you are considering and what they share' – this loosely maps to seams and sharedState/coreOverlap. It also advises leaving fields 'unknown' when unsure. However, it does not explain the semantic meaning of seamSize, integration, or verification individually, leaving some parameters under-documented. The description adds some value but does not fully compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Cheap deterministic check of whether delegating is structurally sound and economically sensible, before any repository exploration.' This is a specific verb (check) and resource (delegating) with a clear scope and timing. It distinguishes itself from siblings like delegate_task by explicitly stating it creates no worker/batch/worktree/thread, making it clear it is a preflight rather than an execution tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it is used 'before any repository exploration' and is 'advisory only and never required', clarifying it is a precursor to actual delegation. It also explains when the output suggests staying solo vs. delegating ('either means fixed delegation overhead needs explicit justification, otherwise stay solo'). However, it does not explicitly name sibling tools or state 'use delegate_task instead when you are ready to execute', so the contrast with alternatives is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.11.0
    • Changedcontinue_task1 field changed
      • addedInput schema / properties / continuationReference / maxLength
        Added value: +128
    • Changeddelegate_task1 field changed
      • addedInput schema / properties / handoffReference
        Added value: +{
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changeddelegate_tasks1 field changed
      • addedInput schema / properties / tasks / items / properties / handoffReference
        Added value: +{
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Addedexplore
  2. 4 tool updatesv0.10.0
    • Changedcontinue_task4 fields changed
      • removedInput schema / properties / continuationReference / description
        Removed value: -"Opaque server-lifetime reference returned on an eligible delegated result. Do not send a raw Codex thread id."
      • removedInput schema / properties / instruction / description
        Removed value: -"One concise follow-up instruction for the same bounded task. The original objective, allowedFiles, forbiddenFiles, changeIntent, acceptance criteria, and verification commands remain fixed and are not accepted here."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "handoff",
        +  "enum": [
        +    "handoff",
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "attempt": {
        -      "description": "Attempt number for this objective, from `previousAttempts`.",
        -      "type": "number"
        -    },
        -    "changeIntent": {
        -      "description": "Selected change intent carried into the review evidence.",
        -      "enum": [
        -        "forbidden",
        -        "optional",
        -        "required"
        -      ],
        -      "type": "string"
        -    },
        -    "continuationReference": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -    },
        -    "discrepancies": {
        -      "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "effort": {
        -      "type": "string"
        -    },
        -    "effortReason": {
        -      "type": "string"
        -    },
        -    "errors": {
        -      "description": "Runtime errors surfaced during the turn.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "escalationAdvice": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -    },
        -    "filesChanged": {
        -      "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "kind": {
        -            "type": "string"
        -          },
        -          "observed": {
        -            "description": "True if the Codex runtime itself recorded this edit.",
        -            "type": "boolean"
        -          },
        -          "path": {
        -            "type": "string"
        -          },
        -          "why": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "kind",
        -          "why",
        -          "observed"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "followUps": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "model": {
        -      "type": "string"
        -    },
        -    "notes": {
        -      "type": "string"
        -    },
        -    "repair": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "attempted": {
        -              "type": "boolean"
        -            },
        -            "classification": {
        -              "enum": [
        -                "not-requested",
        -                "not-needed",
        -                "local-verification",
        -                "read-only",
        -                "contract-or-requirement",
        -                "scope-or-conflict",
        -                "environment-or-tooling",
        -                "security-or-trust-boundary",
        -                "wider-scope"
        -              ],
        -              "type": "string"
        -            },
        -            "failureEvidence": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "command": {
        -                    "type": "string"
        -                  },
        -                  "execution": {
        -                    "enum": [
        -                      "argv",
        -                      "shell"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "exitCode": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "command",
        -                  "execution",
        -                  "exitCode",
        -                  "output"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "reason": {
        -              "type": "string"
        -            },
        -            "requested": {
        -              "type": "boolean"
        -            }
        -          },
        -          "required": [
        -            "requested",
        -            "attempted",
        -            "classification",
        -            "reason",
        -            "failureEvidence"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -    },
        -    "reviewChecklist": {
        -      "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeViolations": {
        -      "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "summary": {
        -      "description": "Worker's summary of what it did.",
        -      "type": "string"
        -    },
        -    "trustworthy": {
        -      "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -      "type": "boolean"
        -    },
        -    "usage": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "cacheWriteInputTokens": {
        -              "type": "number"
        -            },
        -            "cachedInputTokens": {
        -              "type": "number"
        -            },
        -            "inputTokens": {
        -              "type": "number"
        -            },
        -            "outputTokens": {
        -              "type": "number"
        -            },
        -            "reasoningOutputTokens": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "inputTokens",
        -            "cachedInputTokens",
        -            "outputTokens",
        -            "reasoningOutputTokens"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "verdict": {
        -      "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "verification": {
        -      "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "command": {
        -            "type": "string"
        -          },
        -          "execution": {
        -            "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -            "enum": [
        -              "argv",
        -              "shell",
        -              "rejected",
        -              "skipped",
        -              "reported"
        -            ],
        -            "type": "string"
        -          },
        -          "exitCode": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "output": {
        -            "type": "string"
        -          },
        -          "passed": {
        -            "type": "boolean"
        -          },
        -          "source": {
        -            "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -            "enum": [
        -              "orchestrator",
        -              "worker"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "command",
        -          "source",
        -          "execution",
        -          "exitCode",
        -          "passed",
        -          "output"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "verificationMode": {
        -      "description": "Execution policy in force: allowlist, off, or shell.",
        -      "type": "string"
        -    },
        -    "workerClaimedFailureCauses": {
        -      "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -      "items": {
        -        "enum": [
        -          "verification",
        -          "requirements",
        -          "implementation",
        -          "environment-tooling",
        -          "timeout",
        -          "blocked",
        -          "unclassified"
        -        ],
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workerClaimedStatus": {
        -      "description": "What the worker reported. Compare against `verdict`.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "workerThreadId": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -    }
        -  },
        -  "required": [
        -    "changeIntent",
        -    "verdict",
        -    "workerClaimedStatus",
        -    "trustworthy",
        -    "workerThreadId",
        -    "continuationReference",
        -    "model",
        -    "effort",
        -    "effortReason",
        -    "attempt",
        -    "summary",
        -    "notes",
        -    "followUps",
        -    "filesChanged",
        -    "verification",
        -    "verificationMode",
        -    "scopeViolations",
        -    "discrepancies",
        -    "reviewChecklist",
        -    "escalationAdvice",
        -    "durationSeconds",
        -    "usage",
        -    "errors"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changeddelegate_task29 fields changed
      • removedInput schema / properties / acceptanceCriteria / description
        Removed value: -"Observable conditions that define done and can be judged from evidence."
      • removedInput schema / properties / activityLabel / description
        Removed value: -"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • removedInput schema / properties / allowedFiles / description
        Removed value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • removedInput schema / properties / automaticRepair / description
        Removed value: -"Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false."
      • removedInput schema / properties / changeIntent / description
        Removed value: -"Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory."
      • addedInput schema / properties / computePolicy
        Added value: +{
        +  "description": "Optional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.",
        +  "properties": {
        +    "allowEffortEscalation": {
        +      "type": "boolean"
        +    },
        +    "allowStrongerFallback": {
        +      "type": "boolean"
        +    },
        +    "maxConcurrency": {
        +      "maximum": 8,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "maxWorkersPerBatch": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / context / description
        Removed value: -"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • removedInput schema / properties / contextCapsule / description
        Removed value: -"Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields."
      • removedInput schema / properties / contextCapsule / properties / dependencies / description
        Removed value: -"Services, libraries, or internal modules the task depends on."
      • removedInput schema / properties / contextCapsule / properties / interfaces / description
        Removed value: -"Signatures, contracts, or boundaries that must remain stable."
      • removedInput schema / properties / contextCapsule / properties / invariants / description
        Removed value: -"Rules that must remain true."
      • removedInput schema / properties / contextCapsule / properties / knownPitfalls / description
        Removed value: -"Task-specific mistakes or failed approaches to avoid."
      • removedInput schema / properties / contextCapsule / properties / relevantContext / description
        Removed value: -"Task background the worker cannot infer from the repository."
      • removedInput schema / properties / contextCapsule / properties / upstreamDecisions / description
        Removed value: -"Architecture or design decisions already settled by the parent orchestrator."
      • removedInput schema / properties / effort / description
        Removed value: -"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • removedInput schema / properties / effortReason / description
        Removed value: -"One sentence justifying the effort from this task's difficulty."
      • removedInput schema / properties / forbiddenFiles / description
        Removed value: -"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • removedInput schema / properties / objective / description
        Removed value: -"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • removedInput schema / properties / previousAttempts / description
        Removed value: -"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • removedInput schema / properties / previousAttempts / items / properties / whatWentWrong / description
        Removed value: -"Why the earlier attempt did not succeed, in one sentence."
      • changedInput schema / properties / resultDetail / default
        Previous value: -"full"New value: +"handoff"
      • removedInput schema / properties / resultDetail / description
        Removed value: -"Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained."
      • changedInput schema / properties / resultDetail / enum
        Previous value: -[
        -  "full",
        -  "compact"
        -]New value: +[
        +  "handoff",
        +  "compact",
        +  "full"
        +]
      • addedInput schema / properties / routingPreflight
        Added value: +{
        +  "description": "Optional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. \"unknown\" biases advice solo, never refuses.",
        +  "properties": {
        +    "coreOverlap": {
        +      "default": "unknown",
        +      "enum": [
        +        "disjoint",
        +        "shared-core",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "integration": {
        +      "default": "unknown",
        +      "enum": [
        +        "mechanical",
        +        "architectural",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seamSize": {
        +      "default": "unknown",
        +      "enum": [
        +        "small",
        +        "substantial",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seams": {
        +      "items": {
        +        "maxLength": 48,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 12,
        +      "type": "array"
        +    },
        +    "sharedState": {
        +      "default": "unknown",
        +      "enum": [
        +        "none",
        +        "read-only",
        +        "mutable",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "verification": {
        +      "default": "unknown",
        +      "enum": [
        +        "per-seam",
        +        "shared-only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "seams"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / taskCategory / description
        Removed value: -"Kind of executable work; it does not determine effort."
      • removedInput schema / properties / timeoutSeconds / description
        Removed value: -"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • removedInput schema / properties / verificationCommands / description
        Removed value: -"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • removedInput schema / properties / workingDirectory / description
        Removed value: -"Absolute worker directory; defaults to the orchestrator's current directory."
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "attempt": {
        -      "description": "Attempt number for this objective, from `previousAttempts`.",
        -      "type": "number"
        -    },
        -    "changeIntent": {
        -      "description": "Selected change intent carried into the review evidence.",
        -      "enum": [
        -        "forbidden",
        -        "optional",
        -        "required"
        -      ],
        -      "type": "string"
        -    },
        -    "continuationReference": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -    },
        -    "discrepancies": {
        -      "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "effort": {
        -      "type": "string"
        -    },
        -    "effortReason": {
        -      "type": "string"
        -    },
        -    "errors": {
        -      "description": "Runtime errors surfaced during the turn.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "escalationAdvice": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -    },
        -    "filesChanged": {
        -      "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "kind": {
        -            "type": "string"
        -          },
        -          "observed": {
        -            "description": "True if the Codex runtime itself recorded this edit.",
        -            "type": "boolean"
        -          },
        -          "path": {
        -            "type": "string"
        -          },
        -          "why": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "kind",
        -          "why",
        -          "observed"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "followUps": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "model": {
        -      "type": "string"
        -    },
        -    "notes": {
        -      "type": "string"
        -    },
        -    "repair": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "attempted": {
        -              "type": "boolean"
        -            },
        -            "classification": {
        -              "enum": [
        -                "not-requested",
        -                "not-needed",
        -                "local-verification",
        -                "read-only",
        -                "contract-or-requirement",
        -                "scope-or-conflict",
        -                "environment-or-tooling",
        -                "security-or-trust-boundary",
        -                "wider-scope"
        -              ],
        -              "type": "string"
        -            },
        -            "failureEvidence": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "command": {
        -                    "type": "string"
        -                  },
        -                  "execution": {
        -                    "enum": [
        -                      "argv",
        -                      "shell"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "exitCode": {
        -                    "anyOf": [
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "output": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "command",
        -                  "execution",
        -                  "exitCode",
        -                  "output"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "reason": {
        -              "type": "string"
        -            },
        -            "requested": {
        -              "type": "boolean"
        -            }
        -          },
        -          "required": [
        -            "requested",
        -            "attempted",
        -            "classification",
        -            "reason",
        -            "failureEvidence"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -    },
        -    "reviewChecklist": {
        -      "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeViolations": {
        -      "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "summary": {
        -      "description": "Worker's summary of what it did.",
        -      "type": "string"
        -    },
        -    "trustworthy": {
        -      "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -      "type": "boolean"
        -    },
        -    "usage": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": false,
        -          "properties": {
        -            "cacheWriteInputTokens": {
        -              "type": "number"
        -            },
        -            "cachedInputTokens": {
        -              "type": "number"
        -            },
        -            "inputTokens": {
        -              "type": "number"
        -            },
        -            "outputTokens": {
        -              "type": "number"
        -            },
        -            "reasoningOutputTokens": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "inputTokens",
        -            "cachedInputTokens",
        -            "outputTokens",
        -            "reasoningOutputTokens"
        -          ],
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "verdict": {
        -      "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "verification": {
        -      "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "command": {
        -            "type": "string"
        -          },
        -          "execution": {
        -            "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -            "enum": [
        -              "argv",
        -              "shell",
        -              "rejected",
        -              "skipped",
        -              "reported"
        -            ],
        -            "type": "string"
        -          },
        -          "exitCode": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "output": {
        -            "type": "string"
        -          },
        -          "passed": {
        -            "type": "boolean"
        -          },
        -          "source": {
        -            "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -            "enum": [
        -              "orchestrator",
        -              "worker"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "command",
        -          "source",
        -          "execution",
        -          "exitCode",
        -          "passed",
        -          "output"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "verificationMode": {
        -      "description": "Execution policy in force: allowlist, off, or shell.",
        -      "type": "string"
        -    },
        -    "workerClaimedFailureCauses": {
        -      "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -      "items": {
        -        "enum": [
        -          "verification",
        -          "requirements",
        -          "implementation",
        -          "environment-tooling",
        -          "timeout",
        -          "blocked",
        -          "unclassified"
        -        ],
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "workerClaimedStatus": {
        -      "description": "What the worker reported. Compare against `verdict`.",
        -      "enum": [
        -        "PASS",
        -        "BLOCKED",
        -        "FAILED"
        -      ],
        -      "type": "string"
        -    },
        -    "workerThreadId": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -    }
        -  },
        -  "required": [
        -    "changeIntent",
        -    "verdict",
        -    "workerClaimedStatus",
        -    "trustworthy",
        -    "workerThreadId",
        -    "continuationReference",
        -    "model",
        -    "effort",
        -    "effortReason",
        -    "attempt",
        -    "summary",
        -    "notes",
        -    "followUps",
        -    "filesChanged",
        -    "verification",
        -    "verificationMode",
        -    "scopeViolations",
        -    "discrepancies",
        -    "reviewChecklist",
        -    "escalationAdvice",
        -    "durationSeconds",
        -    "usage",
        -    "errors"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changeddelegate_tasks34 fields changed
      • removedInput schema / properties / allowOverlappingScopes / description
        Removed value: -"Parallel only: this call-level escape hatch permits potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • addedInput schema / properties / automaticRecovery
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / computePolicy
        Added value: +{
        +  "description": "Optional per-call compute envelope. Narrows this installation's operator-owned baseline only and can never widen it. Omit to use the baseline.",
        +  "properties": {
        +    "allowEffortEscalation": {
        +      "type": "boolean"
        +    },
        +    "allowStrongerFallback": {
        +      "type": "boolean"
        +    },
        +    "maxConcurrency": {
        +      "maximum": 8,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "maxWorkersPerBatch": {
        +      "maximum": 12,
        +      "minimum": 1,
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / integrate / description
        Removed value: -"Parallel only: copy completed worker edits back when observed changed files do not collide. Set false to leave changes in worktrees for review."
      • removedInput schema / properties / mode / description
        Removed value: -"sequential = dependent or shared-workspace tasks run in order; parallel = independent tasks run in isolated git worktrees and may be copied back only when integration is enabled and observed changed files do not collide."
      • changedInput schema / properties / resultDetail / default
        Previous value: -"full"New value: +"handoff"
      • removedInput schema / properties / resultDetail / description
        Removed value: -"Batch-level result detail applied uniformly to every returned task result; it is not a per-task field. Compact removes only successful verification output, while the schema default remains full for backwards compatibility."
      • changedInput schema / properties / resultDetail / enum
        Previous value: -[
        -  "full",
        -  "compact"
        -]New value: +[
        +  "handoff",
        +  "compact",
        +  "full"
        +]
      • addedInput schema / properties / routingPreflight
        Added value: +{
        +  "description": "Optional advisory routing declaration. Solo advice never blocks execution; declarations gate: every surface refuses empty seams, parallel also refuses mutable sharedState, shared-core coreOverlap, or tasks > seams. \"unknown\" biases advice solo, never refuses.",
        +  "properties": {
        +    "coreOverlap": {
        +      "default": "unknown",
        +      "enum": [
        +        "disjoint",
        +        "shared-core",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "integration": {
        +      "default": "unknown",
        +      "enum": [
        +        "mechanical",
        +        "architectural",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seamSize": {
        +      "default": "unknown",
        +      "enum": [
        +        "small",
        +        "substantial",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "seams": {
        +      "items": {
        +        "maxLength": 48,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 12,
        +      "type": "array"
        +    },
        +    "sharedState": {
        +      "default": "unknown",
        +      "enum": [
        +        "none",
        +        "read-only",
        +        "mutable",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "verification": {
        +      "default": "unknown",
        +      "enum": [
        +        "per-seam",
        +        "shared-only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "seams"
        +  ],
        +  "type": "object"
        +}
      • removedInput schema / properties / tasks / description
        Removed value: -"Task contracts; this API is intended for multiple meaningful tasks but accepts one or more and at most 12 tasks. A one-task batch remains accepted for compatibility; prefer delegate_task for a single task. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless this call sets allowOverlappingScopes:true; actual same-file edits still prevent automatic integration. Provide each task an optional concise, non-sensitive activityLabel when one is safe; labels are explicit only and never derived from objective text."
      • removedInput schema / properties / tasks / items / properties / acceptanceCriteria / description
        Removed value: -"Observable conditions that define done and can be judged from evidence."
      • removedInput schema / properties / tasks / items / properties / activityLabel / description
        Removed value: -"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • removedInput schema / properties / tasks / items / properties / allowedFiles / description
        Removed value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • removedInput schema / properties / tasks / items / properties / automaticRepair / description
        Removed value: -"Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false."
      • removedInput schema / properties / tasks / items / properties / changeIntent / description
        Removed value: -"Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory."
      • removedInput schema / properties / tasks / items / properties / context / description
        Removed value: -"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / description
        Removed value: -"Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / dependencies / description
        Removed value: -"Services, libraries, or internal modules the task depends on."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / interfaces / description
        Removed value: -"Signatures, contracts, or boundaries that must remain stable."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / invariants / description
        Removed value: -"Rules that must remain true."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / knownPitfalls / description
        Removed value: -"Task-specific mistakes or failed approaches to avoid."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / relevantContext / description
        Removed value: -"Task background the worker cannot infer from the repository."
      • removedInput schema / properties / tasks / items / properties / contextCapsule / properties / upstreamDecisions / description
        Removed value: -"Architecture or design decisions already settled by the parent orchestrator."
      • removedInput schema / properties / tasks / items / properties / effort / description
        Removed value: -"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • removedInput schema / properties / tasks / items / properties / effortReason / description
        Removed value: -"One sentence justifying the effort from this task's difficulty."
      • removedInput schema / properties / tasks / items / properties / forbiddenFiles / description
        Removed value: -"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • removedInput schema / properties / tasks / items / properties / objective / description
        Removed value: -"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • removedInput schema / properties / tasks / items / properties / previousAttempts / description
        Removed value: -"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • removedInput schema / properties / tasks / items / properties / previousAttempts / items / properties / whatWentWrong / description
        Removed value: -"Why the earlier attempt did not succeed, in one sentence."
      • removedInput schema / properties / tasks / items / properties / taskCategory / description
        Removed value: -"Kind of executable work; it does not determine effort."
      • removedInput schema / properties / tasks / items / properties / timeoutSeconds / description
        Removed value: -"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • removedInput schema / properties / tasks / items / properties / verificationCommands / description
        Removed value: -"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • removedInput schema / properties / workingDirectory / description
        Removed value: -"Absolute path. Defaults to the orchestrator's working directory."
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "batchId": {
        -      "type": "string"
        -    },
        -    "durationSeconds": {
        -      "type": "number"
        -    },
        -    "failed": {
        -      "type": "number"
        -    },
        -    "integrated": {
        -      "description": "Whether completed worker edits are now present in the requested workspace.",
        -      "type": "boolean"
        -    },
        -    "integrationConflicts": {
        -      "description": "Parallel integration only: files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself. Sequential shared-workspace batches return an empty array.",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "path": {
        -            "type": "string"
        -          },
        -          "tasks": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "path",
        -          "tasks"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "integrationSummary": {
        -      "type": "string"
        -    },
        -    "maxParallel": {
        -      "type": "number"
        -    },
        -    "mode": {
        -      "enum": [
        -        "parallel",
        -        "sequential"
        -      ],
        -      "type": "string"
        -    },
        -    "passed": {
        -      "type": "number"
        -    },
        -    "reviewChecklist": {
        -      "description": "Batch-level integration and risk checks the parent orchestrator must still make.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "scopeConflicts": {
        -      "description": "Declared scopes that could match the same files.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "taskCount": {
        -      "type": "number"
        -    },
        -    "tasks": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "changedFiles": {
        -            "description": "Workspace-relative paths this task changed.",
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "diff": {
        -            "description": "Unified diff from the task's worktree.",
        -            "type": "string"
        -          },
        -          "effort": {
        -            "type": "string"
        -          },
        -          "effortReason": {
        -            "type": "string"
        -          },
        -          "error": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "objective": {
        -            "type": "string"
        -          },
        -          "result": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "attempt": {
        -                    "description": "Attempt number for this objective, from `previousAttempts`.",
        -                    "type": "number"
        -                  },
        -                  "changeIntent": {
        -                    "description": "Selected change intent carried into the review evidence.",
        -                    "enum": [
        -                      "forbidden",
        -                      "optional",
        -                      "required"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "continuationReference": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        -                  },
        -                  "discrepancies": {
        -                    "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "durationSeconds": {
        -                    "type": "number"
        -                  },
        -                  "effort": {
        -                    "type": "string"
        -                  },
        -                  "effortReason": {
        -                    "type": "string"
        -                  },
        -                  "errors": {
        -                    "description": "Runtime errors surfaced during the turn.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "escalationAdvice": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -                  },
        -                  "filesChanged": {
        -                    "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "kind": {
        -                          "type": "string"
        -                        },
        -                        "observed": {
        -                          "description": "True if the Codex runtime itself recorded this edit.",
        -                          "type": "boolean"
        -                        },
        -                        "path": {
        -                          "type": "string"
        -                        },
        -                        "why": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "path",
        -                        "kind",
        -                        "why",
        -                        "observed"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "followUps": {
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "model": {
        -                    "type": "string"
        -                  },
        -                  "notes": {
        -                    "type": "string"
        -                  },
        -                  "repair": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "attempted": {
        -                            "type": "boolean"
        -                          },
        -                          "classification": {
        -                            "enum": [
        -                              "not-requested",
        -                              "not-needed",
        -                              "local-verification",
        -                              "read-only",
        -                              "contract-or-requirement",
        -                              "scope-or-conflict",
        -                              "environment-or-tooling",
        -                              "security-or-trust-boundary",
        -                              "wider-scope"
        -                            ],
        -                            "type": "string"
        -                          },
        -                          "failureEvidence": {
        -                            "items": {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "command": {
        -                                  "type": "string"
        -                                },
        -                                "execution": {
        -                                  "enum": [
        -                                    "argv",
        -                                    "shell"
        -                                  ],
        -                                  "type": "string"
        -                                },
        -                                "exitCode": {
        -                                  "anyOf": [
        -                                    {
        -                                      "type": "number"
        -                                    },
        -                                    {
        -                                      "type": "null"
        -                                    }
        -                                  ]
        -                                },
        -                                "output": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "command",
        -                                "execution",
        -                                "exitCode",
        -                                "output"
        -                              ],
        -                              "type": "object"
        -                            },
        -                            "type": "array"
        -                          },
        -                          "reason": {
        -                            "type": "string"
        -                          },
        -                          "requested": {
        -                            "type": "boolean"
        -                          }
        -                        },
        -                        "required": [
        -                          "requested",
        -                          "attempted",
        -                          "classification",
        -                          "reason",
        -                          "failureEvidence"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        -                  },
        -                  "reviewChecklist": {
        -                    "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "scopeViolations": {
        -                    "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "summary": {
        -                    "description": "Worker's summary of what it did.",
        -                    "type": "string"
        -                  },
        -                  "trustworthy": {
        -                    "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -                    "type": "boolean"
        -                  },
        -                  "usage": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "cacheWriteInputTokens": {
        -                            "type": "number"
        -                          },
        -                          "cachedInputTokens": {
        -                            "type": "number"
        -                          },
        -                          "inputTokens": {
        -                            "type": "number"
        -                          },
        -                          "outputTokens": {
        -                            "type": "number"
        -                          },
        -                          "reasoningOutputTokens": {
        -                            "type": "number"
        -                          }
        -                        },
        -                        "required": [
        -                          "inputTokens",
        -                          "cachedInputTokens",
        -                          "outputTokens",
        -                          "reasoningOutputTokens"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "verdict": {
        -                    "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -                    "enum": [
        -                      "PASS",
        -                      "BLOCKED",
        -                      "FAILED"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "verification": {
        -                    "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "command": {
        -                          "type": "string"
        -                        },
        -                        "execution": {
        -                          "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -                          "enum": [
        -                            "argv",
        -                            "shell",
        -                            "rejected",
        -                            "skipped",
        -                            "reported"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "exitCode": {
        -                          "anyOf": [
        -                            {
        -                              "type": "number"
        -                            },
        -                            {
        -                              "type": "null"
        -                            }
        -                          ]
        -                        },
        -                        "output": {
        -                          "type": "string"
        -                        },
        -                        "passed": {
        -                          "type": "boolean"
        -                        },
        -                        "source": {
        -                          "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -                          "enum": [
        -                            "orchestrator",
        -                            "worker"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "command",
        -                        "source",
        -                        "execution",
        -                        "exitCode",
        -                        "passed",
        -                        "output"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "verificationMode": {
        -                    "description": "Execution policy in force: allowlist, off, or shell.",
        -                    "type": "string"
        -                  },
        -                  "workerClaimedFailureCauses": {
        -                    "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        -                    "items": {
        -                      "enum": [
        -                        "verification",
        -                        "requirements",
        -                        "implementation",
        -                        "environment-tooling",
        -                        "timeout",
        -                        "blocked",
        -                        "unclassified"
        -                      ],
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "workerClaimedStatus": {
        -                    "description": "What the worker reported. Compare against `verdict`.",
        -                    "enum": [
        -                      "PASS",
        -                      "BLOCKED",
        -                      "FAILED"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "workerThreadId": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ],
        -                    "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        -                  }
        -                },
        -                "required": [
        -                  "changeIntent",
        -                  "verdict",
        -                  "workerClaimedStatus",
        -                  "trustworthy",
        -                  "workerThreadId",
        -                  "continuationReference",
        -                  "model",
        -                  "effort",
        -                  "effortReason",
        -                  "attempt",
        -                  "summary",
        -                  "notes",
        -                  "followUps",
        -                  "filesChanged",
        -                  "verification",
        -                  "verificationMode",
        -                  "scopeViolations",
        -                  "discrepancies",
        -                  "reviewChecklist",
        -                  "escalationAdvice",
        -                  "durationSeconds",
        -                  "usage",
        -                  "errors"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Single-task result at the batch's requested resultDetail, or null if the task never ran."
        -          },
        -          "state": {
        -            "enum": [
        -              "queued",
        -              "running",
        -              "completed",
        -              "failed",
        -              "timedOut",
        -              "cancelled"
        -            ],
        -            "type": "string"
        -          },
        -          "taskId": {
        -            "description": "Identifier used in logs, worktree paths, and conflicts.",
        -            "type": "string"
        -          },
        -          "warnings": {
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "worktreePath": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ],
        -            "description": "Set when the worktree was kept for inspection; null when cleaned up."
        -          }
        -        },
        -        "required": [
        -          "taskId",
        -          "state",
        -          "objective",
        -          "effort",
        -          "effortReason",
        -          "result",
        -          "changedFiles",
        -          "worktreePath",
        -          "error",
        -          "warnings"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "warnings": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "batchId",
        -    "mode",
        -    "maxParallel",
        -    "taskCount",
        -    "passed",
        -    "failed",
        -    "durationSeconds",
        -    "tasks",
        -    "scopeConflicts",
        -    "integrationConflicts",
        -    "integrated",
        -    "integrationSummary",
        -    "warnings",
        -    "reviewChecklist"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Addedrouting_preflight
  3. 3 tool updatesv0.9.0
    • Addedcontinue_task
    • Changeddelegate_task11 fields changed
      • changedInput schema / properties / activityLabel / description
        Previous value: -"Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate."New value: +"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • changedInput schema / properties / allowedFiles / description
        Previous value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • addedInput schema / properties / automaticRepair
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / changeIntent
        Added value: +{
        +  "default": "required",
        +  "description": "Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / changeIntent
        Added value: +{
        +  "description": "Selected change intent carried into the review evidence.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / continuationReference
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        +}
      • addedOutput schema / properties / repair
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "attempted": {
        +          "type": "boolean"
        +        },
        +        "classification": {
        +          "enum": [
        +            "not-requested",
        +            "not-needed",
        +            "local-verification",
        +            "read-only",
        +            "contract-or-requirement",
        +            "scope-or-conflict",
        +            "environment-or-tooling",
        +            "security-or-trust-boundary",
        +            "wider-scope"
        +          ],
        +          "type": "string"
        +        },
        +        "failureEvidence": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "command": {
        +                "type": "string"
        +              },
        +              "execution": {
        +                "enum": [
        +                  "argv",
        +                  "shell"
        +                ],
        +                "type": "string"
        +              },
        +              "exitCode": {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "output": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "command",
        +              "execution",
        +              "exitCode",
        +              "output"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "requested": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "requested",
        +        "attempted",
        +        "classification",
        +        "reason",
        +        "failureEvidence"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        +}
      • changedOutput schema / properties / usage / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "cachedInputTokens": {
        -        "type": "number"
        -      },
        -      "inputTokens": {
        -        "type": "number"
        -      },
        -      "outputTokens": {
        -        "type": "number"
        -      },
        -      "reasoningOutputTokens": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "inputTokens",
        -      "cachedInputTokens",
        -      "outputTokens",
        -      "reasoningOutputTokens"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "cacheWriteInputTokens": {
        +        "type": "number"
        +      },
        +      "cachedInputTokens": {
        +        "type": "number"
        +      },
        +      "inputTokens": {
        +        "type": "number"
        +      },
        +      "outputTokens": {
        +        "type": "number"
        +      },
        +      "reasoningOutputTokens": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "inputTokens",
        +      "cachedInputTokens",
        +      "outputTokens",
        +      "reasoningOutputTokens"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / workerClaimedFailureCauses
        Added value: +{
        +  "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        +  "items": {
        +    "enum": [
        +      "verification",
        +      "requirements",
        +      "implementation",
        +      "environment-tooling",
        +      "timeout",
        +      "blocked",
        +      "unclassified"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / workerThreadId / description
        Previous value: -"Codex thread id of the worker, for inspecting or resuming it."New value: +"Codex thread id of the worker, for inspection; continuation uses an opaque reference."
      • changedOutput schema / required
        Previous value: -[
        -  "verdict",
        -  "workerClaimedStatus",
        -  "trustworthy",
        -  "workerThreadId",
        -  "model",
        -  "effort",
        -  "effortReason",
        -  "attempt",
        -  "summary",
        -  "notes",
        -  "followUps",
        -  "filesChanged",
        -  "verification",
        -  "verificationMode",
        -  "scopeViolations",
        -  "discrepancies",
        -  "reviewChecklist",
        -  "escalationAdvice",
        -  "durationSeconds",
        -  "usage",
        -  "errors"
        -]New value: +[
        +  "changeIntent",
        +  "verdict",
        +  "workerClaimedStatus",
        +  "trustworthy",
        +  "workerThreadId",
        +  "continuationReference",
        +  "model",
        +  "effort",
        +  "effortReason",
        +  "attempt",
        +  "summary",
        +  "notes",
        +  "followUps",
        +  "filesChanged",
        +  "verification",
        +  "verificationMode",
        +  "scopeViolations",
        +  "discrepancies",
        +  "reviewChecklist",
        +  "escalationAdvice",
        +  "durationSeconds",
        +  "usage",
        +  "errors"
        +]
    • Changeddelegate_tasks10 fields changed
      • changedInput schema / properties / allowOverlappingScopes / description
        Previous value: -"Parallel only: permit potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."New value: +"Parallel only: this call-level escape hatch permits potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • changedInput schema / properties / resultDetail / description
        Previous value: -"Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained."New value: +"Batch-level result detail applied uniformly to every returned task result; it is not a per-task field. Compact removes only successful verification output, while the schema default remains full for backwards compatibility."
      • changedInput schema / properties / tasks / description
        Previous value: -"Task contracts; a batch accepts at most 12 tasks. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless overlap is explicitly allowed."New value: +"Task contracts; this API is intended for multiple meaningful tasks but accepts one or more and at most 12 tasks. A one-task batch remains accepted for compatibility; prefer delegate_task for a single task. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless this call sets allowOverlappingScopes:true; actual same-file edits still prevent automatic integration. Provide each task an optional concise, non-sensitive activityLabel when one is safe; labels are explicit only and never derived from objective text."
      • changedInput schema / properties / tasks / items / properties / activityLabel / description
        Previous value: -"Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate."New value: +"Optional concise, non-sensitive label for local activity views; parents should provide one for each batch task when a safe label is available (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate. Never derive it from the objective text."
      • changedInput schema / properties / tasks / items / properties / allowedFiles / description
        Previous value: -"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist and does not declare read-only intent; workspace confinement remains."
      • addedInput schema / properties / tasks / items / properties / automaticRepair
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most one automatic repair turn when the initial result is conservatively classified as a local verification defect. The same worker thread and immutable task contract are reused. Omitted defaults to false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / tasks / items / properties / changeIntent
        Added value: +{
        +  "default": "required",
        +  "description": "Explicit file-change expectation: forbidden means read-only and any runtime-observed edit violates the contract; optional means edits may be useful but are not required; required means the task is expected to produce an edit. Omitted defaults to required for compatibility. This is independent of allowedFiles and taskCategory.",
        +  "enum": [
        +    "forbidden",
        +    "optional",
        +    "required"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / integrationConflicts / description
        Previous value: -"Files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself."New value: +"Parallel integration only: files more than one worker actually changed. Non-empty means nothing was integrated and you must merge them yourself. Sequential shared-workspace batches return an empty array."
      • changedOutput schema / properties / tasks / items / properties / result / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "attempt": {
        -        "description": "Attempt number for this objective, from `previousAttempts`.",
        -        "type": "number"
        -      },
        -      "discrepancies": {
        -        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "durationSeconds": {
        -        "type": "number"
        -      },
        -      "effort": {
        -        "type": "string"
        -      },
        -      "effortReason": {
        -        "type": "string"
        -      },
        -      "errors": {
        -        "description": "Runtime errors surfaced during the turn.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "escalationAdvice": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -      },
        -      "filesChanged": {
        -        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "kind": {
        -              "type": "string"
        -            },
        -            "observed": {
        -              "description": "True if the Codex runtime itself recorded this edit.",
        -              "type": "boolean"
        -            },
        -            "path": {
        -              "type": "string"
        -            },
        -            "why": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "path",
        -            "kind",
        -            "why",
        -            "observed"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "followUps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "model": {
        -        "type": "string"
        -      },
        -      "notes": {
        -        "type": "string"
        -      },
        -      "reviewChecklist": {
        -        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "scopeViolations": {
        -        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "summary": {
        -        "description": "Worker's summary of what it did.",
        -        "type": "string"
        -      },
        -      "trustworthy": {
        -        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        -        "type": "boolean"
        -      },
        -      "usage": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "cachedInputTokens": {
        -                "type": "number"
        -              },
        -              "inputTokens": {
        -                "type": "number"
        -              },
        -              "outputTokens": {
        -                "type": "number"
        -              },
        -              "reasoningOutputTokens": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "inputTokens",
        -              "cachedInputTokens",
        -              "outputTokens",
        -              "reasoningOutputTokens"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "verdict": {
        -        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "verification": {
        -        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "command": {
        -              "type": "string"
        -            },
        -            "execution": {
        -              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        -              "enum": [
        -                "argv",
        -                "shell",
        -                "rejected",
        -                "skipped",
        -                "reported"
        -              ],
        -              "type": "string"
        -            },
        -            "exitCode": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "output": {
        -              "type": "string"
        -            },
        -            "passed": {
        -              "type": "boolean"
        -            },
        -            "source": {
        -              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        -              "enum": [
        -                "orchestrator",
        -                "worker"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "command",
        -            "source",
        -            "execution",
        -            "exitCode",
        -            "passed",
        -            "output"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "verificationMode": {
        -        "description": "Execution policy in force: allowlist, off, or shell.",
        -        "type": "string"
        -      },
        -      "workerClaimedStatus": {
        -        "description": "What the worker reported. Compare against `verdict`.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "workerThreadId": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Codex thread id of the worker, for inspecting or resuming it."
        -      }
        -    },
        -    "required": [
        -      "verdict",
        -      "workerClaimedStatus",
        -      "trustworthy",
        -      "workerThreadId",
        -      "model",
        -      "effort",
        -      "effortReason",
        -      "attempt",
        -      "summary",
        -      "notes",
        -      "followUps",
        -      "filesChanged",
        -      "verification",
        -      "verificationMode",
        -      "scopeViolations",
        -      "discrepancies",
        -      "reviewChecklist",
        -      "escalationAdvice",
        -      "durationSeconds",
        -      "usage",
        -      "errors"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "attempt": {
        +        "description": "Attempt number for this objective, from `previousAttempts`.",
        +        "type": "number"
        +      },
        +      "changeIntent": {
        +        "description": "Selected change intent carried into the review evidence.",
        +        "enum": [
        +          "forbidden",
        +          "optional",
        +          "required"
        +        ],
        +        "type": "string"
        +      },
        +      "continuationReference": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Opaque, single-use, server-lifetime reference for one explicit continuation; null when this result cannot be continued or the bound was consumed."
        +      },
        +      "discrepancies": {
        +        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "durationSeconds": {
        +        "type": "number"
        +      },
        +      "effort": {
        +        "type": "string"
        +      },
        +      "effortReason": {
        +        "type": "string"
        +      },
        +      "errors": {
        +        "description": "Runtime errors surfaced during the turn.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "escalationAdvice": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        +      },
        +      "filesChanged": {
        +        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "kind": {
        +              "type": "string"
        +            },
        +            "observed": {
        +              "description": "True if the Codex runtime itself recorded this edit.",
        +              "type": "boolean"
        +            },
        +            "path": {
        +              "type": "string"
        +            },
        +            "why": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "path",
        +            "kind",
        +            "why",
        +            "observed"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "followUps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "model": {
        +        "type": "string"
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "repair": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "attempted": {
        +                "type": "boolean"
        +              },
        +              "classification": {
        +                "enum": [
        +                  "not-requested",
        +                  "not-needed",
        +                  "local-verification",
        +                  "read-only",
        +                  "contract-or-requirement",
        +                  "scope-or-conflict",
        +                  "environment-or-tooling",
        +                  "security-or-trust-boundary",
        +                  "wider-scope"
        +                ],
        +                "type": "string"
        +              },
        +              "failureEvidence": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "command": {
        +                      "type": "string"
        +                    },
        +                    "execution": {
        +                      "enum": [
        +                        "argv",
        +                        "shell"
        +                      ],
        +                      "type": "string"
        +                    },
        +                    "exitCode": {
        +                      "anyOf": [
        +                        {
        +                          "type": "number"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    },
        +                    "output": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "command",
        +                    "execution",
        +                    "exitCode",
        +                    "output"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "reason": {
        +                "type": "string"
        +              },
        +              "requested": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "requested",
        +              "attempted",
        +              "classification",
        +              "reason",
        +              "failureEvidence"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Bounded automatic-repair decision and the concise authoritative failure evidence supplied to the resumed worker. Null or omitted when not requested."
        +      },
        +      "reviewChecklist": {
        +        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "scopeViolations": {
        +        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "summary": {
        +        "description": "Worker's summary of what it did.",
        +        "type": "string"
        +      },
        +      "trustworthy": {
        +        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        +        "type": "boolean"
        +      },
        +      "usage": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "cacheWriteInputTokens": {
        +                "type": "number"
        +              },
        +              "cachedInputTokens": {
        +                "type": "number"
        +              },
        +              "inputTokens": {
        +                "type": "number"
        +              },
        +              "outputTokens": {
        +                "type": "number"
        +              },
        +              "reasoningOutputTokens": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "inputTokens",
        +              "cachedInputTokens",
        +              "outputTokens",
        +              "reasoningOutputTokens"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "verdict": {
        +        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "verification": {
        +        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "command": {
        +              "type": "string"
        +            },
        +            "execution": {
        +              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        +              "enum": [
        +                "argv",
        +                "shell",
        +                "rejected",
        +                "skipped",
        +                "reported"
        +              ],
        +              "type": "string"
        +            },
        +            "exitCode": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "output": {
        +              "type": "string"
        +            },
        +            "passed": {
        +              "type": "boolean"
        +            },
        +            "source": {
        +              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        +              "enum": [
        +                "orchestrator",
        +                "worker"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "command",
        +            "source",
        +            "execution",
        +            "exitCode",
        +            "passed",
        +            "output"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "verificationMode": {
        +        "description": "Execution policy in force: allowlist, off, or shell.",
        +        "type": "string"
        +      },
        +      "workerClaimedFailureCauses": {
        +        "description": "Normalized worker-declared failure causes. This is claim evidence, not an orchestrator repair or retry classification. Current results always include it; the field is optional only for backwards-compatible consumers.",
        +        "items": {
        +          "enum": [
        +            "verification",
        +            "requirements",
        +            "implementation",
        +            "environment-tooling",
        +            "timeout",
        +            "blocked",
        +            "unclassified"
        +          ],
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "workerClaimedStatus": {
        +        "description": "What the worker reported. Compare against `verdict`.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "workerThreadId": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Codex thread id of the worker, for inspection; continuation uses an opaque reference."
        +      }
        +    },
        +    "required": [
        +      "changeIntent",
        +      "verdict",
        +      "workerClaimedStatus",
        +      "trustworthy",
        +      "workerThreadId",
        +      "continuationReference",
        +      "model",
        +      "effort",
        +      "effortReason",
        +      "attempt",
        +      "summary",
        +      "notes",
        +      "followUps",
        +      "filesChanged",
        +      "verification",
        +      "verificationMode",
        +      "scopeViolations",
        +      "discrepancies",
        +      "reviewChecklist",
        +      "escalationAdvice",
        +      "durationSeconds",
        +      "usage",
        +      "errors"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / tasks / items / properties / result / description
        Previous value: -"Single-task result at the requested resultDetail, or null if the task never ran."New value: +"Single-task result at the batch's requested resultDetail, or null if the task never ran."
  4. 2 tool updatesv0.8.0
    • Changeddelegate_task24 fields changed
      • changedInput schema / properties / acceptanceCriteria / description
        Previous value: -"Observable, checkable conditions that define done — something you can confirm by reading the diff or running a command."New value: +"Observable conditions that define done and can be judged from evidence."
      • addedInput schema / properties / activityLabel
        Added value: +{
        +  "description": "Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / allowedFiles / description
        Previous value: -"Glob patterns the worker may create or modify (e.g. 'src/auth/**'). Empty means unrestricted, which is discouraged. Enforced after the run."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."
      • changedInput schema / properties / context / description
        Previous value: -"Background the worker cannot infer from the repo: prior decisions, constraints, gotchas, relevant files."New value: +"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • addedInput schema / properties / contextCapsule
        Added value: +{
        +  "description": "Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields.",
        +  "properties": {
        +    "dependencies": {
        +      "description": "Services, libraries, or internal modules the task depends on.",
        +      "type": "string"
        +    },
        +    "interfaces": {
        +      "description": "Signatures, contracts, or boundaries that must remain stable.",
        +      "type": "string"
        +    },
        +    "invariants": {
        +      "description": "Rules that must remain true.",
        +      "type": "string"
        +    },
        +    "knownPitfalls": {
        +      "description": "Task-specific mistakes or failed approaches to avoid.",
        +      "type": "string"
        +    },
        +    "relevantContext": {
        +      "description": "Task background the worker cannot infer from the repository.",
        +      "type": "string"
        +    },
        +    "upstreamDecisions": {
        +      "description": "Architecture or design decisions already settled by the parent orchestrator.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / effort / description
        Previous value: -"Reasoning effort for the worker. medium = mechanical, high = default for real implementation work, xhigh = subtle or cross-cutting, max = genuinely hard problems only. Rate the DELEGATED TASK's own difficulty, never the parent project's importance."New value: +"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • changedInput schema / properties / effortReason / description
        Previous value: -"One sentence justifying the effort in terms of this task's difficulty. Required so effort selection stays deliberate."New value: +"One sentence justifying the effort from this task's difficulty."
      • changedInput schema / properties / forbiddenFiles / description
        Previous value: -"Glob patterns the worker must not touch (e.g. 'package.json'). Takes precedence over allowedFiles. Forbid the test files when tests are the verification."New value: +"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • changedInput schema / properties / objective / description
        Previous value: -"Single bounded implementation task, written so a worker with no access to your conversation can execute it. State the what and the why."New value: +"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • changedInput schema / properties / previousAttempts / description
        Previous value: -"Escalation history for this same objective. Supply it when re-delegating after a FAILED or BLOCKED result: the worker sees what already failed, and the orchestrator reports the attempt number back to you."New value: +"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "full",
        +  "description": "Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / taskCategory / description
        Previous value: -"Shape of the work. 'investigation' and 'bugfix' more often justify xhigh; 'chore' and 'tests' rarely do."New value: +"Kind of executable work; it does not determine effort."
      • changedInput schema / properties / timeoutSeconds / description
        Previous value: -"Wall-clock budget for the worker turn. Defaults to 1800."New value: +"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • changedInput schema / properties / verificationCommands / description
        Previous value: -"Shell-free commands proving the work (e.g. 'npm test', 'pytest -q'). The worker runs them AND the orchestrator independently re-runs them after the worker exits; the orchestrator's exit codes are authoritative. Only allowlisted executables run, and pipes/redirects/&&/; are refused."New value: +"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • changedInput schema / properties / workingDirectory / description
        Previous value: -"Absolute path the worker operates in. Defaults to the orchestrator's current working directory."New value: +"Absolute worker directory; defaults to the orchestrator's current directory."
      • changedOutput schema / properties / discrepancies / description
        Previous value: -"Concrete mismatches between the worker's claims and observed reality. Non-empty means do not accept the result as-is."New value: +"Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is."
      • changedOutput schema / properties / filesChanged / description
        Previous value: -"Union of edits observed by the Codex runtime and edits the worker claimed. `observed: false` means the runtime saw no such patch."New value: +"Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch."
      • changedOutput schema / properties / reviewChecklist / description
        Previous value: -"What you, Sol, must still check yourself before accepting."New value: +"Risk-based checks the parent orchestrator must still make before accepting."
      • changedOutput schema / properties / scopeViolations / description
        Previous value: -"Files touched outside allowedFiles, inside forbiddenFiles, or outside the workspace."New value: +"Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review."
      • changedOutput schema / properties / trustworthy / description
        Previous value: -"False when the worker's claim conflicts with observed evidence. False demands a careful diff review before accepting anything."New value: +"False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting."
      • changedOutput schema / properties / verdict / description
        Previous value: -"Orchestrator's verdict, derived from independently re-run verification and scope checks — NOT copied from the worker's claim."New value: +"Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim."
      • changedOutput schema / properties / verification / description
        Previous value: -"Verification outcomes. Prefer `source: orchestrator` rows."New value: +"Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran."
      • changedOutput schema / properties / verification / items / properties / execution / description
        Previous value: -"How the orchestrator ran it. `argv` = no shell (normal). `rejected` = refused by policy and NOT run. `skipped` = verification disabled. `reported` = the worker's own claim, not executed here. Only argv/shell rows prove anything."New value: +"argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command."
      • changedOutput schema / properties / verification / items / properties / source / description
        Previous value: -"`orchestrator` results are ground truth."New value: +"Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported."
    • Changeddelegate_tasks23 fields changed
      • changedInput schema / properties / allowOverlappingScopes / description
        Previous value: -"Run in parallel even when two tasks could touch the same files. Off by default because the result then depends on which worker finishes last."New value: +"Parallel only: permit potentially overlapping declared scopes. Actual same-file edits still prevent automatic integration."
      • changedInput schema / properties / integrate / description
        Previous value: -"Parallel mode only. Copy each worker's changes back into the workspace when no two workers touched the same file. Set false to review the worktrees yourself before anything moves."New value: +"Parallel only: copy completed worker edits back when observed changed files do not collide. Set false to leave changes in worktrees for review."
      • changedInput schema / properties / mode / description
        Previous value: -"parallel = tasks are independent; each runs in its own git worktree and results are integrated afterwards. sequential = tasks may depend on each other; they share the workspace and run one at a time, so a later task sees the earlier one's changes."New value: +"sequential = dependent or shared-workspace tasks run in order; parallel = independent tasks run in isolated git worktrees and may be copied back only when integration is enabled and observed changed files do not collide."
      • addedInput schema / properties / resultDetail
        Added value: +{
        +  "default": "full",
        +  "description": "Choose compact routinely; it removes only successful verification output. Use full when that output is needed. The schema default remains full for backwards compatibility; failed, refused, and skipped output is retained.",
        +  "enum": [
        +    "full",
        +    "compact"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / tasks / description
        Previous value: -"Task contracts. For parallel mode give each a disjoint allowedFiles scope; overlapping scopes are rejected unless you opt in."New value: +"Task contracts; a batch accepts at most 12 tasks. Batch size is not concurrency: sequential mode runs one at a time, while parallel mode runs at most 3 workers at once and queues the rest. Parallel tasks need disjoint scopes unless overlap is explicitly allowed."
      • changedInput schema / properties / tasks / items / properties / acceptanceCriteria / description
        Previous value: -"Observable, checkable conditions that define done — something you can confirm by reading the diff or running a command."New value: +"Observable conditions that define done and can be judged from evidence."
      • addedInput schema / properties / tasks / items / properties / activityLabel
        Added value: +{
        +  "description": "Optional concise label for local activity views; keep it short and useful (for example, 'Update auth retries'). It is persisted locally and may reveal this brief work description; omit it when that is not appropriate.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / tasks / items / properties / allowedFiles / description
        Previous value: -"Glob patterns the worker may create or modify (e.g. 'src/auth/**'). Empty means unrestricted, which is discouraged. Enforced after the run."New value: +"Declared workspace-relative glob scope, checked against observed edits after the run. Empty declares no in-workspace allowlist; workspace confinement remains."
      • changedInput schema / properties / tasks / items / properties / context / description
        Previous value: -"Background the worker cannot infer from the repo: prior decisions, constraints, gotchas, relevant files."New value: +"Legacy plain-text task background. If contextCapsule is also supplied, both are sent; avoid duplication."
      • addedInput schema / properties / tasks / items / properties / contextCapsule
        Added value: +{
        +  "description": "Optional structured task background the worker cannot infer. It supplements the contract and legacy context; include only useful fields, omit empty fields, never copy the parent transcript, and do not duplicate other fields.",
        +  "properties": {
        +    "dependencies": {
        +      "description": "Services, libraries, or internal modules the task depends on.",
        +      "type": "string"
        +    },
        +    "interfaces": {
        +      "description": "Signatures, contracts, or boundaries that must remain stable.",
        +      "type": "string"
        +    },
        +    "invariants": {
        +      "description": "Rules that must remain true.",
        +      "type": "string"
        +    },
        +    "knownPitfalls": {
        +      "description": "Task-specific mistakes or failed approaches to avoid.",
        +      "type": "string"
        +    },
        +    "relevantContext": {
        +      "description": "Task background the worker cannot infer from the repository.",
        +      "type": "string"
        +    },
        +    "upstreamDecisions": {
        +      "description": "Architecture or design decisions already settled by the parent orchestrator.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / tasks / items / properties / effort / description
        Previous value: -"Reasoning effort for the worker. medium = mechanical, high = default for real implementation work, xhigh = subtle or cross-cutting, max = genuinely hard problems only. Rate the DELEGATED TASK's own difficulty, never the parent project's importance."New value: +"Worker reasoning effort: medium = mechanical; high = bounded work needing judgement (routine default); xhigh = subtle, cross-cutting, or unclear cause; max = genuinely hard. Rate this task's difficulty, not project importance."
      • changedInput schema / properties / tasks / items / properties / effortReason / description
        Previous value: -"One sentence justifying the effort in terms of this task's difficulty. Required so effort selection stays deliberate."New value: +"One sentence justifying the effort from this task's difficulty."
      • changedInput schema / properties / tasks / items / properties / forbiddenFiles / description
        Previous value: -"Glob patterns the worker must not touch (e.g. 'package.json'). Takes precedence over allowedFiles. Forbid the test files when tests are the verification."New value: +"Workspace-relative globs observed edits must not match. Checked after the run and takes precedence over allowedFiles."
      • changedInput schema / properties / tasks / items / properties / objective / description
        Previous value: -"Single bounded implementation task, written so a worker with no access to your conversation can execute it. State the what and the why."New value: +"One bounded executable task. Make the what, why, and expected outcome self-contained because the worker cannot see the conversation."
      • changedInput schema / properties / tasks / items / properties / previousAttempts / description
        Previous value: -"Escalation history for this same objective. Supply it when re-delegating after a FAILED or BLOCKED result: the worker sees what already failed, and the orchestrator reports the attempt number back to you."New value: +"Prior FAILED or BLOCKED attempts at this objective, so a retry can avoid repeating them and the result can report its attempt number."
      • changedInput schema / properties / tasks / items / properties / taskCategory / description
        Previous value: -"Shape of the work. 'investigation' and 'bugfix' more often justify xhigh; 'chore' and 'tests' rarely do."New value: +"Kind of executable work; it does not determine effort."
      • changedInput schema / properties / tasks / items / properties / timeoutSeconds / description
        Previous value: -"Wall-clock budget for the worker turn. Defaults to 1800."New value: +"Optional per-turn wall-clock budget; otherwise uses the configured default (normally 1800 seconds)."
      • changedInput schema / properties / tasks / items / properties / verificationCommands / description
        Previous value: -"Shell-free commands proving the work (e.g. 'npm test', 'pytest -q'). The worker runs them AND the orchestrator independently re-runs them after the worker exits; the orchestrator's exit codes are authoritative. Only allowlisted executables run, and pipes/redirects/&&/; are refused."New value: +"Targeted deterministic checks that prove the bounded task; use a full suite only when the task genuinely requires it. The worker runs and reports them, and the orchestrator independently processes each under the configured policy. Executed orchestrator rows are authoritative, while refused or skipped rows prove nothing. Default allowlist mode refuses shell syntax."
      • addedInput schema / properties / tasks / maxItems
        Added value: +12
      • changedOutput schema / properties / integrated / description
        Previous value: -"Whether worker changes are now present in the workspace."New value: +"Whether completed worker edits are now present in the requested workspace."
      • addedOutput schema / properties / reviewChecklist / description
        Added value: +"Batch-level integration and risk checks the parent orchestrator must still make."
      • changedOutput schema / properties / tasks / items / properties / result / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "attempt": {
        -        "description": "Attempt number for this objective, from `previousAttempts`.",
        -        "type": "number"
        -      },
        -      "discrepancies": {
        -        "description": "Concrete mismatches between the worker's claims and observed reality. Non-empty means do not accept the result as-is.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "durationSeconds": {
        -        "type": "number"
        -      },
        -      "effort": {
        -        "type": "string"
        -      },
        -      "effortReason": {
        -        "type": "string"
        -      },
        -      "errors": {
        -        "description": "Runtime errors surfaced during the turn.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "escalationAdvice": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        -      },
        -      "filesChanged": {
        -        "description": "Union of edits observed by the Codex runtime and edits the worker claimed. `observed: false` means the runtime saw no such patch.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "kind": {
        -              "type": "string"
        -            },
        -            "observed": {
        -              "description": "True if the Codex runtime itself recorded this edit.",
        -              "type": "boolean"
        -            },
        -            "path": {
        -              "type": "string"
        -            },
        -            "why": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "path",
        -            "kind",
        -            "why",
        -            "observed"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "followUps": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "model": {
        -        "type": "string"
        -      },
        -      "notes": {
        -        "type": "string"
        -      },
        -      "reviewChecklist": {
        -        "description": "What you, Sol, must still check yourself before accepting.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "scopeViolations": {
        -        "description": "Files touched outside allowedFiles, inside forbiddenFiles, or outside the workspace.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "summary": {
        -        "description": "Worker's summary of what it did.",
        -        "type": "string"
        -      },
        -      "trustworthy": {
        -        "description": "False when the worker's claim conflicts with observed evidence. False demands a careful diff review before accepting anything.",
        -        "type": "boolean"
        -      },
        -      "usage": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "cachedInputTokens": {
        -                "type": "number"
        -              },
        -              "inputTokens": {
        -                "type": "number"
        -              },
        -              "outputTokens": {
        -                "type": "number"
        -              },
        -              "reasoningOutputTokens": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "inputTokens",
        -              "cachedInputTokens",
        -              "outputTokens",
        -              "reasoningOutputTokens"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "verdict": {
        -        "description": "Orchestrator's verdict, derived from independently re-run verification and scope checks — NOT copied from the worker's claim.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "verification": {
        -        "description": "Verification outcomes. Prefer `source: orchestrator` rows.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "command": {
        -              "type": "string"
        -            },
        -            "execution": {
        -              "description": "How the orchestrator ran it. `argv` = no shell (normal). `rejected` = refused by policy and NOT run. `skipped` = verification disabled. `reported` = the worker's own claim, not executed here. Only argv/shell rows prove anything.",
        -              "enum": [
        -                "argv",
        -                "shell",
        -                "rejected",
        -                "skipped",
        -                "reported"
        -              ],
        -              "type": "string"
        -            },
        -            "exitCode": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "output": {
        -              "type": "string"
        -            },
        -            "passed": {
        -              "type": "boolean"
        -            },
        -            "source": {
        -              "description": "`orchestrator` results are ground truth.",
        -              "enum": [
        -                "orchestrator",
        -                "worker"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "command",
        -            "source",
        -            "execution",
        -            "exitCode",
        -            "passed",
        -            "output"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "verificationMode": {
        -        "description": "Execution policy in force: allowlist, off, or shell.",
        -        "type": "string"
        -      },
        -      "workerClaimedStatus": {
        -        "description": "What the worker reported. Compare against `verdict`.",
        -        "enum": [
        -          "PASS",
        -          "BLOCKED",
        -          "FAILED"
        -        ],
        -        "type": "string"
        -      },
        -      "workerThreadId": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Codex thread id of the worker, for inspecting or resuming it."
        -      }
        -    },
        -    "required": [
        -      "verdict",
        -      "workerClaimedStatus",
        -      "trustworthy",
        -      "workerThreadId",
        -      "model",
        -      "effort",
        -      "effortReason",
        -      "attempt",
        -      "summary",
        -      "notes",
        -      "followUps",
        -      "filesChanged",
        -      "verification",
        -      "verificationMode",
        -      "scopeViolations",
        -      "discrepancies",
        -      "reviewChecklist",
        -      "escalationAdvice",
        -      "durationSeconds",
        -      "usage",
        -      "errors"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "attempt": {
        +        "description": "Attempt number for this objective, from `previousAttempts`.",
        +        "type": "number"
        +      },
        +      "discrepancies": {
        +        "description": "Concrete mismatches between claims and observed evidence. Non-empty means do not accept the result as-is.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "durationSeconds": {
        +        "type": "number"
        +      },
        +      "effort": {
        +        "type": "string"
        +      },
        +      "effortReason": {
        +        "type": "string"
        +      },
        +      "errors": {
        +        "description": "Runtime errors surfaced during the turn.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "escalationAdvice": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "When the task did not pass, what to change before retrying — including whether raising effort is actually justified."
        +      },
        +      "filesChanged": {
        +        "description": "Union of runtime-observed and worker-claimed edits. observed: false means the runtime recorded no matching patch.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "kind": {
        +              "type": "string"
        +            },
        +            "observed": {
        +              "description": "True if the Codex runtime itself recorded this edit.",
        +              "type": "boolean"
        +            },
        +            "path": {
        +              "type": "string"
        +            },
        +            "why": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "path",
        +            "kind",
        +            "why",
        +            "observed"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "followUps": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "model": {
        +        "type": "string"
        +      },
        +      "notes": {
        +        "type": "string"
        +      },
        +      "reviewChecklist": {
        +        "description": "Risk-based checks the parent orchestrator must still make before accepting.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "scopeViolations": {
        +        "description": "Observed edits outside allowedFiles, matching forbiddenFiles, or escaping the workspace. Non-empty requires deeper review.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "summary": {
        +        "description": "Worker's summary of what it did.",
        +        "type": "string"
        +      },
        +      "trustworthy": {
        +        "description": "False when claims conflict with observed evidence or runtime errors occurred; scrutinize the result before accepting.",
        +        "type": "boolean"
        +      },
        +      "usage": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "cachedInputTokens": {
        +                "type": "number"
        +              },
        +              "inputTokens": {
        +                "type": "number"
        +              },
        +              "outputTokens": {
        +                "type": "number"
        +              },
        +              "reasoningOutputTokens": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "inputTokens",
        +              "cachedInputTokens",
        +              "outputTokens",
        +              "reasoningOutputTokens"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "verdict": {
        +        "description": "Orchestrator verdict from observed scope and configured verification; not copied from the worker's claim.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "verification": {
        +        "description": "Verification outcomes with provenance and execution status; use orchestrator rows to determine what actually ran.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "command": {
        +              "type": "string"
        +            },
        +            "execution": {
        +              "description": "argv or shell = executed here; rejected = refused; skipped = disabled; reported = worker-only. Only successful executed rows prove a command.",
        +              "enum": [
        +                "argv",
        +                "shell",
        +                "rejected",
        +                "skipped",
        +                "reported"
        +              ],
        +              "type": "string"
        +            },
        +            "exitCode": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "output": {
        +              "type": "string"
        +            },
        +            "passed": {
        +              "type": "boolean"
        +            },
        +            "source": {
        +              "description": "Result provenance. Orchestrator rows authoritatively record execution, refusal, or skipping; worker rows are self-reported.",
        +              "enum": [
        +                "orchestrator",
        +                "worker"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "command",
        +            "source",
        +            "execution",
        +            "exitCode",
        +            "passed",
        +            "output"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "verificationMode": {
        +        "description": "Execution policy in force: allowlist, off, or shell.",
        +        "type": "string"
        +      },
        +      "workerClaimedStatus": {
        +        "description": "What the worker reported. Compare against `verdict`.",
        +        "enum": [
        +          "PASS",
        +          "BLOCKED",
        +          "FAILED"
        +        ],
        +        "type": "string"
        +      },
        +      "workerThreadId": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Codex thread id of the worker, for inspecting or resuming it."
        +      }
        +    },
        +    "required": [
        +      "verdict",
        +      "workerClaimedStatus",
        +      "trustworthy",
        +      "workerThreadId",
        +      "model",
        +      "effort",
        +      "effortReason",
        +      "attempt",
        +      "summary",
        +      "notes",
        +      "followUps",
        +      "filesChanged",
        +      "verification",
        +      "verificationMode",
        +      "scopeViolations",
        +      "discrepancies",
        +      "reviewChecklist",
        +      "escalationAdvice",
        +      "durationSeconds",
        +      "usage",
        +      "errors"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / tasks / items / properties / result / description
        Previous value: -"Full single-task result, or null if the task never ran."New value: +"Single-task result at the requested resultDetail, or null if the task never ran."
  5. 2 tool updatesv0.5.1
    • First observeddelegate_task
    • First observeddelegate_tasks

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation4/5

The single, batch, continuation, preflight, and exploration tools have distinct purposes, but delegate_task and delegate_tasks overlap at the single-task boundary; the descriptions explicitly resolve this by directing single tasks to delegate_task.

Naming Consistency4/5

Most names follow snake_case verb_object style (delegate_task, deegate_tasks, continue_task), but routing_preflight is noun-leading and explore is a bare verb, breaking the otherwise predictable pattern.

Tool Count5/5

Five tools cover the core orchestration surface without redundancy: single delegation, batch delegation, continuation, preflight routing, and read-only exploration. The count feels intentionally scoped and appropriate.

Completeness4/5

Core lifecycle operations are covered: delegate, batch, continue, preflight, and explore. Minor gaps exist such as no explicit status/cancel/list tooling, but the parent-owned model makes these nonessential and workable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers