Coordination Memory MCP
It is an MCP server that provides an append-only coordination memory for multi-agent and human work, backed by SQLite, with assignment tracking, review gates, acceptance contracts, and a local dashboard.
Register actors, workspaces, and teams, and list or inspect them.
Create, claim, cancel, or supersede assignments with optimistic concurrency and lease-based run tracking.
Record run liveness, heartbeats, checkpoints, resume briefs, handoffs, and arbitrary structured events.
Raise non-blocking attention items and request or respond to human interventions.
Let integrators review, accept, or reject submitted events and handoffs; separate agent-completed status from integrator-accepted truth.
View coordination state through team boards, assignment/run details, pending reviews, and human briefs.
Create goal-level acceptance contracts with machine-checkable invariants, deviations, sealing, verification reporting, evaluation, repair loops, and independent acceptance.
Export accepted projections for durable, auditable storage such as Git.
Run a local web dashboard for visual management and read-only APIs, with workspace archiving as the only write action.
Enables exporting the accepted ledger as a durable, auditable projection that can be committed into a Git repository for long-term record keeping.
Scaffolds a copilot-instructions.md file so that GitHub Copilot agents can follow the coordination memory protocol for task management.
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., "@Coordination Memory MCPAssign task 'update-docs' to agent-01"
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.
Coordination Memory MCP
Append-only coordination memory for multi-agent (and agent + human) work, exposed as a local Model Context Protocol (MCP) server backed by SQLite — plus a local web management dashboard and goal-level acceptance contracts.
It records who owns which task, run liveness, human interventions, handoff evidence, and integrator review decisions. Only an integrator can promote work into the accepted ledger, which you can export as a durable, auditable projection (for example, committed into Git).
Design stance: the MCP is the live coordination layer; durable accepted truth lives in whatever you project to. It is local-first (SQLite + stdio), and it never deploys, never reads secrets, and never executes shell commands.
Why
When several agents (or agents and people) push on the same body of work, two things go wrong: they overwrite each other, and "I'm done" gets confused with "this was accepted." Coordination Memory gives you:
Assignment claims with leases so two actors don't clobber the same task.
A hard distinction between an agent reporting
completed_gate_passedand an integrator decidingintegrator_accepted. Proposals are not truth.An integrator-owned accepted projection you review before archiving.
Acceptance contracts that make "self-certified done" structurally impossible for goal-level outcomes (see below).
A human-facing Attention view and latest Resume Brief so people can re-enter long-running work without turning summaries into agent recovery state or changing the coordination lifecycle.
Good fits: multiple agents on separate worktrees advancing one effort; needing a review gate before something counts as accepted; wanting a replayable audit trail of coordination decisions.
Not a fit: as your only long-term source of truth; as a place to store .env
files, tokens, passwords, or credential-bearing logs.
Related MCP server: JustClone Coordination MCP Server
Launch resources
90-second demo script — a short walkthrough for showing leases, handoff evidence, integrator acceptance, and the dashboard.
Launch post draft — copy for announcing the project without positioning it as generic memory or RAG.
OSS launch checklist — release, GitHub metadata, MCP Registry, and directory-submission steps.
Install
Requires Python ≥ 3.11.
Install the single comem command with
uv or pipx after the package is published to
PyPI:
uv tool install coordination-memory-mcp # or: pipx install coordination-memory-mcp
comem --helpOr run it without installing (the package name and command differ, so pass
--from):
uvx --from coordination-memory-mcp comem --helpFrom source
If the PyPI page is not live yet, or you want to run your own changes, install
the comem command straight from a checkout:
git clone https://github.com/yanqiw/comem
cd coordination-memory-mcp
uv tool install . # or: pipx install .
comem --versionThis is a snapshot install — re-run it after editing the source to pick up changes:
uv tool install . --reinstall # rebuild from current source
uv tool install . --editable --reinstall # or install editable: changes apply live
uv tool uninstall coordination-memory-mcp # remove itThe command exposes four subcommands:
comem serve— the stdio MCP server.comem dashboard— the local web management console.comem init— scaffold agent-onboarding files into a repo.comem loop— run the local-only scheduler for Codex agent conversations.
For local development, clone and uv sync, then prefix commands with uv run.
Quickstart
Run the MCP server
comem serveThis starts a stdio MCP server (normally launched by an MCP client). It opens no HTTP port and prints no interactive CLI.
The database defaults to ./.coordination-memory/coordination.sqlite3. Override
it with COORDINATION_MEMORY_DB. When several agents/worktrees collaborate, point
all of them at one absolute path outside every worktree, or each worktree
gets its own SQLite copy and the shared memory forks:
COORDINATION_MEMORY_DB=/absolute/path/coordination.sqlite3 \
comem serveDo not commit the SQLite database to Git.
Configure an MCP client
Client config locations differ, but with the command installed the server entry should look like:
{
"mcpServers": {
"coordination-memory": {
"command": "comem",
"args": ["serve"],
"env": {
"COORDINATION_MEMORY_DB": "/absolute/path/coordination.sqlite3"
}
}
}
}Set up your agent
comem init scaffolds onboarding files so your coding agents know
the protocol, then prints this MCP config snippet:
comem init # all tools, current directory
comem init --tools claude,cursor --dir ./my-repoIt writes a canonical Coordination Memory protocol section into AGENTS.md
(idempotently, between markers) and thin per-tool adapters that point to it:
Tool | File written |
Codex, OpenCode |
|
Claude Code |
|
Cursor |
|
GitHub Copilot |
|
Re-running init updates the AGENTS.md section in place (no duplication).
Edit the protocol once in AGENTS.md; the adapters defer to it.
Local loop
comem loop is the local-only scheduler for first-class Codex agent
conversations. The initial release supports --adapter fake for deterministic
testing and a guarded --adapter codex-app-server capability probe for future
local Codex app-server integration.
When Codex creates a workspace, team, and assignments for a plan, ask the user to choose one execution mode before starting work:
codex_subagent(default): the current Codex conversation remains the Integrator, starts Codex subagents as workers, and records claims, heartbeats, handoffs, and reviews in Coordination Memory.comem_loop: Codex startscomem loopwith the selected workspace/team and the loop owns worker claims and thread starts.
Use codex_subagent for the smoothest Codex experience. Use comem_loop when
worker conversations must be independently resumable or scheduler-owned.
Dry-run scheduling:
COORDINATION_MEMORY_DB=/absolute/path/coordination.sqlite3 \
comem loop --workspace <workspace_id> --team <team_id> --adapter fake --dry-run --onceFake local dispatch:
COORDINATION_MEMORY_DB=/absolute/path/coordination.sqlite3 \
comem loop --workspace <workspace_id> --team <team_id> --adapter fake --once
COORDINATION_MEMORY_DB=/absolute/path/coordination.sqlite3 \
comem loop --workspace <workspace_id> --team <team_id> --adapter fake --poll-interval 30Loop-managed assignments should carry metadata.session_bind.target_actor_id
so the scheduler knows the intended worker before any run exists. The actual
Codex thread binding is recorded on the run after claim/start. Project design
and plan context must remain in Markdown files; assignments should reference
those files through metadata context_refs.
Concepts
The store is six core tables:
workspace → team → assignment → run → event, plus actors.
An assignment is a unit of work. Claiming one starts a run and takes a lease. Events are the append-only log (evidence, handoffs, reviews, …).
Actors act in a role:
integrator,agent, orhuman.Mutating writes use optimistic concurrency: each carries the current
base_revisionand bumps the revision.
Event statuses an agent may submit: proposed, observed,
completed_gate_passed, completed_gate_failed. Decision statuses are
integrator-only: integrator_accepted, integrator_rejected, needs_fix.
completed_gate_passed is not accepted truth — only an integrator review
decision produces accepted state.
Tools
Coordination
Tool | Role | Purpose |
| any | register/refresh an actor profile |
| any | create/refresh a workspace record (idempotent) |
| any | create/refresh a team (auto-creates its workspace) |
| integrator | create a task (optional workspace/team/paths/criteria) |
| any | compact workspace discovery and per-workspace team/count detail |
| integrator | void / retire a task (releases any lease) |
| agent | claim a lease; records run/session/worktree metadata |
| agent | report run liveness |
| agent | refresh the human-only latest Brief without changing run status |
| agent | write yellow/green non-blocking Attention; green resolves a dedupe key |
| agent / human | use the red/blocking path, optionally with a Decision Packet, and move a run to/from an awaiting-human lane |
| agent | append evidence / submit a reviewable handoff |
| any | compact team-scoped review summaries / one complete selected event |
| integrator | record a review decision |
| any | coordination read models |
| any | reconstruct latest human projections from the event ledger |
| integrator | accepted projection (see below) |
Compact discovery and high-volume reads
Start with list_workspaces to discover compact workspace IDs. Then call
get_workspace_detail (workspace_id) for compact teams and assignment counts.
Choose one exact team before high-volume reads and pass its required team_id
to get_team_board, list_pending_reviews, get_snapshot, list_contracts,
and get_attention_board. These reads do not use pagination: do not pass
pagination controls.
get_team_board is an agent-orientation read model. It returns a flat
assignments array whose items contain only assignment_id, title, and
status. Its status is an optional, one exact status filter; omitting it
excludes accepted, rejected, cancelled, and superseded. After choosing
a specific ID from a compact read, use get_event_detail,
get_assignment_detail, get_run_detail, or get_contract_detail for full
detail.
Only these eleven Ack tools return a compact acknowledgement without a payload
echo: append_event, submit_handoff, heartbeat_run, checkpoint_run,
raise_attention, record_run_binding, request_intervention,
respond_intervention, review_event, accept_event, and reject_event. The
acknowledgement contains sequence, event_id, assignment_id, run_id,
event_type, status, reviewed_event_id, assignment_revision,
current_assignment_revision, and created_at.
claim_assignment and actor/workspace/team/assignment/contract mutations retain
their existing responses. In particular, keep using active_run_id from the
full claim_assignment response.
Acceptance contracts
create_acceptance_contract, add_invariant, raise_deviation,
bind_assignment_to_contract, seal_contract, report_verification,
evaluate_contract, accept_contract, reject_contract, waive_deviation,
reopen_contract, get_contract_detail, list_contracts.
Mutating tools take a base_revision and reject stale writes. Run/intervention
tools only change local lanes and the event timeline; they never execute commands,
resume threads, or touch files.
Human Brief and Attention
Use checkpoint_run to refresh the human-only latest Brief without changing the
run status. Use raise_attention for non-blocking yellow/green updates; a green
update resolves the matching dedupe_key. Use request_intervention for the
red/blocking path when execution must wait for a person; it may include a
structured decision_packet. Read the latest ledger-derived views with
get_human_brief and get_attention_board:
get_human_brief({"run_id": "run_123"})
get_attention_board({"team_id": "<team_id>", "target": "human", "include_green": false})See the tool reference for complete write examples and Decision Packet semantics.
Acceptance contracts (goal-level governance)
An acceptance contract is a first-class object that sits above assignments and defines machine-checkable, non-self-certifiable acceptance criteria for a goal-level outcome. It is a structural protection layer whose purpose is to make "the implementer declares it done" impossible.
Data model
Table | Role |
| the contract: |
| one machine-checkable predicate per row: |
| append-only probe results: |
| a deviation/shortcut register: |
Three gates
seal_contract(drafting → criteria_sealed) — refuses to seal unless there is at least one deny test, at least one second-instance test, every invariant has a probe spec, and the bound acceptor is not an actor that ran a bound assignment. Invariants freeze after seal; the only way to change them isreopen_contract(a loud reset that clears the seal and prior probe results).evaluate_contract— the objective gate and self-healing loop driver. It needs no acceptor, so the loop self-drives. If every required invariant's latest result ispassedand no blocker is open →awaiting_acceptor. Otherwise it bumps the attempt and emits a bound repair assignment for an external scheduler/runner to pick up; bounded bymax_repair_attemptsand a no-progress brake (failing set must strictly shrink), after which it escalates toawaiting_human. A bound runner cannot callevaluate/accepton its own contract.accept_contract(awaiting_acceptor → accepted) — only the independent acceptor may sign off, certifying the invariant set adequately covers the goal (green is already objective fact).reject_contractsends it toawaiting_human.
drafting ──seal──▶ criteria_sealed ──(report_verification)──▶ verifying
│
evaluate (objective gate)
┌─────────────────────────────┼──────────────────────────┐
all required green some failed / open blocker
AND no open blocker │
│ enter repair loop (bounded)
awaiting_acceptor │
│ repair_attempt > max OR
accept / reject no-progress → awaiting_human
│
accepted / awaiting_humanThe gate logic lives entirely in the store layer (store.py) — there is no prompt
or client that can bypass it.
Dashboard (local management console)
A local, single-page management dashboard over the same SQLite memory. A small
stdlib HTTP server serves the Svelte/Vite-built static SPA plus JSON APIs. Read
APIs open the DB with mode=ro + query_only and fail rather than creating a
missing DB. The only write action is Archive workspace, which soft-updates
workspaces.status to archived through
POST /api/workspaces/<id>/archive; it never deletes tasks, runs shell, deploys,
or pushes.
COORDINATION_MEMORY_DB=/absolute/path/coordination.sqlite3 \
comem dashboard --host 127.0.0.1 --port 8765
Open http://127.0.0.1:8765/. The Overview starts with Human Attention:
red items require intervention now, yellow items are safe to digest later, and
resolved green items stay collapsed into the count. The assignment lifecycle
board remains directly below it. The console also includes an Acceptance
Contracts section, a Workspaces management page, workspace detail pages,
and drill-downs for a contract, assignment, or run. Assignment and run pages
show the latest Human Resume Brief when one exists, followed by the existing
evidence and event detail. A team switcher and a 5s auto-refresh (overview only,
paused while you select text or the tab is hidden) live in the header, and the
header shows a build hash so you can tell when the UI changed. The same data is
available as JSON:
/api/workspaces, /api/workspaces/<id>, POST /api/workspaces/<id>/archive,
/api/board, /api/governance, /api/contracts (+ /api/contracts/<id>),
/api/assignments/<id>, /api/runs/<id>, /api/runs/<id>/brief,
/api/attention (with team_id, target, and include_green=true|false),
/api/teams, /api/reviews, /api/version.
Accepted projection (export)
MCP get_snapshot(team_id) returns the compact accepted-state view for one exact
team. export_git_projection instead writes the full global durable snapshot
(integrator-only) to a directory you choose:
{ "output_dir": "/tmp/coordination-projection", "actor_role": "integrator" }produces:
/tmp/coordination-projection/coordination-memory/snapshots/accepted-state.json
/tmp/coordination-projection/coordination-memory/events/accepted-events.mdReview the export before committing it anywhere. The tool writes only to the directory you pass; it never overwrites other files.
Security boundaries
Does not read or commit
.envfiles; does not store secrets, tokens, passwords, or private keys. Contractprobe_spec, verificationevidence, and all metadata hold references only (paths, commits, hashes).Does not execute deployments, shell commands, or version-control pushes. The acceptance-contract repair loop only emits an assignment record; execution stays in your own (externally authorized) scheduler/runner.
Dashboard read APIs are read-only. The dashboard's only write action is Archive workspace, a soft workspace status update; it does not delete data, execute commands, deploy, or push.
Development
uv sync
uv run pytest -q
uv run ruff check src tests # lint
uv run ruff format --check src tests
uv run mypy src # type check
uv run pre-commit install # optional: run lint/format on commit
npm test # frontend unit tests
npm run build # rebuild Svelte dashboard static assetsMore docs: docs/ (quickstart, concepts/governance, tool reference, examples). See CONTRIBUTING.md for the invariants a change must preserve, and CHANGELOG.md for release notes.
License
MIT.
Available Tools
43 toolsaccept_contractC
Bound acceptor signs off that invariants adequately cover the goal.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| base_revision | Yes | ||
| decision_note | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavior disclosure. It indicates a sign-off action, but it does not disclose side effects, whether the contract transitions to an accepted state, whether the action is reversible, what permissions are required, or what happens if the base_revision is stale.
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, compact sentence with no filler and the key acceptance criterion is front-loaded. It is arguably too terse for the tool's complexity, but it earns its place and does not repeat the tool name.
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 five required parameters, no annotations, no schema descriptions, and a workflow with many sibling contract/review tools, the description is incomplete. It leaves out the workflow position, side effects, role requirements, and parameter roles, relying too heavily on inferred domain knowledge.
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% for five required parameters, and the description does not explain any of them. Terms like contract_id and actor_id may be guessable, but base_revision and actor_role are left entirely unexplained, and decision_note's purpose is not described.
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 ('signs off') on a specific resource (the contract) and adds the defining criterion: the invariants adequately cover the goal. It is not a tautology and is reasonably distinguishable from reject_contract or evaluate_contract, though it does not explicitly name sibling alternatives.
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 is implied: this tool should be called when a bound acceptor concludes that invariants adequately cover the goal. However, there is no explicit guidance about when not to use it, what conditions must be true before calling, or how it relates to reject_contract, waive_deviation, or seal_contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accept_eventC
Integrator-only accept decision.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| event_id | Yes | ||
| actor_role | Yes | ||
| base_revision | Yes | ||
| decision_note | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits itself. It only states an access restriction ('integrator-only') and an action ('accept decision'), but it does not describe side effects, state changes, permissions needed beyond role, or what happens after the acceptance.
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 extremely short and waste-free, but it is under-specification rather than effective conciseness. A few words do not provide enough information for a tool with five required parameters and a meaningful workflow.
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?
Despite having an output schema, the description is fundamentally incomplete. It lacks context about the event-review lifecycle, when 'accept' is appropriate versus reject or review, what constraints apply, and how the required parameters should be determined. The tool is left almost entirely 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?
Schema description coverage is 0%, and the description contributes nothing about event_id, actor_id, actor_role, base_revision, or decision_note. The agent receives no help understanding what these parameters mean or how they relate to the acceptance 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 phrase 'accept decision' gives a general sense of the operation and 'integrator-only' adds a role restriction, but it never names the resource explicitly as an event. It is too terse to be fully clear and relies heavily on the tool name to carry meaning.
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 only usage signal is 'integrator-only,' which hints at who may invoke it but not when it should be used. It does not contrast with sibling tools such as review_event or reject_event, nor does it explain the decision flow or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_invariantB
Add a machine-checkable invariant (drafting only; frozen after seal).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| actor_id | Yes | ||
| required | No | ||
| actor_role | Yes | ||
| probe_kind | Yes | ||
| probe_spec | Yes | ||
| contract_id | Yes | ||
| description | Yes | ||
| is_negative | No | ||
| base_revision | Yes | ||
| is_second_instance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that adding is drafting-only and becomes frozen after seal, but it does not mention mutation effects, permissions, idempotency, overwrite behavior, or what causes the draft to freeze.
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 efficient sentence with no filler and the core action placed first. It is somewhat too terse for an 11-parameter tool, but as written it earns each word.
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 11 parameters, 8 required, a nested object, and zero schema explanations, the description is not complete enough for an agent to understand prerequisites, concurrency via base_revision, actor authorization, or the semantics of negative/second instances. The output schema helps with return shape, but significant context is missing.
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 gives no parameter-level guidance. 'Machine-checkable invariant' weakly hints at probe_spec and probe_kind, but contract_id, actor_id, actor_role, base_revision, is_negative, and is_second_instance remain unexplained, leaving the agent to guess their meaning.
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 a specific action ('Add') and a specific resource ('machine-checkable invariant'). The phrase 'drafting only; frozen after seal' adds useful lifecycle context, but it does not explicitly differentiate this tool from sibling tools by name.
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 temporal usage boundary: invariants can be added only while the contract is in drafting, and they become frozen after sealing. It does not name alternative tools, but the when-to-use and when-not-to-use context is explicit enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_eventC
Append a structured coordination event without mutating history.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| payload | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| event_type | Yes | ||
| assignment_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. The phrase 'without mutating history' offers a hint about side effects, but it is ambiguous and potentially confusing. The description does not mention revision conflict handling, validation rules, side effects on related records, or failure modes, which are likely relevant given the required 'base_revision' parameter.
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 focused sentence with no wasted words. It front-loads the action and resource, then adds a key constraint. Despite being terse, it earns its length by stating the core purpose without 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?
Given the complexity of the tool – seven required parameters, a nested payload object, an output schema, and a large set of sibling tools – the description is far too sparse. It provides no information about parameter semantics, event format, when to use this tool, or expected behavior on conflict. An agent cannot reliably select and invoke this tool with only this description.
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 adds no explanation of any of the seven required parameters. Terms like event_type, status, actor_role, and base_revision are left undefined, and the payload object's structure is completely unspecified. The description fails to compensate for the schema's lack of detail.
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 ('Append') and a specific resource ('structured coordination event'), making the core operation clear. It also adds a behavioral qualifier ('without mutating history') that helps set it apart from tools that modify existing data. However, it does not explicitly distinguish itself from sibling event-specific tools like accept_event or reject_event, leaving some ambiguity about when this generic append is appropriate.
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 no guidance on when to use this tool versus alternatives. Sibling tools like accept_event, reject_event, and review_event suggest more specific actions, but there is no statement of when append_event is the right choice. An agent is left to infer the intended usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_workspaceA
Archive a workspace. Integrator-only; this is a soft status change.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_role | Yes | ||
| workspace_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It does disclose a key behavioral trait: this is a 'soft status change,' meaning it is not a hard deletion. However, it does not explain whether the operation is reversible, what happens to associated items, or what side effects may occur beyond the status change.
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 highly concise: two short sentences, no filler, and the key constraints are front-loaded. Each phrase adds meaningful information: the action, the role restriction, and the non-destructive nature of the change.
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 that this is a simple status-change tool with only two parameters and an output schema present, the description is reasonably complete in framing the action. However, the absence of parameter documentation and any guidance on expected behavior or reversibility leaves notable gaps for an agent selecting and invoking the 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?
Schema description coverage is 0%, and the description provides only minimal parameter context. 'Integrator-only' hints at the purpose of actor_role, but workspace_id and actor_role are otherwise undocumented. The description does not adequately compensate for the absence of parameter descriptions in the input schema.
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 ('Archive') and resource ('workspace'), and clarifies the nature of the operation as a 'soft status change.' This clearly distinguishes it from sibling tools like register_workspace, list_workspaces, and get_workspace_detail, which perform create/read operations rather than state changes.
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 communicates an important usage constraint: 'Integrator-only.' However, it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. Usage context is implied rather than explicitly provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_assignment_to_contractC
Bind a work assignment to a contract for independence tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| assignment_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It only says the action is 'for independence tracking' and does not disclose whether the operation mutates state, requires specific authorization, is reversible, or triggers downstream effects.
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, front-loaded sentence with no filler or repetition. It is efficient and readable, though its brevity comes at the cost of missing important operational and parameter detail.
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 mutation-like operation with five required parameters and no annotations, the description is too thin to enable correct invocation. It omits when to use the tool, what binding operationally involves, and parameter semantics; the presence of an output schema only covers return-format expectations, not invocation requirements.
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 explain any of the five required parameters. The roles of actor_id, actor_role, and base_revision in particular are left entirely to inference, so the description adds no semantic value beyond the parameter names.
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 ('Bind') and clearly identifies the resource relationship (work assignment to contract). The phrase 'for independence tracking' provides additional context about why the binding matters, making the operation reasonably distinguishable from generic tool names.
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 no explicit guidance on when to use this tool versus alternatives. With over 40 sibling tools in the contract/assignment domain, the agent is given no routing context, preconditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_assignmentB
Integrator-only: void an assignment (mistake/scope dropped). Releases any lease.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| assignment_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool voids an assignment and releases any lease, which is meaningful. However, it does not mention other potential side effects, irreversibility, or downstream impacts on contracts or workflows.
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 extremely compact, with the eligibility constraint, purpose, rationale, and a key side effect all packed into one sentence. Every word earns its place and the most important information is front-loaded.
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?
Despite having an output schema, the tool has five required parameters with zero semantic guidance and no annotation coverage. The description gives useful context about when to cancel, but it is not enough for an agent to correctly construct a valid invocation; parameter meaning and expected values remain unclear.
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 explain any of the five required parameters beyond implying a reason. assignment_id, actor_id, actor_role, base_revision, and reason are all undocumented in both the schema and description, so an agent cannot determine their meanings.
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 voids an assignment, with a specific verb and resource, and adds the typical use case of a mistake or dropped scope. However, it does not explicitly distinguish this from the sibling supersede_assignment, so it stops short of full differentiation.
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: this is integrator-only and intended for voiding assignments due to mistakes or dropped scope. It does not explicitly list when-not-to-use or name alternatives like supersede_assignment, so it lacks exclusions but still gives usable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkpoint_runA
Refresh the latest human-facing Brief without changing run status.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | ||
| run_id | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| client_update_id | Yes | ||
| source_event_sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly communicates the key boundary: the brief is refreshed but run status is unchanged. However, it does not disclose whether the previous brief is overwritten, whether ordering constraints matter, or whether any permissions or prerequisites 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?
A single sentence with no filler, front-loading the action and the key constraint. It conveys maximum relevant information in minimal space.
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 usage guidance, a one-sentence description is incomplete. While the output schema exists, the description still omits parameter semantics, ordering expectations, and side-effect details, making it hard for an agent to invoke correctly without additional 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%, and the description only hints that `brief` carries the new human-facing Brief. The other five required parameters (run_id, actor_id, actor_role, client_update_id, source_event_sequence) are not explained, leaving the agent without sufficient guidance for correct invocation.
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 ('Refresh') with a clear resource ('latest human-facing Brief') and an explicit scope constraint ('without changing run status'). This distinguishes it from siblings like heartbeat_run, which change run status, and from read-only tools like get_human_brief.
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 intended use is implied: refresh the brief while preserving run status. However, the description does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. No sibling tool or condition is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_assignmentC
Claim an assignment lease with optimistic concurrency.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| base_commit | No | ||
| session_ref | No | ||
| session_kind | No | ||
| assignment_id | Yes | ||
| base_revision | Yes | ||
| worktree_path | No | ||
| interactive_url | No | ||
| resume_of_run_id | No | ||
| lease_ttl_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only signals that the operation is a state-changing claim guarded by optimistic concurrency, but it does not disclose what happens on a revision conflict, whether the lease is exclusive, whether prior leases are replaced or expired, or any side effects. The single behavioral trait named is helpful but far from sufficient for a mutating 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 single sentence is tight and front-loaded with zero wasted words, but it is under-specified rather than appropriately concise for a tool with 12 parameters, no schema descriptions, and no annotations. This is closer to the under-specification pattern than to genuine conciseness.
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 (12 parameters, 4 required, a mutating lease operation with concurrency semantics) and the absence of annotations and schema descriptions, a one-sentence description is grossly inadequate. The output schema covers return values, but failure behavior, conflict semantics, lease exclusivity, TTL implications, and prerequisites are all unaddressed.
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 only loosely implies semantics for a few required parameters: assignment_id/actor_id/actor_role via 'claim', and base_revision via 'optimistic concurrency'. The eight optional parameters (branch, base_commit, session_ref, session_kind, worktree_path, interactive_url, resume_of_run_id, lease_ttl_seconds) receive no meaning at all, leaving an agent to guess their purpose.
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 ('claim') and resource ('assignment lease'), and the 'optimistic concurrency' qualifier adds technical specificity that helps an agent anticipate revision-based conflict checking. It is clearly distinguishable from siblings like cancel_assignment, supersede_assignment, and create_assignment, though it does not explicitly explain what a lease is or how claiming one relates to record_run_binding or bind_assignment_to_contract.
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 guidance is given on when to use this tool versus the many sibling tools that touch assignments (create_assignment, get_assignment_detail, record_run_binding, bind_assignment_to_contract). There are no stated prerequisites, no exclusions, and no mention of when claiming a lease is the right operation versus an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_acceptance_contractC
Open a goal-level acceptance contract (Integrator-only, base_revision=0).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| team_id | No | default | |
| actor_id | Yes | ||
| metadata | No | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| workspace_id | No | default | |
| base_revision | Yes | ||
| goal_statement | Yes | ||
| author_actor_id | No | ||
| max_repair_attempts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does reveal an important authorization restriction (Integrator-only) and a structural constraint (base_revision=0). However, it does not mention lifecycle effects, idempotency, failure conditions, or what happens after the contract is opened.
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 with no filler, and the most important constraints are front-loaded. It is concise, though perhaps too terse given the tool's parameter complexity.
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 11 parameters, 6 required, no annotations, and a complex domain with many sibling contract lifecycle tools, this description is incomplete. The output schema covers return values, but the description still fails to explain parameter meaning, usage context, or behavioral consequences.
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 must compensate for 11 undocumented parameters. It adds meaning for base_revision by stating it must be 0 and hints at authorization via actor_role, but provides no explanation for contract_id, goal_statement, actor_id, title, or the other required fields.
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 ('Open') with a clear resource ('a goal-level acceptance contract') and adds a key constraint ('Integrator-only, base_revision=0'). It is understandable on its own, but does not explicitly distinguish itself from sibling tools like accept_contract or reopen_contract.
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 this tool should be used—when opening a new acceptance contract—but provides no explicit guidance on when to prefer it over alternatives such as accept_contract, seal_contract, or evaluate_contract. The Integrator-only note is a prerequisite rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assignmentC
Create an assignment. Integrator-only; starts with base_revision=0.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| team_id | No | default | |
| actor_id | Yes | ||
| metadata | No | ||
| actor_role | Yes | ||
| workspace_id | No | default | |
| allowed_paths | No | ||
| assignment_id | Yes | ||
| base_revision | Yes | ||
| acceptance_criteria | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 adds the integrator-only restriction and an initial base_revision note, but does not mention side effects, persistence behavior, failure modes, or what the returned assignment looks like.
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 extremely short and front-loaded, with no filler. However, it is terse to the point of omitting important context, so it earns high marks for conciseness but not perfect marks for structure/usefulness.
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 10-parameter creation tool with no annotations and no meaningful parameter documentation, two brief facts are insufficient. The output schema helps with return shape but does not compensate for the missing input semantics and usage context.
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% across 10 parameters, and the description only obliquely references base_revision. It does not explain assignment_id, actor_id, actor_role, title, team_id, workspace_id, allowed_paths, acceptance_criteria, or metadata, leaving the agent without meaningful parameter guidance.
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 clear verb and resource: 'Create an assignment.' It is reasonably distinct from sibling tools like claim_assignment or create_acceptance_contract, though it does not explicitly differentiate itself from them.
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 a usage precondition ('Integrator-only') and an initial condition ('starts with base_revision=0'), but gives no guidance on when to use this tool versus alternatives such as create_acceptance_contract or bind_assignment_to_contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_teamC
Create or refresh a local coordination team.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| team_id | Yes | ||
| settings | No | ||
| phase_key | No | ||
| workspace_id | Yes | ||
| owner_actor_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It mentions 'Create or refresh,' hinting at possible idempotency or upsert behavior, but it does not explain side effects, prerequisites, permissions, what 'refresh' entails, or what happens to an existing team.
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, efficient sentence with no wasted words and the core action is front-loaded. However, it achieves conciseness by omitting valuable context, so it is not a perfect score.
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 six parameters, four required fields, and no annotations, this description is far too thin. The output schema reduces the need to explain return values, but the description still leaves major gaps around what a 'local coordination team' is, how 'refresh' behaves, and what the required identifiers mean.
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%, yet the description provides no meaning for any of the six parameters, including required ones like team_id, workspace_id, name, and owner_actor_id. The phrase 'local coordination team' only weakly implies what some parameters might represent, so the description fails to compensate for the schema's lack of 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 identifies a specific verb ('Create or refresh') and a resource ('local coordination team'), which is clear enough to understand the tool's core purpose. It does not explicitly differentiate from sibling tools, but the tool name and stated resource make its role reasonably distinct from creation/registration tools for other entities.
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 no guidance about when to use this tool versus alternatives such as register_workspace, register_actor, create_assignment, or get_team_board. The intended call context is only implied by the name 'create_team' and the high-level phrase 'local coordination team.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_contractC
Run the objective gate; green advances to awaiting_acceptor, else dispatches repair.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose the key conditional behavior: green advances to awaiting_acceptor, otherwise repair is dispatched. But it omits side effects, permission requirements, whether changes are reversible, and what a dispatched repair 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 very concise and front-loads the action, followed by a compact conditional outcome. However, the term 'green' is somewhat jargon-heavy, and the extreme brevity sacrifices some clarity.
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?
Although an output schema exists, the description fails to provide essential context for a mutation-like workflow tool: what the objective gate evaluates, what triggers repair, who is allowed to call this, and how the required parameters relate to the gate. This is incomplete for an agent deciding whether and how to 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 provides no explanation of contract_id, actor_id, actor_role, or base_revision. The description does not compensate for the missing parameter details, leaving agents to guess the role of base_revision and the meaning of actor_role.
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-resource combination ('Run the objective gate') and clarifies that it is an evaluation step that routes to awaiting_acceptor or repair. It is distinct from sibling tools like accept_contract and reject_contract because it describes a gate, not a terminal decision, though it does not explicitly name those alternatives.
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 the tool applies: it is the objective gate before a contract can move to awaiting_acceptor. However, it gives no explicit when-to-use guidance, no exclusions, and does not mention alternatives such as reject_contract, waive_deviation, or accept_contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_git_projectionC
Integrator-only export to a Git-compatible projection directory.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_role | Yes | ||
| output_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. 'Export' implies writing artifacts to an external directory, and 'Git-compatible' hints at the output format — both useful. But it does not disclose whether the output directory is overwritten, whether it must pre-exist or is created, what a 'projection' contains, or whether the operation is reversible.
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?
A single seven-word sentence with the 'Integrator-only' constraint front-loaded ahead of the action. No wasted words, and the structure is efficient. Slightly under-specified given the 0% schema coverage, but as a concise statement it 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?
An output schema exists, so return values are covered elsewhere, but the description omits critical behavioral context: what exactly gets exported, how the output directory is treated (create vs. overwrite vs. require-existing), and how actor_role is validated against the 'Integrator-only' constraint. For a tool that writes to an external filesystem location, this is a significant 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 does so indirectly: 'Git-compatible projection directory' implies the meaning of output_dir and 'Integrator-only' implies the value/meaning of actor_role. But neither mapping is explicit, and the agent must infer these connections rather than being told.
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 specific verb+resource: 'export to a Git-compatible projection directory,' which is clear and distinct among the sibling tools (no other export tool exists). The 'Integrator-only' qualifier adds scope. However, it never specifies what data is being exported (the 'projection' of what?), leaving some ambiguity about the exported content.
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 only usage guidance is 'Integrator-only,' which is a role restriction rather than when-to-use context. It names no alternative tools, no conditions that trigger export, no exclusions, and no prerequisite steps. An agent gets no help deciding between this and the many sibling tools beyond the export verb itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assignment_detailB
Return an assignment with its run and event timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| assignment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden for behavioral disclosure. 'Return' conveys a read operation, and the mention of 'run and event timeline' adds some behavioral context about the response composition. However, it does not disclose not-found behavior, permissions, pagination, or any error-related caveats.
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 front-loaded sentence with no wasted words. Every part of it conveys meaningful information about the resource and what is included in the result.
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 getter with one parameter and an output schema available, the description is minimally adequate: it names the resource and the main related entities returned. Yet it lacks guidance on when to choose this over sibling detail tools, and with no annotations it does not fully cover behavioral expectations.
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 explain assignment_id beyond the parameter's own name and title. The description's mention of 'assignment' creates a loose link, but it adds no format, source, or usage semantics for the sole required parameter.
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 clear verb ('Return') and names a specific resource ('an assignment') with its composed contents ('run and event timeline'). This is enough to understand what the tool does, and the composition narrows it versus get_run_detail or get_workspace_detail, though it does not explicitly name sibling alternatives.
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 guidance is given about when to use this tool versus sibling detail getters such as get_run_detail, get_workspace_detail, or get_contract_detail. The tool's purpose implies use when an assignment's full detail is needed, but no context, exclusions, or preferred alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attention_boardB
Reconstruct Attention for one exact team ID and target.
Discover team IDs with get_workspace_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | human | |
| team_id | Yes | ||
| include_green | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action 'Reconstruct', implying a read operation, but does not explicitly mention side effects, permissions, rate limits, or what the response contains. For a tool with zero annotation coverage, this is a significant gap.
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 wasted words. The first sentence states the core purpose; the second provides a critical discovery hint. Information is front-loaded and 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?
For a 3-parameter tool with no annotations and no schema descriptions, the description is incomplete. It leaves include_green unexplained and does not detail the output structure (though an output schema exists). The agent would need to guess parameter semantics, making it inadequate for confident 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 description coverage is 0%, so the description must compensate. It explains team_id via the get_workspace_detail hint and mentions 'target' in the action, but does not clarify valid target values or the meaning of include_green. Only two of three parameters are touched, and without schema descriptions the agent lacks full 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 states a specific action ('Reconstruct Attention') and scope ('for one exact team ID and target'), which is clear enough to distinguish from siblings like get_team_board. The term 'Attention' is domain-specific but understandable in context. Slight ambiguity remains about what 'Attention' precisely refers to, but the verb+resource is present.
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 how to obtain the required team_id by directing to get_workspace_detail, which is a helpful prerequisite. However, it does not mention when to use this tool over alternatives (e.g., get_team_board) or any exclusion criteria. It gives a clear usage hint but no alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contract_detailA
Return a contract with its invariants, deviations, and verification history.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It communicates a read-style retrieval operation and lists what is returned, but it does not mention not-found behavior, authorization, or side effects. This is acceptable for a simple get operation but not fully 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?
One short sentence states the operation and the key included subresources with no filler. The most important information is front-loaded.
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 retrieval tool with an output schema, the description is largely sufficient: it identifies the resource and what the returned detail contains, while the output schema covers the exact return shape. It could add a note contrasting it with list_contracts or get_snapshot, but nothing essential is missing.
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 never mentions contract_id or explains how the target contract is identified. With 0% schema description coverage, this is a gap, though the parameter name and title are self-explanatory enough to make the invocation possible.
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 ('Return') and resource ('a contract'), and specifies the three relevant aspects: invariants, deviations, and verification history. This clearly distinguishes it from list-style or assignment/run detail 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 clear context: use this tool when you need a single contract and its invariants, deviations, and verification history. It does not explicitly name alternatives or exclusion conditions, but the purpose is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_detailC
Return one complete event and its current assignment revision.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It states the return value but does not disclose whether the operation is read-only, has side effects, requires authentication, or has any special behavior. The verb 'Return' implies a read, but it's not explicit.
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 with no filler words. It communicates the core function efficiently and is front-loaded with the main 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?
The description is minimal and omits important context such as the meaning of 'assignment revision', potential error cases, prerequisites, or any differentiation from sibling tools. Given no annotations and low schema coverage, this is under-specified for an agent to call it correctly with confidence.
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 one parameter (event_id) with 0% description coverage. The description does not mention event_id at all, adding no semantic value beyond the schema's bare title. The agent must infer what event_id refers to and how it's used, which is a significant gap.
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 a specific action (Return) and a specific resource (one complete event and its current assignment revision). This distinguishes it from sibling get_* tools like get_assignment_detail or get_run_detail, though it doesn't explicitly name an alternative. The purpose is unambiguous and not a tautology.
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 guidance is given on when to use this tool versus other get_* tools or event-related tools. There is no mention of context, exclusions, or alternatives, so the agent must rely on inference from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_human_briefC
Reconstruct the latest human-facing Brief from the event ledger.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the burden of behavioral disclosure. 'Reconstruct from the event ledger' implies a deterministic, read-only derivation rather than a direct stored-object lookup, which is useful, but it does not disclose side effects, failure behavior, data availability, or whether reconstruction can fail when the ledger is incomplete.
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 with no filler. The key action and target are front-loaded, and every word contributes to the core meaning.
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?
Although an output schema exists so return values do not need to be described, the tool lacks annotations, usage guidance, and parameter semantics. For a simple one-parameter tool an agent can probably attempt the call, but it is not fully equipped to know when this tool is the right choice or what run_id must represent.
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 never mentions the only parameter, run_id. The property name and title give some basic meaning, but the description adds no value about what run_id refers to, how to obtain it, or how it affects the reconstruction.
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 names a specific verb ('Reconstruct'), a specific resource ('latest human-facing Brief'), and the source ('event ledger'), so an agent can tell this is a read-model reconstruction rather than a generic fetch. It does not explicitly distinguish it from sibling getters like get_run_detail or get_snapshot, but the 'human-facing Brief' phrasing narrows it meaningfully.
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 no indication of when to use this tool versus alternatives such as get_run_detail, get_snapshot, or get_team_board. It also does not mention any prerequisites, such as needing an active run or recorded events, so an agent is left to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_detailC
Return one run with its event timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description has to carry the behavioral burden, but it only states the returned content. It doesn't disclose error behavior for unknown run IDs, ordering or semantics of the event timeline, read-only status, or any permission requirements.
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?
A single sentence with the verb and key content front-loaded, containing no filler or repetition. It is appropriately sized for a one-parameter detail lookup.
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?
Although an output schema exists and the tool is a simple getter, the absence of id semantics, behavior notes, and usage context leaves an agent under-informed. The description is clear about the core outcome but not enough about invocation context.
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 adds no meaning to run_id beyond what the schema's name and type already show. The phrase 'one run' weakly implies that run_id selects a run, but no format, uniqueness, or lookup semantics are provided.
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 names a specific verb ('Return'), a clear resource ('a run'), and the distinguishing payload ('its event timeline'), so an agent can tell this from generic detail tools. It is not a tautology of the tool name, though it doesn't explicitly contrast with sibling detail 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?
There is no when-to-use guidance, no mention of alternatives, and no indication of when to choose get_run_detail over nearby tools such as get_snapshot or get_assignment_detail. The selection context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snapshotA
Return compact accepted state for one exact team ID.
Discover team IDs with get_workspace_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses the tool returns a compact state, but it doesn't specify the exact return format, pagination, or any side effects (though as a getter, likely none). It also doesn't mention any potential errors or exceptions. Given the lack of annotations, the description provides minimal behavioral insight beyond what the tool's name and schema suggest, so a 3 is appropriate.
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 fluff. It immediately states the action and the input requirement, then provides a helpful cross-reference. Every sentence serves a purpose, and the structure is tight and front-loaded.
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 simplicity (one required parameter) and the presence of an output schema (which likely describes the return type), the description is largely complete. It covers what the tool does and how to get the necessary input. It doesn't describe the exact output structure, but the output schema likely fills that gap. The only minor omission is potential error cases, but that's not critical for a simple getter.
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 little to explain the 'team_id' parameter beyond its name and requirement. The description mentions 'team ID' but doesn't provide additional format or context, such as expected length or format. Since the tool has only one parameter and it's straightforward, the low complexity mitigates the lack, but the description adds no real semantic value, so a 3 is fair.
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 a specific verb ('Return') and resource ('compact accepted state for one exact team ID'). It specifies the input (team ID) and the notion of a compact state, which helps the agent understand what it returns. While it doesn't explicitly distinguish from siblings, the term 'accepted state' and 'exact team ID' hint at a specific purpose, but a more explicit distinction from sibling tools like get_workspace_detail or get_run_detail would push it to 5.
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 a clear usage pointer by telling the agent how to discover team IDs via 'get_workspace_detail'. This is a strong cue for when to use this tool. However, it doesn't explicitly state when not to use it or mention alternatives for other data needs, though the pointer to get_workspace_detail covers the prerequisite. It's clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_boardA
Return compact assignments for one exact team ID.
Discover team IDs with get_workspace_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by one exact assignment status. Omit to exclude accepted, rejected, cancelled, and superseded assignments. | |
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavioral traits. It says 'Return' which implies a read-only operation, but it does not explicitly state that there are no side effects or that it is safe to call repeatedly. It also does not mention any rate limits, authentication requirements, or other constraints. The description is too sparse to fully convey behavioral expectations beyond a basic read.
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 extremely concise—two sentences with no filler. The core function is stated first, and the hint about discovering team IDs is secondary. Every word earns its place, and the structure is front-loaded and easy to scan.
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 that an output schema is present and the status parameter is well-documented in the schema, the description does not need to explain return values or status filtering. The description covers the purpose and the key prerequisite (getting team ID), which is sufficient for this simple read tool. It lacks details about error handling or invalid inputs, but they are likely covered by the tool's runtime behavior. The combination of description and schema is nearly 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?
The description adds meaning to the team_id parameter by calling it 'one exact team ID' and explaining how to discover valid IDs via get_workspace_detail. This compensates for the schema lacking a description for team_id. The status parameter is fully documented in the schema (including default behavior and filtering), so the description does not need to repeat that. Overall, it adds meaningful value for the required parameter.
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 ('Return') and resource ('compact assignments for one exact team ID'), making the tool's function clear. It is distinguished from siblings like get_assignment_detail and get_attention_board by focusing on a board of assignments for a team, though it does not explicitly name alternatives. The phrase 'one exact team ID' adds precision about the input.
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 a useful prerequisite hint: 'Discover team IDs with get_workspace_detail.' This tells the agent how to obtain the required team_id. However, it does not offer explicit guidance on when to choose this tool over alternatives (e.g., get_assignment_detail vs get_team_board) or when not to use it. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_detailA
Return one compact workspace with teams and status counts.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It communicates a read-only retrieval ('Return') and reveals the response shape as compact with teams/status counts, but it does not mention any caveats, permissions, or error behavior. This is minimal but not misleading for a simple getter.
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?
One focused sentence with no filler; the key information (what is returned and its shape) is front-loaded. Every word contributes.
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 one-parameter retrieval with an output schema, the description conveys the essential scope and return shape. It could be more explicit about when to choose this over list_workspaces, but nothing critical is missing for calling it 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?
Schema description coverage is 0%, so the description must compensate for parameter meaning, but it does not mention workspace_id at all. The parameter name in the schema is self-explanatory, but the description adds no semantic value beyond the bare required field.
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 names a specific action ('Return'), a specific resource ('one compact workspace'), and the content included ('teams and status counts'). The singular 'one' clearly differentiates it from sibling list_workspaces, and the resource differs from other get_* detail 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?
There is no explicit when-to-use or when-not-to-use guidance. The singular 'one' and the resource name imply it is for retrieving a single workspace's detail rather than listing workspaces, but no alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeat_runC
Record run liveness and keep the assignment in a running lane.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| summary | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It explains the intended effect—recording liveness and preserving running state—but does not mention side effects, idempotency, prerequisites, error behavior, or whether it updates existing 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 description is a single front-loaded sentence with no filler or repetition. It is compact and readable, though slightly too terse to compensate for the complete lack of parameter documentation.
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 four required parameters, no annotations, and zero schema descriptions, the description is not complete enough for an agent to invoke the tool confidently. It conveys the general purpose but leaves parameter semantics and usage conditions unspecified.
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 names none of the four required parameters. An agent cannot determine what 'summary' means in a heartbeat context, what actor_role values are expected, or how run_id and actor_id relate to the operation.
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—'Record run liveness'—and adds a meaningful outcome: 'keep the assignment in a running lane.' It is clear about the resource and purpose, though it does not explicitly differentiate itself from siblings like checkpoint_run or record_run_binding.
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 'keep the assignment in a running lane' implies this tool is used to maintain an assignment's active/running status via repeated heartbeats. However, it does not explicitly state when to prefer this over alternatives or exclude any sibling tools, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contractsA
List compact contracts for one exact team ID.
Discover team IDs with get_workspace_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. 'Compact contracts' and 'one exact team ID' add useful behavioral context, but the description does not state whether the operation is read-only, how results are ordered, or whether pagination applies. The output schema mitigates return-format concerns.
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 wasted words. The main purpose is front-loaded, and the discovery pointer is placed as a natural follow-up, making the description easy to scan.
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 simple one-parameter listing tool, and the description covers scope and ID discovery. An output schema is present to explain return values, so the main missing piece is only a more explicit behavioral note about ordering or empty results.
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 only provides team_id as a string with no description, so the tool description must add meaning. It does by specifying that the ID must be exact and by pointing to get_workspace_detail for discovery. For a single parameter, this is sufficient practical guidance.
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 ('List'), the resource ('contracts'), and the scope ('one exact team ID'), so an agent can tell what the tool does. It does not explicitly name a sibling like get_contract_detail, but the 'compact' qualifier hints at a summary list rather than full details.
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 useful prerequisite: discover team IDs with get_workspace_detail, and it constrains usage to an exact team ID. It does not explicitly state when to prefer this over list_workspaces or get_contract_detail, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pending_reviewsB
List compact pending review summaries for one exact team ID.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds some useful context by saying the results are 'compact' summaries and that matching uses 'one exact team ID', implying a strict, read-only lookup. However, it does not mention side effects, permissions, empty-result behavior, or any 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?
The description is a single, tightly worded sentence with no filler. The verb and object are front-loaded, and every word contributes meaning.
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 list tool with an output schema, the core calling information is present. However, it lacks guidance on when this tool is appropriate relative to several closely related siblings, and it does not clarify what 'pending review' means in the workflow context.
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 names the lone parameter ('team ID') and adds 'exact' to indicate strict matching, which is helpful. Yet it gives no format, source, or validation details for team_id, so the compensation is only partial.
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 ('List') and identifies a clear resource ('compact pending review summaries') scoped to 'one exact team ID'. It is distinct enough from sibling tools like get_team_board or review_event, though it does not explicitly name any alternative to differentiate itself.
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 this tool is for fetching pending reviews for a specific team, but it provides no explicit guidance on when to choose it over siblings like get_attention_board, get_team_board, or review_event. No prerequisites, exclusions, or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
List compact workspaces with assignment status counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 communicates that the operation is a read-only listing and that results are 'compact' with assignment status counts, but it does not address pagination, sorting, authentication needs, or the exact response 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 focused sentence, front-loaded with the verb and resource, with zero filler or repetition. 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?
For a zero-parameter list operation with an output schema available, the description sufficiently conveys the tool's purpose and primary output content. It could add a note on when to choose this over detail endpoints, but nothing essential is missing.
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 input schema has zero parameters, so the description is not required to explain parameter meanings. The baseline for a zero-parameter tool is 4, and the description adds relevant context about what the listing covers.
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, 'List compact workspaces,' and a distinguishing detail, 'with assignment status counts.' This clearly differentiates it from sibling tools like get_workspace_detail (single workspace details) and register_workspace (creation).
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 use when you need a summary-level overview of workspaces with assignment counts, but it does not explicitly state when to prefer this over alternatives like get_workspace_detail. There is no mention of exclusions or routing conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raise_attentionC
Write non-blocking yellow or green Attention for a run.
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | ||
| run_id | Yes | ||
| target | Yes | ||
| why_now | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| dedupe_key | Yes | ||
| reason_code | Yes | ||
| client_update_id | Yes | ||
| source_event_ids | Yes | ||
| recommended_action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It does reveal that the tool writes a non-blocking attention, which is useful, but it does not explain side effects, state changes, permissions, or what happens after the attention is written. This is minimal behavioral transparency.
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 short sentence with no wasted words, but it is under-specified rather than appropriately concise. For a tool with 11 required parameters and no annotation support, this is too terse to be considered 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?
Despite having an output schema, the description is severely incomplete for an 11-parameter, 11-required tool. It omits parameter semantics, behavioral effects, and usage context, and the large sibling list suggests more guidance is needed to help an agent choose and invoke 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?
Schema description coverage is 0%, and the description compensates very little. It hints that 'level' may be yellow or green and that 'run' maps to run_id, but 11 required parameters such as actor_id, actor_role, dedupe_key, reason_code, why_now, recommended_action, and source_event_ids are left completely 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 identifies a specific action ('write'), a specific resource ('Attention for a run'), and a key qualifier ('non-blocking yellow or green'). This is more specific than the tool name alone and helps differentiate it from siblings like request_intervention or raise_deviation, though it does not explicitly name those alternatives.
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 no guidance on when to use this tool versus alternatives such as request_intervention, raise_deviation, or get_attention_board. The phrase 'non-blocking' implies a contrast with blocking actions, but no explicit context, conditions, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raise_deviationC
Register a shortcut/deviation with a forced disposition.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| description | Yes | ||
| disposition | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden of behavioral disclosure. The phrase 'forced disposition' hints that the caller supplies the outcome, but it does not explain side effects, permissions, state changes, reversibility, or what happens after registration.
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 tight sentence with no filler. It front-loads the action and core constraint, which is efficient, though the brevity contributes to under-specification.
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 7 required parameters, zero schema descriptions, no annotations, and significant sibling overlap, the description is far too thin. The output schema may clarify return values, but an agent still lacks essential information about parameter semantics, preconditions, and behavioral effects.
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 none of the 7 required parameters are described in the schema. The description only references 'disposition' indirectly and says nothing about contract_id, actor_id, actor_role, base_revision, title, or description. An agent cannot reliably fill these parameters from this definition.
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 names a specific verb ('Register') and a specific resource ('shortcut/deviation'), and adds the key qualifier 'with a forced disposition.' This makes the tool's core action understandable, though it does not explicitly distinguish it from deviation-related siblings like waive_deviation.
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?
There is no guidance on when to use this tool versus alternatives such as raise_attention, request_intervention, or waive_deviation. No context, prerequisites, or exclusions are provided, so an agent must infer usage from the tool name and single sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_run_bindingC
Update active run communication metadata and append an observed event.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| binding_patch | Yes | ||
| event_payload | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It only says 'update' and 'append', which implies mutation, but it does not disclose whether metadata is replaced or merged, what happens when event_payload is null, or whether the action is reversible or requires special permissions.
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 compact sentence with no filler and front-loads the primary update action. It is concise, though the brevity contributes to the lack of behavioral and parameter detail.
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 five parameters, nested objects, an output schema, and no annotations, yet the description only provides a high-level action. An agent cannot determine correct parameter values, the meaning of actor_role, the shape of binding_patch, or the relationship between this and sibling event/binding tools.
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 explain run_id, actor_id, actor_role, binding_patch, or event_payload. It loosely maps 'communication metadata' to binding_patch and 'observed event' to event_payload, but that is too weak to compensate for the missing 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 names concrete actions ('Update', 'append') and targets ('active run communication metadata', 'observed event'), so it is more than a tautology. However, 'communication metadata' is vague and does not explicitly tie to the 'binding' concept in the tool name, nor does it clearly separate this from sibling tools like append_event.
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?
There is no guidance about when to use this tool versus alternatives. It does not mention append_event, heartbeat_run, checkpoint_run, or any condition that would select this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_actorC
Register or refresh a local coordination actor profile.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| provider | No | ||
| actor_kind | Yes | ||
| capabilities | No | ||
| display_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Register or refresh' implies create-or-update semantics, but it does not explain whether refresh overwrites fields, what side effects occur, or whether any permissions are required. This is a significant gap for a mutating 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 a single, efficient sentence with no filler, and the core action is front-loaded. It loses points only because it is so terse that it leaves essential context entirely to the agent.
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 5-parameter tool with 0% schema description coverage and no annotations, this description is severely incomplete. It does not explain the meaning of actor kinds or capabilities, the 'local coordination' scope, or the behavior on refresh. An agent cannot invoke this tool correctly with confidence.
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 adds no information about any of the five parameters. actor_id, actor_kind, capabilities, provider, and display_name are left entirely to inference from their names, which is insufficient.
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 ('register or refresh') and a resource ('local coordination actor profile'), and the target object ('actor') differentiates it from workspace- and team-oriented siblings. However, the term 'actor' is domain-specific and not elaborated, so it is not a perfect 5.
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?
There is no guidance on when to call this tool versus sibling registration tools, nor on whether 'refresh' should be used for existing actors. The single line offers no context about prerequisites, alternatives, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_workspaceB
Create or refresh a workspace record (idempotent upsert).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| metadata | No | ||
| repo_root | No | ||
| workspace_id | Yes | ||
| default_branch | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does state a key trait: idempotent upsert semantics, meaning repeated calls are safe and may refresh an existing record. It does not disclose permissions, how missing optional fields are treated, or whether any existing data is cleared.
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?
One concise sentence with the core action and idempotency parenthetical up front. No filler or repetition; every word contributes.
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 5-parameter tool with no annotations and no schema descriptions, this is under-specified. The output schema covers return expectations, but the description still leaves parameter semantics, side effects, and when-to-choose-this 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 should compensate by explaining what parameters like metadata, repo_root, and default_branch do. It provides no parameter-level information at all, leaving agents to guess 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 names a specific operation ('Create or refresh'), a target resource ('workspace record'), and a behavioral promise ('idempotent upsert'). It clearly differentiates from siblings like list_workspaces and archive_workspace.
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 'create or refresh' phrasing implies the intended use case: registering or updating a workspace. However, it does not explicitly state when to prefer this over sibling tools or mention preconditions such as requiring workspace_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_contractB
Bound acceptor rejects the contract (criteria inadequate); moves to awaiting_human.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| base_revision | Yes | ||
| decision_note | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose the immediate state transition to 'awaiting_human', which is useful. But it does not mention consequences such as whether the rejection is final, whether the contract can be reopened, or what happens to the bound acceptor's obligations.
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 compact sentence that front-loads the core action and state change. There is no filler or repetition, and every phrase adds meaning.
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 state-changing workflow tool with five required parameters and no annotations, the description is too thin. It lacks guidance on when to invoke this versus accept_contract, what base_revision represents, how decision_note is used, and what the output will contain beyond the state transition.
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 explain any of the five required parameters. Parameter names like contract_id and actor_id are somewhat self-explanatory, but base_revision and decision_note remain ambiguous, and the description does not compensate for the missing schema-level 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 clearly states the action ('rejects the contract') and the resource, and adds the specific criterion 'criteria inadequate'. It conveys the primary state change ('moves to awaiting_human'), which helps distinguish it from accept_contract, though it does not explicitly name sibling alternatives.
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 the tool: when the acceptor finds the criteria inadequate. However, it gives no explicit guidance about when not to use it or how it compares to accept_contract, evaluate_contract, or other related workflow tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_eventC
Integrator-only reject decision.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| event_id | Yes | ||
| actor_role | Yes | ||
| base_revision | Yes | ||
| decision_note | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose an authorization constraint (integrator-only) and implies a mutating decision, but it omits side effects, reversibility, and how base_revision or decision_note affect 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 phrase is very concise and front-loads the role restriction, but it is under-specified to the point of being a fragment. There is no waste, but the compactness is achieved by omitting context rather than by structured 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?
An output schema exists, so return format needs no explanation, but the description still leaves the rejection workflow, parameter meanings, and side effects largely implicit. An agent would need sibling tools and schema names to infer the intended 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 for five required parameters. It only hints at actor_role via 'Integrator-only'; event_id, base_revision, and decision_note semantics are left to inference from their names.
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 communicates a rejection action and an integrator role restriction, so it is more than a tautology. However, it is a fragment that never names the event resource or explicitly contrasts with accept_event/review_event beyond the word 'reject'.
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?
'Integrator-only' is an implicit usage condition: only integrators should invoke this. It does not state when rejection is appropriate or point to alternatives like accept_event, so the agent must infer the workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reopen_contractB
Integrator-only loud reset to drafting; unbinds acceptor, clears verifications.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and it names concrete behavioral side effects: resetting to drafting, unbinding the acceptor, and clearing verifications. It stops short of explaining reversibility, audit/notification effects, or failure modes, but the core destructive behavior is disclosed. 'Loud' hints at observability but is left undefined.
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 extremely compact and front-loads the most important qualifier ('integrator-only') and action. The semicolon-separated side effects are efficient, though 'loud' could be clarified without adding length.
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 5-required-param mutation with no annotations and zero schema descriptions, a single sentence is insufficient. The agent cannot determine parameter semantics, usage conditions, or full consequences; the output schema helps with return shape but not with calling 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?
Schema coverage is 0%, so the description must explain the five required parameters; it only implies actor_role='integrator' through 'integrator-only.' contract_id, base_revision, reason, and actor_id remain unexplained, especially the revision-checking purpose of base_revision and why reason is required.
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 distinct action—'reset to drafting'—on the contract resource and explicitly lists side effects ('unbinds acceptor, clears verifications'), separating it from accept_contract, seal_contract, and reject_contract. The term 'loud' is jargon but does not obscure the core 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?
The only usage signal is 'integrator-only,' which restricts who may call it but not when. It does not state conditions for resetting to drafting, contrast with reject_contract or waive_deviation, or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_verificationB
Report a probe outcome for an invariant (append-only; post-seal only).
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | ||
| outcome | Yes | ||
| actor_id | Yes | ||
| evidence | No | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| invariant_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must convey behavior, and it does disclose the key traits of being append-only and post-seal only. This is meaningful because it signals immutability and a lifecycle restriction. It does not cover permission requirements, failure behavior, or duplicate-report handling, leaving some transparency gaps.
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 dense sentence with no filler; the action and the two important constraints ('append-only', 'post-seal only') all earn their place. It is well-structured for quick parsing.
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?
Despite having an output schema, the tool still has 7 parameters (5 required) with no schema descriptions and no annotations. The one-line description does not explain required parameter semantics or operational details such as what counts as a valid outcome or how evidence should be shaped. This is insufficient for reliable invocation without additional context.
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 needed to explain fields like run_id, outcome, actor_id, evidence, actor_role, contract_id, and invariant_key. 'Invariant' and 'outcome' are the only concepts hinted at; the remaining parameters are left semantically undefined. The description adds only marginal value over the bare schema.
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 ('Report') and a specific object ('probe outcome for an invariant'), so a model can tell what action this tool performs. It also adds 'append-only; post-seal only' scope, which makes the purpose more concrete. It does not explicitly differentiate from siblings like append_event or evaluate_contract, so it stops short of 5.
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?
'Post-seal only' gives a clear lifecycle condition for when this tool can be used, and 'append-only' rules out updates. However, no alternative tool is named and there is no explicit 'when not to use' beyond the seal condition, so it does not fully replace comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_interventionC
Move an active run into a local awaiting-human lane.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| run_id | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| decision_packet | No | ||
| intervention_kind | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It only states the high-level action; it does not mention side effects, reversibility, whether the human lane persists, what happens to the run after intervention, or any authorization requirements. This is insufficient for a mutation-style 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 a single, tightly worded sentence with no filler. It front-loads the action and destination. However, its brevity comes at the cost of omitting essential behavioral and parameter context.
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 has six parameters, five required, no parameter descriptions, and no annotations, a one-sentence description is far from complete. The presence of an output schema reduces the need to document return values, but does not compensate for absent parameter semantics, usage guidance, and side-effect disclosure.
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 adds no meaning to any of the six parameters. Terms like intervention_kind, decision_packet, and actor_role remain completely unexplained. With no enrichment from the description, the agent cannot correctly construct arguments.
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 ('Move'), identifies the resource ('an active run'), and states the destination ('a local awaiting-human lane'). It clearly indicates the core operation. It does not explicitly differentiate from siblings like raise_attention, but the core action is understandable.
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 guidance is provided on when to use this tool versus alternatives such as raise_attention, respond_intervention, or list_pending_reviews. The description implies the run must be active and the result is local, but it does not state prerequisites, exclusion conditions, or which sibling tools should be chosen instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_interventionB
Record a human response and return the run to local execution.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| actor_id | Yes | ||
| response | Yes | ||
| actor_role | Yes | ||
| reviewed_event_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 clearly states the main side effect—recording a response and returning the run to local execution—but it does not disclose whether this resolves the intervention, what permissions are required, or how the response is associated with a reviewed event. The core behavior is transparent, though edge details are missing.
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 tightly worded sentence with no filler. Both clauses earn their place: what is recorded and what effect it has. It is appropriately sized for a simple tool.
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 five parameters, no annotations, zero parameter descriptions, and a large sibling set representing an intervention workflow, this one-sentence description is not complete. It does not explain how this tool fits into the intervention lifecycle, who should call it, or how it relates to pending reviews and rejected/accepted events. The presence of an output schema reduces the need to describe return values, but the missing workflow context remains significant.
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 explaining parameters. It indirectly clarifies 'response' as the human response and 'run' as the run being returned to execution, but it does not explain run_id, actor_id, actor_role, or reviewed_event_id. This is insufficient for a 5-parameter tool with no other description coverage.
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 ('Record') and a clear resource ('a human response'), and it adds the consequence ('return the run to local execution'), which distinguishes it from related tools like request_intervention or review_event. It does not explicitly name a sibling, but the action is specific enough for an agent to infer its 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 implies the tool is used after an intervention when a human response needs to be recorded, but it offers no explicit guidance on when to choose this over request_intervention, review_event, accept_event, or reject_event. There are no stated exclusions or alternatives, leaving the decision largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_eventC
Append an Integrator review decision for a submitted event.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| event_id | Yes | ||
| actor_role | Yes | ||
| base_revision | Yes | ||
| decision_note | Yes | ||
| decision_status | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It states the operation appends a review decision, but it does not explain what happens to the event, whether decision_status triggers a state transition, what base_revision means for concurrency, or what side effects and permissions are involved.
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 11-word sentence with no filler, front-loading the verb and object. It is appropriately sized and every word contributes to identifying the tool's 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?
Given six required parameters, zero schema descriptions, no annotations, and a large sibling set that includes several review/decision tools, this description is not complete enough for correct invocation. It lacks parameter semantics, behavioral effects, and routing guidance between review_event and accept_event/reject_event.
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 adds almost no parameter-level meaning. It hints that decision_status and decision_note relate to a review decision, but it does not define valid decision_status values, the purpose of base_revision, or how actor_role should be set. This is insufficient compensation for the schema's lack of 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 uses a specific verb ('Append') and a concrete resource ('Integrator review decision' for a 'submitted event'), so the core action is clear. It does not differentiate this tool from closely related siblings such as accept_event, reject_event, or list_pending_reviews, but it is not vague or tautological.
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?
There is no guidance on when to use this tool versus accept_event, reject_event, or other review-related siblings. The only implicit context is that the event is 'submitted' and the actor is an 'Integrator', but no explicit when-to-use, when-not-to-use, or alternative selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seal_contractC
Seal invariants and bind the independent acceptor (deny+second-instance required).
| Name | Required | Description | Default |
|---|---|---|---|
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| base_revision | Yes | ||
| acceptor_actor_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It implies a state change ('seal'/'bind') and hints at a requirement, but it does not explain side effects, reversibility, authorization needs, or what 'deny+second-instance' means.
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 front-loaded sentence with no filler—the verb and object come first. The parenthetical is compact, though cryptic, so the structure is efficient even if the terminology is not fully accessible.
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 5-parameter tool with no annotations, this one-liner is incomplete: it omits preconditions, behavioral effects, and clear parameter semantics. The output schema may cover return values, but the input contract and operational context remain under-specified.
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 map 'independent acceptor' to acceptor_actor_id or explain actor_id, actor_role, or base_revision. The parameter names are somewhat self-explanatory, but with five required parameters and no schema descriptions, this is insufficient.
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 an explicit verb ('Seal') and names the resource ('invariants') plus the act of binding an independent acceptor. It is reasonably clear, but it relies on domain jargon ('deny+second-instance required') and does not explicitly differentiate from sibling contract-related 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 guidance is provided about when to use seal_contract versus related tools such as add_invariant, accept_contract, or reject_contract. The parenthetical hints at a precondition but does not explain it or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_handoffA
Submit a reviewable handoff event; completion is not acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| assignment_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 usefully reveals that submitting a handoff does not mean accepting it, which is a meaningful behavioral nuance. However, it does not mention side effects, review flow consequences, required permissions, or idempotency, leaving significant behavioral ambiguity.
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, front-loaded sentence with no filler. The core action and the key caveat are both included without unnecessary elaboration.
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 required parameters including a nested payload, zero schema parameter coverage, and no annotations. The description gives only a high-level purpose and one caveat, but does not explain the roles, revision semantics, payload expectations, or what 'reviewable' entails in practice. The output schema reduces the need to explain return values, but the input contract remains under-specified.
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 adds no information about any of the five required parameters. In particular, base_revision and payload have no explanation, leaving the agent to guess their meaning and format. The description does nothing to compensate for the schema's complete 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?
States a specific verb ('Submit') and resource ('reviewable handoff event'), and the caveat that completion is not acceptance distinguishes this from acceptance-related siblings such as accept_event and reject_event. The purpose is immediately clear and non-tautological.
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 'reviewable handoff event' gives clear context that this tool creates a handoff intended for review, and 'completion is not acceptance' warns against using it as an acceptance action. It does not explicitly name alternative siblings or define when-not conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supersede_assignmentC
Integrator-only: retire an assignment replaced by another (superseded_by).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| assignment_id | Yes | ||
| base_revision | Yes | ||
| superseded_by | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of explaining side effects. It discloses an integrator role restriction and a 'retire' state change, but not what retirement does to the assignment, whether it is reversible/destructive, how `base_revision` participates in optimistic concurrency, or any error 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 tight sentence with no filler and front-loads the important access restriction. It is slightly too terse to fully carry the tool's contract, but as a concise statement it 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?
Despite an output schema, the 6-parameter mutation with 0% schema coverage and no annotations needs stronger contextual description to be invoked safely. Missing parameter semantics, behavior, and comparison to related assignment tools make the definition incomplete.
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 the six required parameters. It only clarifies `superseded_by`; `assignment_id`, `base_revision`, `actor_id`, `actor_role`, and `reason` receive no explanation beyond their names.
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 names a specific operation—retire an assignment—and identifies the distinguishing condition: it is replaced by another assignment via `superseded_by`. It is not a tautology and generally separates this from the sibling `cancel_assignment`, though it does not explicitly name that sibling.
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 'retire an assignment replaced by another' implies the triggering situation for use, and 'Integrator-only' provides an audience restriction. However, the description does not explicitly say when not to use it or direct the agent to alternatives such as `cancel_assignment`, leaving some selection reasoning to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
waive_deviationA
Acceptor-only: formally downgrade a blocker deviation to acceptable_this_phase.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| actor_id | Yes | ||
| actor_role | Yes | ||
| contract_id | Yes | ||
| deviation_id | Yes | ||
| base_revision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It does disclose an authorization constraint ('Acceptor-only') and a state transition ('blocker' to 'acceptable_this_phase'), but it does not explain side effects, reversibility, concurrency implications of base_revision, or failure 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 focused sentence with no filler. The most important constraint ('Acceptor-only') is front-loaded, and every word adds meaning.
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 mutation tool with six required parameters, no annotations, and no parameter descriptions in the schema. One sentence is not enough to guide an agent safely: it needs clarity on base_revision, the meaning and necessity of reason, and any preconditions or side effects.
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 meanings. It only hints at actor_role ('Acceptor-only') and the target deviation state ('blocker'), but it does not explain base_revision, reason, contract_id, deviation_id, or actor_id 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 states a specific verb ('downgrade'), a specific resource ('blocker deviation'), and a concrete target state ('acceptable_this_phase'). It also names the role constraint upfront ('Acceptor-only'), which distinguishes it from related deviation-handling tools like raise_deviation.
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 clear context by specifying that only acceptors can perform this action and that it applies to blocker deviations. However, it does not explicitly say when to choose this over alternatives such as reject_event, review_event, or respond_intervention, nor does it state when not to use it.
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.
6 tool updates
v0.2.8- Changed
get_attention_board2 fields changed- removed
Input schema / properties / team_id / defaultRemoved value: -"default" - added
Input schema / requiredAdded value: +[ + "team_id" +]
- Added
get_event_detail - Changed
get_snapshot2 fields changed- added
Input schema / properties / team_idAdded value: +{ + "title": "Team Id", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "team_id" +]
- Changed
get_team_board3 fields changed- added
Input schema / properties / statusAdded value: +{ + "anyOf": [ + { + "enum": [ + "proposed", + "ready", + "claimed", + "running", + "awaiting_human", + "awaiting_approval", + "awaiting_review", + "needs_fix", + "blocked", + "accepted", + "rejected", + "cancelled", + "superseded" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Filter by one exact assignment status. Omit to exclude accepted, rejected, cancelled, and superseded assignments.", + "title": "Status" +} - removed
Input schema / properties / team_id / defaultRemoved value: -"default" - added
Input schema / requiredAdded value: +[ + "team_id" +]
- Changed
list_contracts9 fields changed- removed
Input schema / properties / team_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / team_id / defaultRemoved value: -null - added
Input schema / properties / team_id / typeAdded value: +"string" - removed
Input schema / properties / workspace_idRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Workspace Id" -} - added
Input schema / requiredAdded value: +[ + "team_id" +] - added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Result", - "type": "array" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"list_contractsOutput"New value: +"list_contractsDictOutput"
- Changed
list_pending_reviews6 fields changed- added
Input schema / properties / team_idAdded value: +{ + "title": "Team Id", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "team_id" +] - added
Output schema / additionalPropertiesAdded value: +true - removed
Output schema / propertiesRemoved value: -{ - "result": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "title": "Result", - "type": "array" - } -} - removed
Output schema / requiredRemoved value: -[ - "result" -] - changed
Output schema / titlePrevious value: -"list_pending_reviewsOutput"New value: +"list_pending_reviewsDictOutput"
42 tool updates
v0.2.6- First observed
accept_contract - First observed
accept_event - First observed
add_invariant - First observed
append_event - First observed
archive_workspace - First observed
bind_assignment_to_contract - First observed
cancel_assignment - First observed
checkpoint_run - First observed
claim_assignment - First observed
create_acceptance_contract - First observed
create_assignment - First observed
create_team - First observed
evaluate_contract - First observed
export_git_projection - First observed
get_assignment_detail - First observed
get_attention_board - First observed
get_contract_detail - First observed
get_human_brief - First observed
get_run_detail - First observed
get_snapshot - First observed
get_team_board - First observed
get_workspace_detail - First observed
heartbeat_run - First observed
list_contracts - First observed
list_pending_reviews - First observed
list_workspaces - First observed
raise_attention - First observed
raise_deviation - First observed
record_run_binding - First observed
register_actor - First observed
register_workspace - First observed
reject_contract - First observed
reject_event - First observed
reopen_contract - First observed
report_verification - First observed
request_intervention - First observed
respond_intervention - First observed
review_event - First observed
seal_contract - First observed
submit_handoff - First observed
supersede_assignment - First observed
waive_deviation
TDQS
Scored across 43 tools
Most tools are grouped clearly by resource type (workspace, run, assignment, event, contract) and many explicitly state role restrictions, so an agent can usually pick the right one. The only real ambiguity is around event-related operations like append_event vs. submit_handoff and review_event vs. accept_event/reject_event.
All tool names consistently use lowercase snake_case with a predictable verb_noun or verb_qualifier_noun pattern. Get-vs-list is used consistently, and lifecycle actions like create, claim, cancel, seal, reopen, and waive are all recognizable and parallel.
At 43 tools, the set is well above the 25+ threshold that makes a surface feel heavy, and an agent must navigate many narrowly scoped, role-gated operations. The domain is complex, but this count still strains selection, recall, and effective tool routing.
The set covers workspace/team/actor registration, assignment and run lifecycles, event review, human intervention, contracts, invariants, deviations, and verification with few obvious dead ends. Minor gaps remain, such as the lack of a dedicated run-completion tool, no list_events operation, and seal_contract referencing an external deny/second-instance step without a dedicated tool.
Maintenance
Related MCP Connectors
Local-first memory and continuity for AI coding agents. No cloud backend; optional hosted lane.
Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
- ParleyOAuthdev.weldra
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA coordination layer for coding agents that provides memorable identities, inbox/outbox messaging, searchable message history, and file lease management to prevent conflicts. Uses Git for human-auditable artifacts and SQLite for fast queries, enabling multiple agents to collaborate across projects without stepping on each other.2,156MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA production-grade coordination hub that enables AI agents and human teams to work as a single organism by sharing tasks, context, decisions, and persistent memory across projects. It features two-tier agentic memory with per-agent hot caches, inter-agent messaging, and multi-agent authorship tracking for seamless collaboration.2-
- AlicenseAqualityCmaintenanceLocal-first shared memory and coordination layer for AI coding agents, with repository evidence, reservations, handoffs, code graph context, and dashboard review backed by PostgreSQL/pgvector.303Apache 2.0
- FlicenseNot gradedqualityAmaintenanceA local-first MCP server and CLI that gives coding agents structured project memory, task contracts, context packs, backlog workflows, and verification evidence, storing data in reviewable Markdown/YAML with a fast SQLite index.3-