Skip to main content
Glama

Delegate several tasks to Luna workers

delegate_tasks

Delegate a batch of bounded tasks to an AI worker for autonomous implementation, verification, and integration. Use sequential for dependencies or parallel for independent scopes.

Instructions

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.

Input Schema

TableJSON 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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.11.0
    • addedInput schema / properties / tasks / items / properties / handoffReference
      Added value: +{
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Changed34 schema fields changedv0.10.0
    • 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
  3. Changed10 schema fields changedv0.9.0
    • 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. Changed23 schema fields changedv0.8.0
    • 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. First observedv0.5.1

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.