hierarchical-codex
This server is a deterministic MCP control plane that manages durable, policy-enforced missions and tasks for Codex subagents.
Create, read, and close missions with locked strategies, budgets, risks, and success criteria.
Allocate policy-checked tasks with roles, models, reasoning effort, dependencies, budgets, and parent-child hierarchy.
Claim, start, heartbeat, release, block, fail, cancel, and supersede tasks using leases and optimistic versioning.
Store and retrieve bounded, content-addressed artifacts.
Submit, check, verify, and commit results through producer/reviewer separation and evidence gates.
Enforce hierarchical token, cost, wall-time, tool-call, and child-count budgets.
Report usage atomically against missions and tasks with hard limit enforcement.
Recover durable mission state and audit events after interruptions or context compaction.
Support idempotent mutations and append-only audit logging for reliable workflow control.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hierarchical-codexStart a Sol/Terra/Luna mission to fix login bugs with a 20-minute budget."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agent Trio V3.5
Agent Trio V3.5 is a cost-aware multi-agent runtime built on Codex App Server. Its default
balanced profile lets the current Sol choose among root completion, one Luna/Terra execution
agent, and an economically admitted compact DAG. The quality profile preserves V3.3's always-delegate,
quality-first behavior. TypeScript handles concurrency, dependencies, budgets, recovery, and patch
integration after Sol makes the semantic decision.
The runtime is designed around three targets relative to direct gpt-5.6-sol/ultra:
cost at or below 40%;
elapsed time at or below 70%;
quality at or above 95%, or within 3 points.
The normal path contains no mission ledger, heartbeat loop, mandatory reviewer, audit chain, or user continuation gate.
Results
The V3.5 three-arm run covers 54 sealed tasks across 18 families: 54 direct
gpt-5.6-sol/ultra, 54 Balanced, and 54 Quality executions. Percentages are relative to direct Sol;
cost uses recorded App Server tokens and the configured price table.
All 54 tasks | Total time | Time vs Sol | Total cost | Cost vs Sol | Mean quality | Minimum |
Direct Sol | 3,593.7s | 100.0% | $3.1811 | 100.0% | 100.00 | 100 |
Balanced | 2,193.0s | 61.0% | $1.4419 | 45.3% | 98.98 | 67 |
Quality | 2,716.9s | 75.6% | $1.7083 | 53.7% | 98.22 | 67 |
On the 12 tasks whose calibration qualified them as economically decomposable, Balanced measured 60.5% of direct Sol time and 47.0% of its cost. Its quality was 98.98% of direct with a 1.02-point gap. Quality measured 53.9% time and 80.1% cost, with 98.22% relative quality and a 1.78-point gap.
Both profiles pass the overall, per-domain, and absolute quality gates. Balanced passes the 70% aggregate time gate but misses the 40% aggregate cost gate, per-family economic gates, 25% planning cost gate, 15% direct overhead gate, and compact-fanout routing gates. The run recorded zero protocol errors, user interventions, and critical failures. V3.5 therefore establishes the quality result and a substantial speed/cost reduction, while its Balanced routing still requires further cost and topology optimization.
The final scores were recalculated from the saved outputs after correcting false-negative wording and formatting rules. The offline pass made zero model calls, changed only 20 quality scores, and preserved all 162 timing and cost records. The full JSON report is attached to the v3.5.0 release.
See Benchmarking for calibration, the three-arm runner, evidence format, and scoring rules.
Related MCP server: LightWorker
Install
Requirements:
Node.js 20 or newer.
A working Codex CLI with App Server support.
Access to the configured Luna, Terra, and Sol models.
Git for isolated parallel writers.
Install from the repository:
npm install
npm run check
npm run install:user
npm run doctor:userinstall:user performs two kinds of user-level change:
registers one
[mcp_servers.agent_trio]entry in~/.codex/config.toml;installs
$agent-trio,$agent-trio-session,$agent-trio-quality, and$agent-trio-quality-sessionunder~/.agents/skills.
The MCP launcher reads assignment-style *.env files directly under the active Codex home before
starting Agent Trio. This makes provider variables such as PRO_API_KEY available to Agent Trio and
its child App Server processes in the desktop app, VS Code, and CLI without storing credentials in
config.toml. Files are loaded in filename order; later assignments override earlier ones. The
loader accepts KEY=value, export KEY=value, quoted values, and comments, but does not execute
shell commands.
It does not install hooks, native agent profiles, a global AGENTS.md, or change the selected root
model. All four skills contain routing instructions only and reuse the same MCP runtime.
Restart the ChatGPT desktop app, reload the VS Code Codex extension, and start a new Codex CLI session after installation. The MCP registration is shared by all three local Codex clients.
Verify agent_trio with /mcp in the ChatGPT desktop app or Codex CLI, or with MCP servers in
the VS Code Codex extension. Then choose one mode:
# ChatGPT desktop app in Codex, VS Code Codex, or interactive Codex CLI
# One turn only; later turns must mention it again.
$agent-trio implement this feature and run the relevant tests
# Related follow-ups in this conversation continue through Agent Trio automatically.
$agent-trio-session implement this feature and run the relevant tests
# Quality-first variants always delegate and retain the wider V3.3 DAG policy.
$agent-trio-quality analyze this repository and report correctness risks
$agent-trio-quality-session build this feature and handle my related follow-upsFor a non-interactive CLI run, keep the $ inside single quotes:
codex exec '$agent-trio research these alternatives and produce a comparison'ChatGPT Chat and Work use @ instead of Codex $ mentions. The non-session skills apply to one
turn. After either session skill is explicitly selected once, related corrections, refinements,
continuations, and questions retain that profile. Say to stop using Agent Trio, ask for normal
Codex, switch to an unrelated task, or start a new conversation to leave session mode.
For foreground invocations, the selected skill passes flat top-level MCP arguments, supplies a
unique run ID, submits the run for immediate durable acceptance, and then waits once for its final
result only after submit succeeds with that same ID. ChatGPT and Codex clients
with MCP Apps support therefore mount the live Monitor near the start of execution instead of after
the run finishes; no separate browser tab is required. Select any planner, leaf, direct agent,
integrator, or final-review thread to inspect its messages, reasoning summaries, commands, file
changes, token usage, cost, and validation state. The component reads cursor-based updates by
calling status through the MCP Apps bridge. Those calls stay inside the component and never invoke
a model. Clients without MCP Apps support keep the local monitorUrl text fallback.
The public MCP contract uses canonical field names and values. In particular, direct calls use
directTier, capabilities are {kind,name,path?} objects, limits are nested under limits, and
fanout-only risk, merge, access, and tasks live under semanticPlan. The runtime also
normalizes a bounded set of unambiguous call shapes emitted by older installed skills or Codex
clients, including permission-label aliases and a split request envelope. If canonical and legacy
fields disagree, the call is rejected rather than silently changing its meaning. Reinstalling after
an upgrade refreshes the skills so new calls use only the canonical contract.
All four skills also pass the current Codex task permission and approval modes to Agent Trio. A Full
access task gives direct agents and execution leaves Full access, including network access;
Workspace access and Read-only tasks remain correspondingly restricted. Approve for me is inherited
through App Server automatic review. Neither skill may request stronger access or approval than
the calling task. Calls made without a skill can set the same context explicitly through MCP
hostAccess/hostApproval or CLI --host-access/--host-approval.
Useful installation commands:
npm run install:user -- --job-root /absolute/job/path
npm run install:user -- --price-table /absolute/prices.json
npm run uninstall:userExecution Model
request
|
v
host Sol balanced semantic route
|-- tiny/indivisible ----------> root completion (no MCP)
|-- one proven work unit ------> one Luna/Terra execution agent
|
`-- 2-3 useful work units -----> host semanticPlan
|
v
deterministic DAG scheduler
|-- Luna leaves
|-- Terra leaves
`-- at most one Sol specialist
|
v
local reduction or Terra integration
|
`-- anomaly-only lazy Sol PlanPatch
quality skill
`-- always delegate: one agent or a 2-5-leaf DAG
CLI / insufficient host context
|
`-- deterministic bounded direct, otherwise one adaptive Sol plan
|-- 1 leaf --> planned single agent
`-- 2-5 leaves --> DAG schedulerThe current root Sol decides root completion versus delegation, direct versus fanout, domain, semantic boundaries, dependencies, model floors, and integration requirements. Balanced fanout requires two independent leaves over 30 seconds and at least 90 seconds of serial work; it defaults to two leaves and uses three only for three substantial streams when that lowers the predicted critical path by at least 20% versus the best two-leaf grouping. Quality retains the 15-second and two-to-five-leaf V3.3 policy. Code handles permissions, launches, joins, concurrency, budgets, cancellation, recovery, and message delivery without rewriting those semantic choices.
Balanced delegates one worker only when at least three matching historical samples predict at most
40% of direct Sol cost and 100% of its latency; otherwise the host Sol keeps the work. For fanout,
matching history applies hard 40% cost and 70% latency admission. A cold start also needs distinct
structural work units and must pass conservative 30% cost and 55% latency limits. Missing prices,
history, or structural evidence cannot prove fanout value, so an already submitted runtime request
falls back to one cheapest sufficient worker. Quality is exempt from these economic vetoes unless
the caller sets maxCostUsd.
A CLI or non-Sol caller uses auto: the runtime takes a zero-model direct route only for a provably
bounded single objective; otherwise one internal Sol turn chooses a single execution agent or a
bounded DAG.
Model Routing
Tier | Primary responsibility |
Luna | Search, extraction, data processing, focused implementation, tests, read-only preparation |
Terra | Recovery/stateful work, coupled debugging, semantic merge, final office writer |
Sol | Planning, difficult algorithms, architecture, security, hidden correctness risks |
Bounded work defaults to Luna. A Balanced DAG has at most one Terra execution node, counting a Terra
writer or Terra integration; office, review, recovery, or synthesis words do not raise unrelated
leaves. A leaf is promoted only when its own evidence shows that stronger reasoning is needed, and
successful sibling work is retained. A normal host plan starts no internal Sol thread. A blocker,
material conflict, contract change, non-mechanical validation failure, or low confidence can lazily
start one internal Sol continuation for a minimal PlanPatch.
Scheduler
Profile defaults:
Limit | Balanced foreground | Balanced durable | Quality foreground | Quality durable |
Concurrent leaves | 3 | 3 | 5 | 5 |
Total leaves | 3 | 5 | 8 | 20 |
Dependency waves | 3 | 3 | 3 | 3 |
Sol specialist leaves | 1 | 1 | 1 | 1 |
Sol replans | 1 | 1 | 1 | 1 |
Balanced is intentionally capped at three foreground leaves. Quality durable auto-research may use up to 20 total leaves while retaining the five-way concurrency and three-wave ceiling.
Independent writers in a clean Git repository receive isolated temporary worktrees. Their patches are ownership-checked, combined, validated, and then applied to the original workspace. Read-only leaves share the request workspace. Dirty and non-Git workspaces use a single writer.
The default model map is:
luna -> gpt-5.6-luna
terra -> gpt-5.6-terra
sol -> gpt-5.6-solCLI
The CLI and Desktop MCP tool use the same runtime core.
For direct CLI use, declare the permission and approval modes of the environment launching the task:
agent-trio run --host-access full-access --host-approval never 'inspect the configured package sources'
agent-trio run --host-access workspace-write --host-approval approve-for-me 'implement the requested repository change'
agent-trio run --host-access read-only --host-approval never 'analyze this project without changing it'Omitting these flags retains the original workspace-scoped, non-approving behavior for compatibility.
agent-trio run "implement the requested feature" -C /workspace
agent-trio run --profile quality "perform a deep repository analysis" -C /workspace
agent-trio run "update the report" -C /workspace --skill documents
agent-trio run "inspect the signed-in page" -C /workspace --plugin browser@openai-bundled
agent-trio submit "build a research dossier" -C /workspace --run-id dossier-01
agent-trio status dossier-01
agent-trio resume dossier-01 --input "repository permission granted"
agent-trio cancel dossier-01
agent-trio benchmark observations.jsonUse --profile balanced|quality to select the default policy; balanced is the default. An explicit
--strategy auto|direct|fanout takes precedence over profile routing. In auto, clearly bounded
single-agent work stays on the deterministic direct path, while other work receives one adaptive
internal Sol plan.
The CLI prints the local Monitor URL before a foreground model run starts and includes it in
submitted and status results. MCP Apps clients use the embedded view; clients that only support
progress notifications receive the local URL as a fallback. Final structured results retain
monitorUrl for compatibility.
MCP Tool
The local Codex clients expose one MCP tool named agent_trio with five actions:
Action | Purpose |
| Execute a foreground request |
| Start a durable background request |
| Read the latest persisted state |
| Continue the original App Server thread with supplied input |
| Interrupt an active run without replaying completed side effects |
All installed skills implement this foreground flow when they call the runtime:
generate unique runId -> submit(runId, monitorFirst=true)
-> on successful response with the same runId: status(runId, wait=true) once
-> on MCP/tool error: stop without statusTool arguments are flat fields such as action, runId, objective, and cwd; callers must not
nest the whole argument object beneath request, input, or arguments. The runtime accepts one
legacy request wrapper for compatibility, but the public schema and documented format remain
flat. risk and merge belong inside semanticPlan only when strategy=fanout; direct requests
omit the plan and all plan-only fields. For compatibility, the runtime discards valid misplaced
top-level hints on direct/auto requests and moves non-conflicting hints into a fanout plan.
The first call returns as soon as the foreground run has a durable snapshot, which gives the host a
completed tool result to attach the component to. The second call waits on that same run locally;
it does not start another planner, leaf, reviewer, or model turn. The component performs its own
cursor-based status long polling over the MCP Apps bridge, and those component calls never enter
the model context. Ordinary durable background submissions omit monitorFirst and return after
acceptance without the one-time foreground wait.
Child App Server threads have project instruction loading, native multi-agent orchestration, and recursive Agent Trio access disabled.
Configuration
Variable | Purpose |
| Durable snapshot and event directory |
| Override model price table |
| App Server provider override |
| Shared service tier |
| Path to the pinned Codex executable |
| Child home: |
| Luna model override |
| Terra model override |
| Sol model override |
| Enable explicitly selected plugin capabilities |
| Planner: |
| Responses-compatible planner endpoint |
| Planner bearer credential |
| Planner model override |
| Planner-only service tier |
| Disable local Monitor capture and URLs |
| Fixed loopback Monitor port override |
The bundled standard-context price table is
config/openai-prices.standard.json. Custom model names or
providers require an explicit price table so admission and hard cost limits can be calculated before
execution.
The planner transport defaults to auto: it uses a Responses-compatible provider when configured
and falls back to Codex App Server. Responses planning is tool-free and uses strict structured
output.
Monitor
The primary Monitor is a self-contained MCP Apps resource attached to the existing agent_trio
tool. It renders inside compatible ChatGPT and Codex clients and calls the same tool with private
cursor and revision fields for bounded long polling. The local loopback web UI remains available to
the CLI and clients without MCP Apps support. Neither presentation starts agents, reviews results,
or participates in scheduling.
App Server completed items and lifecycle notifications are written to a separate bounded
monitor.jsonl stream, while job.json remains authoritative. Token delta notifications are not
stored. The recorder uses a 512 KiB pending-memory ceiling, a 16 KiB per-event ceiling, and an 8 MiB
per-run log ceiling. Both views render one conversation entry per completed message, reasoning item,
tool call, command, or file change, retain bounded UI state, and add no model calls or tokens. The
loopback fallback still listens only on 127.0.0.1 and uses a private per-job-root token.
Development
npm run check keeps the authored Office corpus disabled because generating and qualifying that
release benchmark is intentionally resource intensive. Run it explicitly on a machine with
LibreOffice using:
AGENT_TRIO_RUN_AUTHORED_CORE_TESTS=1 npm test -- tests/authored-core-benchmark-corpus.test.tsnpm run format:check
npm run lint
npm run typecheck
npm test
npm run build
npm run doctor -- --project-onlyThe normal test configuration uses one Vitest worker to keep App Server fixture memory bounded.
Documentation
Available Tools
24 toolsartifact_getRead artifactA
Read a bounded prefix of an artifact by ID. Prefer targeted retrieval over loading full artifacts.
| Name | Required | Description | Default |
|---|---|---|---|
| encoding | No | utf8 | |
| maxBytes | No | ||
| artifactId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, and it does add meaningful behavioral context: it reveals that only a bounded prefix is returned (not the whole artifact) and that reading is the intended behavior. However, it stays quiet on what happens at the bound (truncation vs. error), response format, or whether there's pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is optimally sized at two short sentences with the action front-loaded. The first sentence states precisely the core functionality; the second provides essential operational guidance without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-by-ID operation with a flat parameter list and simple output schema, the description adequately covers the essentials. It clearly states the tool's purpose, the nature of the read (bounded prefix), and the strategic preference for its use. It could be enhanced by touching on error behavior or offset/pagination options, but these are not required for basic operability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameters documented in the description), so the description must compensate. The phrase 'bounded prefix' conceptually maps to maxBytes, giving that parameter implicit meaning, but the description doesn't explicitly explain any of the three parameters' nuances or tradeoffs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action verb ('Read'), identifies the exact resource ('artifact'), and adds critical scoping flavors: 'bounded prefix' and 'by ID'. It clearly distinguishes itself from siblings like artifact_put and communicates that this operation performs a scoped, targeted read rather than a full load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Prefer targeted retrieval over loading full artifacts' implies when to use this tool—for bounded, targeted reads—but stops short of naming explicit alternatives or exclusions. The usage context is implied by this guidance, but no sibling tool is directly mentioned as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
artifact_putStore artifactA
Store bounded content in the content-addressed artifact store. Required fields are taskId, actorId, kind, mimeType, content, encoding, and idempotencyKey. Do not send missionId. Return artifact references instead of copying large content into agent messages.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| taskId | Yes | ||
| actorId | Yes | ||
| content | Yes | ||
| encoding | Yes | ||
| metadata | No | ||
| mimeType | Yes | ||
| idempotencyKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses that content is 'bounded,' that the store is content-addressed, and that the tool returns artifact references rather than content. However, it does not explain idempotency behavior despite requiring an idempotencyKey, nor overwrite/dedup semantics or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each earning its place: purpose, required fields, and a usage/return strategy. Front-loaded with the core action and zero filler. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex (8 params, enum, nested metadata, no output schema, no annotations), yet the description leaves significant gaps: no return-reference format, no idempotency semantics, no parameter meaning beyond names, no size-bound detail. The missionId warning hints at a known pitfall but does not fill the completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It merely lists the required field names (already visible in the schema's required array) and warns against missionId. It does not explain the meaning or proper values of encoding, kind, metadata, mimeType, or content. The only real added semantic value is the missionId exclusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Store bounded content in the content-addressed artifact store.' This clearly distinguishes it from the sibling artifact_get (retrieval) and other mission/task/result tools. The 'content-addressed' qualifier adds mechanism-level specificity beyond the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides actionable usage context: required fields are listed, 'Do not send missionId' is an explicit exclusion, and the guidance to 'Return artifact references instead of copying large content into agent messages' tells agents when this tool should be used (large content scenarios). Does not name a specific alternative tool, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
budget_reportReport resource usageA
Atomically add token, cost, wall-time, and tool-call usage to a mission and optionally a task. Hard limits are enforced.
| Name | Required | Description | Default |
|---|---|---|---|
| usage | Yes | ||
| taskId | No | ||
| actorId | Yes | ||
| missionId | Yes | ||
| idempotencyKey | Yes | ||
| expectedTaskVersion | No | ||
| expectedMissionVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are completely absent, so the description must disclose behavior. It mentions 'Atomically add' and 'Hard limits are enforced', which are important behavioral traits. However, it does not specify what happens when hard limits are exceeded (e.g., error, partial addition) or whether there are side effects. The atomicity and limit enforcement are valuable but not complete behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that includes the essential action, resources, targets, and constraints. It is front-loaded with the primary action and efficient, though it could benefit from a note about idempotency, but that is a completeness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema, nested usage object), the description is insufficient. It does not explain the idempotencyKey, optimistic concurrency via version fields, what 'hard limits' means specifically, or how usage is aggregated. The tool appears to be a critical financial/usage tracking point, but the description leaves many behavioral aspects for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. The description mentions 'token, cost, wall-time, and tool-call usage', which correspond to the 'usage' nested object fields. However, it does not explain the required parameters like missionId, actorId, expectedMissionVersion, idempotencyKey, or expectedTaskVersion. It also doesn't clarify the purpose of idempotencyKey or version fields, which are critical for correct use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (atomically add) and specific resources (token, cost, wall-time, tool-call usage) to a mission and optionally a task. This distinguishes it from other tools like task_heartbeat or task_commit, which have different purposes. The atomicity hint and hard limits are also mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this tool is used for reporting resource usage to a mission/task, but it does not explicitly state when to use it vs. alternatives. Given the context of mission/task management, it's implied that this is for periodic reporting or at the end of a task, but not explicit. There's no mention of when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
children_statusList compact child statusA
Read direct children of a coordinator task as compact status rows (ids, status, version, summary, leaseExpired). Call once after wait_agent. Do not poll with task_get. If leaseExpired, cancel instead of waiting again.
| Name | Required | Description | Default |
|---|---|---|---|
| parentTaskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the burden. It explicitly says 'Read', implying a non-mutating operation, and discloses the compact row shape and the behavioral rule around leaseExpired. It could explain more about error behaviors or sorting, but it gives solid transparency for a simple list-like read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences carry the operation, the output, the invocation pattern, the negative polling rule, and the cancellation guidance. Every sentence earns its place and is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is largely complete: it names the input, the output fields, the correct timing after wait_agent, and the special leaseExpired behavior. Minor details like pagination or specific HTTP responses are not covered, but they are not necessary for invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description coverage for parentTaskId, but the description compensates by identifying the parameter as a coordinator task whose direct children are listed. This gives the parameter a clear semantic role, even though it does not explicitly spell out the parameter name in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation via the verb 'Read' and a precise resource: 'direct children of a coordinator task.' It also enumerates the returned fields (ids, status, version, summary, leaseExpired), making it easy to distinguish from more generic tools like task_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'Call once after wait_agent' and 'Do not poll with task_get.' The description also routes the agent in the leaseExpired case directly to cancellation, which is exactly the kind of when-to-use guidance that separates this tool from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mission_closeClose missionA
Complete a mission only after every task is terminal. Failed tasks require an explicit acceptance decision.
| Name | Required | Description | Default |
|---|---|---|---|
| actorId | Yes | ||
| missionId | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes | ||
| acceptFailedTasks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool enforces terminal-state and acceptance conditions, but does not explain what happens on precondition failure, the irreversible nature of closing, versioning semantics, or effect of idempotencyKey. Some transparency is provided, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, followed by a key condition and a requirement. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, no output schema, and no annotations, yet the description only covers the mission-completion precondition and acceptance decision. It omits critical context such as optimistic locking via expectedVersion, idempotencyKey usage, actorId semantics, and what the response indicates on success or failure. The description is too sparse for a state-transition tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It only hints at acceptFailedTasks through 'explicit acceptance decision' and says nothing about missionId, actorId, expectedVersion, or idempotencyKey. This is insufficient for a 5-parameter tool with no schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the operation as 'Complete a mission' on the mission resource, distinguishing it from mission_create and mission_get. The precondition 'only after every task is terminal' adds specificity without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use the tool: only after every task is terminal, and that failed tasks require an explicit acceptance decision. However, it does not explicitly name alternative tools or exclusion scenarios beyond the stated precondition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mission_createCreate missionA
Create the durable mission record before spawning agents. strategy is locked at create (default fanout). directorPlan is required only for director_plan: a workspace-relative .md path to the plan file Sol wrote in the project folder. Forbidden otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| risk | Yes | ||
| budget | No | ||
| actorId | Yes | ||
| portrait | No | ||
| strategy | No | ||
| objective | Yes | ||
| constraints | No | ||
| directorPlan | No | ||
| idempotencyKey | Yes | ||
| successCriteria | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses key stateful behavior: strategy is locked at creation time, default fanout applies, and directorPlan is permitted only for a director_plan strategy and forbidden otherwise. It does not mention idempotency semantics, but it covers the most critical creation-time constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler. High-value constraints and workflow order are front-loaded, and the conditional directorPlan guidance is compact yet complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the caller has 10 parameters, nested objects, no output schema, and no annotations, the description explains only the strategy/directorPlan relationship and the 'before spawning' workflow. It does not address idempotency usage, risk values, budget, or portrait semantics, leaving an agent with meaningful gaps for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds real meaning for strategy (default fanout, locked at create) and directorPlan (workspace-relative .md path required only for director_plan, forbidden otherwise). However, 10 parameters are involved, and required fields such as objective, successCriteria, risk, actorId, and idempotencyKey are not explained. The description covers only a fraction of the parameter space.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb + resource: 'Create the durable mission record', and adds context about when this happens ('before spawning agents'). This differentiates it clearly from sibling tools like mission_get and mission_close, which operate on an already-existing mission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states clear context for use: it must be called to create a durable mission record before any agents are spawned. It gives a temporal placement in the workflow, although it does not explicitly list alternatives or exclusions. This is sufficient to guide an agent on when to invoke it versus the task-level sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mission_getGet missionA
Read a mission and optionally its task, artifact, claim, and review state. Treat this result as authoritative over chat summaries. The mission row includes strategy, portrait, and directorPlan (workspace-relative plan file path) even when includeDetails is false.
| Name | Required | Description | Default |
|---|---|---|---|
| missionId | Yes | ||
| includeDetails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description correctly signals a non-mutating read and discloses an important behavior: strategy, portrait, and directorPlan are returned even when includeDetails is false. It could go further on return format or failure semantics, but it covers the main surprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two informative sentences, front-loaded with the primary action and followed by an important caveat. Every clause adds value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool, the description conveys the core behavior and a key semantic nuance of includeDetails. The absence of an output schema and the lack of explicit return-value details is a minor gap, not a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% but the description adds real meaning for includeDetails, explaining that core mission-row fields are present regardless of that flag. missionId remains minimally described, but its basic identity purpose is self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear read operation with a specific resource (mission) and optional related state (task, artifact, claim, review). It is distinguishable from mission_create and mission_close, though it does not explicitly contrast itself with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong contextual guidance by saying the result is authoritative over chat summaries, which tells the agent when to prefer this tool. It does not list explicit alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recovery_snapshotGet recovery snapshotA
Read durable mission state and a bounded audit-event page after interruption, compaction, or client restart.
| Name | Required | Description | Default |
|---|---|---|---|
| missionId | Yes | ||
| eventLimit | No | ||
| afterSequence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature via 'Read' and mentions the bounded audit-event page, which adds some behavioral context. However, it doesn't address error cases, permission requirements, or what happens if the mission doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the action ('Read durable mission state'). Every word earns its place, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, no annotations, and no output schema. The description gives useful context about when and why to use it, but it omits parameter semantics and return details. For a recovery-related tool, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter-specific info. The phrase 'bounded audit-event page' hints at eventLimit and afterSequence, but it doesn't explain their meaning or the role of missionId. With three parameters and no schema descriptions, the description fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and identifies the resource as 'durable mission state and a bounded audit-event page', which clearly distinguishes it from sibling tools like mission_get or task_get. It also specifies the recovery contexts (interruption, compaction, client restart), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'after interruption, compaction, or client restart'. This gives clear context for its intended usage, though it does not explicitly name alternatives or exclusions relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
result_checkCheck candidate resultA
Independently check a candidate. The reviewer cannot be the producer. Luna verifiers call this on review_target_task_id without claiming. Rejection returns the task to ready.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| taskId | Yes | ||
| approved | Yes | ||
| reviewerId | Yes | ||
| evidenceRefs | No | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the separation-of-duties rule, the non-claiming invocation pattern, and the state effect of rejection. It does not explain success behavior or idempotency, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding value: action, constraint, outcome. No fluff, well front-loaded, and easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and state-changing behavior, but the description omits critical details like approval outcomes, idempotency semantics, expectedVersion usage, and the role of notes/evidence. It is not sufficient for an agent to fully predict the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, but it only indirectly references taskId (as 'review_target_task_id') and approved (via 'Rejection'). The remaining parameters (reviewerId, expectedVersion, notes, evidenceRefs, idempotencyKey) are not explained, failing to add meaningful semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Independently check a candidate') and provides a resource context. It distinguishes from submission tools by emphasizing an independent review, but it does not explicitly contrast with the sibling 'result_verify' tool, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage scenario: 'Luna verifiers call this on review_target_task_id without claiming.' It also specifies the reviewer/producer separation constraint. It lacks an explicit 'use this instead of X' exclusion but otherwise offers actionable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
results_gate_and_commitGate and commit low-risk childrenA
For low or medium risk only, record check and verify reviews then commit in one call. Does not skip gates. High or critical work must use luna-verifier plus result_check, result_verify, and task_commit. Children must already be candidate. On a direct mission, Sol (not the Luna producer) may be the reviewer without parentTaskId.
| Name | Required | Description | Default |
|---|---|---|---|
| decisions | Yes | ||
| reviewerId | Yes | ||
| parentTaskId | No | ||
| idempotencyKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the transparency burden. It discloses that the tool combines multiple gated review/commit steps, does not skip gates, and has preconditions and reviewer eligibility rules. It still does not describe error behavior, reversibility, or auth expectations, but it provides substantial behavioral context beyond the name and title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the primary constraint, and every sentence provides a distinct piece of information: currency, alternative path, prerequisite, and reviewer edge case. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Routing and usage context are strong, and the sibling tool list makes the high-risk alternative clear. However, given no output schema and no annotations, the description does not explain post-call behavior, failure semantics, or what happens when gates are not satisfied. It is sufficient for selection but does not fully ground invocation in edge or failure cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description needs to compensate, but it does not explain the essential fields. It only indirectly hints at `parentTaskId` and the concept of the reviewer, while leaving `reviewerId`, `decisions`, `idempotencyKey`, and `expectedVersion` unexplained at the semantic level. An agent consulting the description alone would struggle to construct a valid request with confidence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: front-line work is recorded, check and verify reviews are done, then commit is performed in one call, strictly for low or medium risk children. It also distinguishes this tool from the high-risk path by explicitly naming the alternative sequence of tools. An agent can understand exactly what this tool is for and what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage direction is explicit: use it for low or medium risk only; do not use it for high or critical work, which must go through luna-verifier plus result_check, result_verify, and task_commit. It also includes a prerequisite ('children must already be candidate') and a special direct-mission reviewer rule, giving strong when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
result_submit_candidateSubmit candidate resultA
Submit a worker result as candidate only. This closes the producer lease; a different reviewer must check it. artifactRefs must belong to this taskId — call artifact_put on the same task first, and do not attach child-task artifacts. Include actual usage when known. summary max 500 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| usage | No | ||
| claims | Yes | ||
| taskId | Yes | ||
| summary | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| unresolved | No | ||
| artifactRefs | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states a key side-effect ('closes the producer lease') and the candidate-only nature requiring a reviewer. It also includes constraints on artifactRefs and summary length. It does not cover failure semantics or idempotency, but the most critical behaviors are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The first sentence states the purpose, the second exposes the side-effect and review requirement, and the third packs actionable constraints. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex operation with 10 parameters, nested objects, no output schema, and no annotations. The description covers key constraints but omits semantics for leaseToken, expectedVersion, idempotencyKey, claims, and unresolved, and doesn't explain the subsequent workflow (e.g., which tool to use for review). It is not complete enough for an agent to invoke correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only adds meaning to artifactRefs (must belong to taskId, no child-task artifacts), summary (500 char max), and usage (include when known). The remaining seven parameters—leaseToken, expectedVersion, idempotencyKey, taskId, workerId, claims, unresolved—receive no explanation, leaving the agent to infer their roles from names and schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Submit a worker result as candidate only.' It immediately distinguishes itself from finalization tools by stating 'a different reviewer must check it' and clarifies it closes the producer lease. This clearly separates it from siblings like result_check or task_commit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: this is for candidate submission that requires review, not final commit. It gives actionable guidance like 'artifactRefs must belong to this taskId' and 'call artifact_put on the same task first.' However, it does not explicitly name sibling tools as alternatives, which would make the routing even clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
result_verifyVerify checked resultC
Apply the second evidence gate to a checked result. Approval produces verified, not committed.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| taskId | Yes | ||
| approved | Yes | ||
| reviewerId | Yes | ||
| evidenceRefs | No | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only says 'Approval produces verified, not committed,' which hints at the workflow but fails to disclose idempotency details, version conflict handling, or side effects. This is inadequate for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. But each sentence is concise without being thorough. It is not overly long, but the brevity leaves out critical context. Front-loaded information is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A relatively complex workflow with 7 parameters, no annotations, and no output schema. The description is too sparse to guide an agent on correct invocation. It lacks context on expected versions, idempotency, and reviewer assignment. It feels like a placeholder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all 7 parameters. It does not mention any parameters, so the meaning of `evidenceRefs`, `expectedVersion`, or `idempotencyKey` is not clarified. Baseline for zero coverage and 7 params should be lower than 3, but the schema itself has descriptive names and types. Still, the description adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool applies a second evidence gate to a checked result, which is specific about the resource and action. However, it could be clearer about what 'verify' means in contrast to 'check' and 'commit' among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'second evidence gate' implies a sequential step after checking, but there is no mention of when not to use it or alternatives like result_check or task_commit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_allocateAllocate taskB
Allocate a policy-checked work package before native spawn_agent. Put the returned task_id into the child's prompt. Root role depends on mission.strategy: fanout/director_plan/pipeline require Terra; direct allows one root Luna. fanout Terra objective max 2000 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| risk | Yes | ||
| role | Yes | ||
| model | Yes | ||
| budget | No | ||
| actorId | Yes | ||
| maxEffort | No | ||
| missionId | Yes | ||
| objective | Yes | ||
| allowedTools | No | ||
| dependencies | No | ||
| doneCriteria | Yes | ||
| outputSchema | No | ||
| parentTaskId | No | ||
| capabilityPack | Yes | ||
| idempotencyKey | Yes | ||
| reasoningEffort | Yes | ||
| parentLeaseToken | No | ||
| inputArtifactRefs | No | ||
| expectedParentVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It adds useful behavior about policy-checking, returned task_id usage, and root role constraints (Terra vs Luna). However, it does not disclose idempotency semantics, permission requirements, side effects, or failure behavior, which are significant for a mutation-like allocation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly written in four short sentences, all carrying useful information. It front-loads the primary action, then gives follow-up behavioral workflow, then adds role/strategy constraints. There is no filler, redundancy, or over-explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool (19 parameters, 10 required, zero schema descriptions, nested objects, no output schema) and the description is far from sufficient on its own. It covers a small fraction of the required calling contract and leaves too many required fields—ID security keys, done criteria, risk, capability pack, budget options—without any guidance. The description's useful hints are not enough to make the tool minimally callable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only adds semantic value for a few parameters: objective has a 2000-character constraint for fanout Terra, role/model depend on mission.strategy, and the task_id return value is described. Most required parameters such as actorId, idempotencyKey, doneCriteria, risk, capabilityPack, and reasoningEffort are left entirely unexplained by the description, which is critical in a 19-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Allocate a policy-checked work package before native spawn_agent.' It also clarifies the tool's role in the lifecycle by saying the returned task_id should be placed into the child's prompt. It does not explicitly differentiate itself from sibling tools like task_claim or task_start, but the 'before native spawn_agent' constraint gives a clear role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context: it must be called before native spawn_agent and the returned task_id must be placed into the child's prompt. It also provides situational guidance based on mission.strategy and fanout Terra objective limits. It does not explicitly rule out alternatives or list when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_blockBlock taskC
Record a blocking dependency while retaining the lease. Continue heartbeats or release the task.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| taskId | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It mentions retaining the lease and hints at heartbeats or release, but it does not explain side effects such as state changes, whether the blocking dependency is recorded in a persistent way, or any implications for the worker or task. This is insufficient for a tool that mutates task state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely brief—two sentences with no fluff—which is positive for conciseness. However, the wording is cryptic and fails to convey essential information clearly. It reads more like a placeholder than a well-structured explanation, so it does not earn a high score despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 required parameters, no annotations, and no output schema, this description is severely inadequate. It does not explain the meaning or purpose of the parameters, the expected response, or any prerequisites. This leaves an agent without enough context to safely or correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the six required parameters (taskId, workerId, leaseToken, expectedVersion, idempotencyKey, reason). The schema provides only basic types and constraints; the tool's description adds zero semantic meaning about how these parameters are used or their roles in the blocking action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it 'Record a blocking dependency while retaining the lease,' which indicates a specific action distinct from releasing or failing a task. However, the phrase 'Continue heartbeats or release the task' is ambiguous, making it unclear whether the tool itself executes those actions or offers instructions. This muddies the primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives like task_release or task_fail. The mention of 'retaining the lease' implies a scenario where the lease must be kept, but there is no direct instruction about prerequisites or conditions that necessitate this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_cancelCancel taskA
Cancel a non-terminal task after its direct children are terminal. Child cancellation requires the running direct parent's version and lease token.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| taskId | Yes | ||
| actorId | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes | ||
| parentLeaseToken | No | ||
| expectedParentVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a prerequisite (parent's version and lease token) and the condition (children terminal), but does not explain what cancellation actually does (state change, reversibility, side effects) or mention permissions, idempotency, or failure behavior. It adds some value but leaves many behavioral aspects obscure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core action, and contains zero filler. Every word contributes to understanding the precondition and the unique parameter requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, no annotations, and no output schema, yet the description is only a single line of conditions. It omits essential context such as the meaning of expectedVersion, idempotencyKey, actorId, and reason, and does not explain the effect of cancellation on the task hierarchy. It is far from complete for a complex lifecycle operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It only hints at two parameters (expectedParentVersion and parentLeaseToken) via 'direct parent's version and lease token', but it does not explain the other five required parameters (taskId, actorId, expectedVersion, reason, idempotencyKey) or their roles. This is insufficient given the high parameter count and lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cancel') on a specific resource ('non-terminal task') with a clear precondition ('after its direct children are terminal'). It also mentions the unique requirement for parent's version and lease token, distinguishing it from sibling tools like task_fail or task_supersede.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: only after direct children are terminal. However, it does not explicitly exclude cases (e.g., tasks with non-terminal children) or mention alternative tools, so it stops short of a full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_claimClaim taskB
Atomically claim a ready task using optimistic versioning. The returned lease token is required for worker mutations.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| workerId | Yes | ||
| leaseSeconds | No | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It adds useful behavior details: atomicity, optimistic versioning, and the lease token requirement. Still, it omits failure modes (e.g., version mismatch, task already claimed) and lease lifecycle behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and packs in atomicity, versioning, and lease token guidance. Every word contributes meaning, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, plus five parameters and a complex sibling group, the description is too sparse. It lacks failure semantics, idempotency behavior, lease expiration details, and explicit guidance on how this tool relates to task_allocate, task_start, and task_commit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not explain any parameter directly. 'Optimistic versioning' only implicitly hints at expectedVersion, and 'lease token' loosely relates to leaseSeconds. taskId, workerId, and idempotencyKey semantics remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Atomically claim'), the resource ('a ready task'), and the mechanism ('optimistic versioning'). It conveys the core purpose distinctly from generic wording, though it does not explicitly differentiate itself from sibling tools like task_allocate or task_start.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Atomically claim a ready task' implies this is the step before worker mutations, and the lease-token requirement gives downstream context. However, it does not state when to prefer this over sibling tools or mention exclusions such as tasks not in ready state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_commitCommit verified taskB
Commit a verified task after every direct child is terminal. This may unlock dependent tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| actorId | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only mentions a possible side effect (unlocking dependents). It omits crucial details like whether the commit is destructive, permission requirements, failure modes, or how idempotency and versioning work, leaving significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and condition, and contains no filler. Every word contributes essential information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four required parameters, no output schema, and no annotations, the description is far from complete. It explains the trigger but not the meaning of parameters, expected behavior, error states, or operational prerequisites, leaving an agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description makes no reference to any of the four parameters (taskId, actorId, expectedVersion, idempotencyKey). The agent must rely solely on schema constraints, which lack semantic meaning (e.g., why expectedVersion is needed), so the description adds no parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Commit a verified task') and specifies a precondition ('after every direct child is terminal'), which distinguishes it from sibling tools like task_fail or task_cancel. It does not explicitly contrast with alternatives but is specific enough to convey its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after every direct child is terminal' provides explicit when-to-use context, and 'This may unlock dependent tasks' indicates a beneficial outcome. However, it does not state when not to use it or suggest alternatives, so it lacks exclusions but is clear on timing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_failFail taskA
Record a definitive worker failure, clear its lease, and charge final usage. Future sibling allocation counts actual failed usage instead of the full reservation.
| Name | Required | Description | Default |
|---|---|---|---|
| usage | No | ||
| reason | Yes | ||
| taskId | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. It clearly states that this tool clears the lease and charges usage, and it explains the impact on future sibling allocations. It does not mention error handling or edge cases, but the core side effects are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and to the point. It contains no redundancy or irrelevant information, making it an efficient and well-structured summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives essential operation details but lacks broader context, such as prerequisites (e.g., must have an active lease), error scenarios, or how this fits into the overall task lifecycle. The mention of future sibling allocations provides some context, but it does not fully round out the operational picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no explanation of any of the 6 parameters (taskId, workerId, leaseToken, expectedVersion, idempotencyKey, reason) or the nested usage object. Although parameter names are self-explanatory, the schema coverage is 0%, and the description does not compensate by clarifying their roles or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: recording a definitive worker failure, clearing its lease, and charging final usage. It also distinguishes this from other task actions by mentioning 'definitive' and the actual-usage accounting, which sets it apart from cancellation or release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for definitive worker failures) and contrasts it with the alternative of counting full reservation vs actual failed usage. However, it does not explicitly name alternative tools or provide a decision tree, so it falls short of a fully explicit usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_getGet taskC
Read the authoritative task version, lease, assignment, inputs, budget, and status before mutating it.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions reading an 'authoritative' version and a set of related entities before mutation, but it does not disclose auth requirements, mutability side effects, Didžiuliai: no annotations. Because low annotation coverage, full burden. It adds that there is a status (status-quo) but no detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, with primary action 'Read ... task ... before mutating it' front-loaded. It gives a compact overview.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a single-parameter getter used before mutation in a workflow. But no output_schema, no annotation, no description of param details, absence of explicit sibling differentiation and mutation workflow context. Given many siblings and the mutation function, this is incomplete for a minimal contextual workload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one required parameter (taskId) with no description. There is 0% schema coverage, and the description does not explain parameter meanings, formats, or default behavior. No compensation in description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and names the resource ('authoritative task version') but does not explicitly distinguish from sibling mutation tools. It lists several components (lease, inputs, budget status) before mutation, which adds scope clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance is given. The phrase 'before mutating it' implies a mutation workflow, but no alternatives or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_heartbeatRenew task leaseA
Renew an active lease. Use this during long tool calls; an expired lease may be reclaimed by another worker.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| leaseSeconds | No | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It mentions the consequence of an expired lease (reclaimed by another worker), which is useful. However, it does not disclose that this operation modifies state, bumps version, or handles idempotency, leaving some behavioral aspects implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no extraneous filler. Every word adds value, stating purpose and usage timing efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no annotations, and no output schema, the description is incomplete. It explains the core purpose but omits return values, error conditions, parameter semantics, and lifecycle details needed for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter explanations. The tool has six parameters including leaseToken, expectedVersion, and idempotencyKey, but the description does not clarify their purpose or required formats, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renews an active lease, using a specific verb (renew) and resource (active lease). This distinguishes it from sibling tools like task_release, task_fail, or task_block, which handle other lifecycle actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use during long tool calls to prevent lease expiry, which is a clear when-to-use context. It does not name alternatives or exclusion conditions, but the context is unambiguous for an experienced agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_releaseRelease taskA
Return a leased/running/blocked task to ready when the current worker cannot continue. Include a concrete reason.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| taskId | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the state transition ('to ready') and the need for a reason, but omits critical behavioral details like the invalidation of lease tokens, versioning implications, or idempotency guarantees. It adds some value but is not rich enough for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose, and contains no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 required parameters, no output schema, no annotations, 0% schema descriptions), this description is far too sparse. It omits concurrency control details, parameter semantics, and post-condition behavior, making it incomplete for an agent to use safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only explains the 'reason' parameter ('Include a concrete reason'), leaving taskId, workerId, leaseToken, expectedVersion, and idempotencyKey entirely unexplained. This is insufficient for an agent to correctly use the tool without additional assumptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return a leased/running/blocked task to ready') and the specific condition ('when the current worker cannot continue'). This distinguishes it from sibling tools like task_fail or task_cancel, which have different state transitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete trigger condition ('when the current worker cannot continue'), but does not explicitly mention alternatives or when not to use it. The context is clear, but lacks the 'when-not' guidance that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_set_effortSet task reasoning effortA
Change model reasoning effort while a task is ready and unleased, within its recorded maximum. Child changes require direct-parent authority.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| taskId | Yes | ||
| actorId | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes | ||
| reasoningEffort | Yes | ||
| parentLeaseToken | No | ||
| expectedParentVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the operation is a change (implying mutation), specifies preconditions ('ready and unleased'), a ceiling ('within its recorded maximum'), and an authorization requirement for child tasks. This adds value beyond the schema, though it omits details like idempotency handling or error behavior. No contradiction with annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the key action is front-loaded. Every word contributes meaning (e.g., 'ready and unleased', 'recorded maximum', 'direct-parent authority'). This is appropriately concise for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 8 parameters, no output schema, and no annotations, so the description must provide substantial context. It covers only the main purpose and two constraints, but fails to explain critical aspects such as the meaning of 'unleased', the exact authority chain, the versioning requirements, and the expected behavior on failure. An agent with this sparse description would struggle to use the tool correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it provides no parameter-level guidance. It does not even mention the 'reasoningEffort' parameter or clarify the meanings of 'taskId', 'expectedVersion', or 'idempotencyKey'. The schema itself lacks descriptions, leaving the agent to infer from parameter names and the enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Change' and resource 'model reasoning effort', and adds scoping conditions ('while a task is ready and unleased, within its recorded maximum'). This clearly distinguishes it from sibling task tools like task_allocate or task_commit, which handle different aspects of task lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage condition: the task must be ready and unleased, and child changes require direct-parent authority. It implies when to use this tool (when adjusting reasoning effort under these constraints) but does not explicitly mention alternatives or when not to use it, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_startStart taskC
Move a leased task to running and establish its result producer.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ||
| workerId | Yes | ||
| leaseToken | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining side effects. It only states the state change without detailing concurrency controls, error conditions, or what 'result producer' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core purpose without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The minimal description fails to provide sufficient context about the task lifecycle, the role of lease tokens, expected versioning, or how this fits with sibling operations. The schema constraints are present but unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema lists 5 parameters with constraints but no descriptions. The description does not explain the meaning or purpose of any parameter, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: moving a leased task to running and establishing a result producer. This is specific and distinguishes it from sibling tools like task_claim or task_allocate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. It does not mention prerequisites, sequencing with other task lifecycle tools, or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_supersedeSupersede failed taskB
Link a failed task to a viable sibling replacement for audit and closure. Child supersession requires direct-parent authority.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| taskId | Yes | ||
| actorId | Yes | ||
| idempotencyKey | Yes | ||
| expectedVersion | Yes | ||
| parentLeaseToken | No | ||
| replacementTaskId | Yes | ||
| expectedParentVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the full burden for behavioral disclosure. It mentions the parent-authority constraint, but fails to disclose consequences like version checks, idempotency implications, side effects on the failed task or replacement, reversibility, or expected result behavior. This is a significant transparency gap for a mutating audit/closure operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the action. Every clause adds useful meaning—the main purpose is stated immediately and the authority condition follows without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—8 parameters, no annotations, no output schema, and a mutating operation—the description is far too terse. It leaves out preconditions (task state requirements, replacement viability), the meaning of versioning/idempotency fields, and what the tool returns or changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 8 parameters with 0% description coverage, yet the description does little to explain them. It loosely maps 'failed task' and 'replacement' to taskId and replacementTaskId, and the parent-authority note hints at parentLeaseToken/expectedParentVersion, but actorId, reason, expectedVersion, and idempotencyKey remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the primary operation: linking a failed task to a viable sibling replacement for audit and closure. It distinguishes from sibling tools like task_fail or task_cancel by introducing the replacement concept, though 'sibling' is domain jargon and not fully elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the context (a failed task with a replacement available) and states one specific precondition: child supersession requires direct-parent authority. However, it does not explicitly contrast this with alternatives such as task_fail, task_cancel, or task_release, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.3.0- Changed
mission_create3 fields changed- added
Input schema / properties / directorPlanAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / properties / portraitAdded value: +{ + "additionalProperties": false, + "properties": { + "ambiguity": { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "coupling": { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "parallelism": { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "validator": { + "enum": [ + "strong", + "weak", + "none" + ], + "type": "string" + } + }, + "required": [ + "ambiguity", + "coupling", + "parallelism", + "validator" + ], + "type": "object" +} - added
Input schema / properties / strategyAdded value: +{ + "enum": [ + "direct", + "fanout", + "director_plan", + "pipeline" + ], + "type": "string" +}
3 tool updates
v0.2.0- Added
children_status - Changed
result_submit_candidate1 field changed- changed
Input schema / properties / summary / maxLengthPrevious value: -20000New value: +500
- Added
results_gate_and_commit
22 tool updates
v0.1.0- First observed
artifact_get - First observed
artifact_put - First observed
budget_report - First observed
mission_close - First observed
mission_create - First observed
mission_get - First observed
recovery_snapshot - First observed
result_check - First observed
result_submit_candidate - First observed
result_verify - First observed
task_allocate - First observed
task_block - First observed
task_cancel - First observed
task_claim - First observed
task_commit - First observed
task_fail - First observed
task_get - First observed
task_heartbeat - First observed
task_release - First observed
task_set_effort - First observed
task_start - First observed
task_supersede
TDQS
Scored across 24 tools
The tools are grouped by resource (mission/task/artifact/result) and most have clear roles, but several lifecycle transitions overlap: task_release, task_fail, task_cancel, and task_supersede all end or abandon work in subtly different ways, and result_check, result_verify, and results_gate_and_commit represent closely related review stages. Descriptions help, but an agent could still misselect the wrong transition for a given task state.
The dominant verb_noun pattern (task_claim, task_start, mission_create, artifact_put) is consistent and predictable across the set. Minor exceptions like recovery_snapshot, children_status, and results_gate_and_commit break the pattern slightly but remain readable and understandable.
24 tools is at the high end and feels heavy, even for a hierarchical orchestration server. The count is justified by the broad lifecycle, but several review/commit and task-failure tools could plausibly be consolidated to reduce selection overhead.
The tool set covers the full mission/task lifecycle, artifact storage, result verification gates, budget accounting, cancellation, failure handling, supersession, and recovery. Minor gaps remain, such as no general mission/task listing or dedicated result retrieval endpoint, but the core workflow has no obvious dead ends.
Maintenance
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceGoverned agent execution gateway for LLM workflows, providing deterministic FSM-based execution, audit trails, and idempotency guarantees via MCP.5MIT
- AlicenseAqualityAmaintenanceLocal-first multi-agent delegation and approval control for Codex via MCP, with persistent task DAG, isolated worktrees, and a web console.141MIT
- FlicenseNot gradedqualityBmaintenanceDurable MCP control plane for coordinating agent networks, with message ledger, idempotent delivery, and cryptographic identity for each orchestrator.-
- AlicenseNot gradedqualityBmaintenanceA durable MCP control plane for starting, observing, steering, continuing, cancelling, and handing off long-running coding agents, with bounded MCP calls and persistent worktrees.5 npmMIT