Skip to main content
Glama

Delegate a bounded task to a Luna worker

delegate_task

Delegate a substantial, bounded coding task to an isolated worker with enforced file scopes and automated verification. Returns evidence-backed pass/fail results so you keep architectural control.

Instructions

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

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

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

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

Input Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

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

TDQS

A4.8/5.0
Behavior5/5

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

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

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

Conciseness5/5

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

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

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

Completeness4/5

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

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

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

Parameters4/5

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

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

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

Purpose5/5

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

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

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

Usage Guidelines5/5

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

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

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