TeamShared
Server Details
Shared memory for coding agents. Stop re-explaining your codebase every session.
- Status
- Healthy
- Uptime
- 95.0% over 83 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- teamshared-ai/teamshared-plugin
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 202 tools
Many tool families overlap heavily: file_* vs storage_*, context_* vs memory_session_*, memory_playbook_* as aliases for memory_procedure_*, and several agent vs memory_agent vs agent_run tools. Descriptions are detailed, but an agent must parse subtle distinctions and is likely to misselect among similar-looking tools.
Nearly all names are snake_case with resource/action prefixes, and major domains use predictable families like work_create, project_get, storage_list, and memory_recall. There are minor deviations such as alias families, verbless tools like health/version/process_template, and odd prefixes like glian_*, but no chaotic mixing.
A 202-tool surface is an extreme mismatch for a coherent MCP server; the rubric's 50+ threshold is exceeded by roughly four times. Even for a broad platform, this scale makes discovery, selection, and maintenance impractical without auxiliary catalogs or choosers.
The surface covers CRUD/lifecycle operations across work, projects, files, storage, memory, agents, GitHub, process, and org administration, with many edge operations included. Some domains have gaps, such as project sections only supporting add/list, messages lacking delete/archive, and some ontology/strategic entities lacking delete, but most core workflows are covered.
Available Tools
202 toolsaccount_briefAInspect
Weekly account file for one strategic Person or Organization.
Writes one shared file (stakeholders, initiative, objections, last
evidence, next review, five-line brief) attached as an artifact on a
create-once account work item. Returns {changed: false} and does
not comment when the picture is unchanged. Weekly schedule is bot-side.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Person or Organization slug (not Contact or Deal) | |
| agent | No | Override agent identity |
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, and it delivers real behavioral detail: it returns '{changed: false}' and does not comment when the picture is unchanged, and it writes to a 'create-once' work item rather than creating a new one each run. This exceeds what the schema alone reveals, though it does not cover overwrite vs. append or auth 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?
The description is tightly written and front-loaded: purpose in the first sentence, artifact details, no-op return behavior, and bot-side scheduling each in their own clause. Every sentence earns its place with zero filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered. The description explains what the file contains, where it attaches, the no-op behavior, and the scheduling model. The only notable gap is what happens on a changed picture (presumably it does comment), which is implied but not stated.
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 100%, so both parameters are already documented. The description adds minimal parameter-specific meaning beyond the schema — it reinforces that slug targets a Person/Organization rather than a Contact or Deal, but introduces no new syntax or formatting guidance. The baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Writes one shared file (stakeholders, initiative, objections, last evidence, next review, five-line brief) attached as an artifact on a create-once account work item.' This is concrete enough to distinguish it from generic siblings like file_create, work_create, and storage_attach, which have no weekly-brief semantics.
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 scoping context ('for one strategic Person or Organization', 'Weekly schedule is bot-side') and the schema notes slug is 'not Contact or Deal', which narrows usage. However, it never names an alternative or states an explicit when-not-to-use condition, leaving the agent to infer that this is a scheduled bot task rather than a manually invoked tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_createAInspect
Create a dedicated agent record (#733/#734): model, tools, standing procedure, memory lens, focus and an optional spend cap. Needs org:admin; agent seats are refused.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | specialist (default) or service. The manager is seeded, not created | specialist |
| slug | Yes | Agent handle: agent-<label> or <label> (lowercase, dashes) | |
| agent | No | Override agent attribution label | |
| focus | No | Standing strategic binding: objective_ids / key_result_ids / initiative_ids plus optional work_filter (#734) | |
| model | No | Router model id every run of this agent uses; omit for the default | |
| budget_usd | No | Spend cap in USD for this agent (decimal, "0" blocks every new run). Set it with budget_period, or omit both for no cap. | |
| namespaces | No | Memory lens containers (repo:/github:/project:). Narrows recall; not a private store (#734) | |
| persona_md | No | Private standing brief for the agent's own prompt (#734) | |
| mcp_servers | No | External MCP servers this agent's runs may call (#1264): objects with name, url (https), optional tools (allowlist), secret (vault secret name, never a token) and enabled. Offered only when the run's tool allowlist grants them (all, mcp, or ext_<name>__*) | |
| skill_slugs | No | Standing skills this agent always brings (#734) | |
| display_name | No | Name people see; defaults to 'Agent <label>' | |
| github_grant | No | This agent's GitHub grant (#1379): {repos: [owner/repo, ...], read, write, destructive}, each level off, auto or ask. Repos must be ones the org's GitHub App serves. Omit to keep the org default. Only a person can set it | |
| budget_period | No | UTC window the cap resets on: day, week (Monday) or month | |
| tool_patterns | No | Tool names or prefix* globs this agent's runs may bind. Narrows the deployment's allowlist, never widens it. Omit for the default | |
| playbook_slugs | No | Standing playbooks used when a work item has no playbook_slug (#734) |
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 must carry the behavioural load, and it does disclose the admin requirement, the seat refusal, and the meaningful "0" blocks every new run semantics for the spend cap. It is silent on mutation-relevant behaviour such as duplicate-slug handling, idempotency, and what side effects creating a record triggers, which matters for a write tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences that lead with the action and resource, then the capability surface, then the gating rule; nothing is padding. The issue-tracker references (#733/#734) are the only noise, and they are minor.
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 15-parameter creation tool whose schema is fully documented and which has an output schema, the description covers purpose, the configurable surface, and the permission/seat gate — enough for an agent to decide and call correctly. Remaining gaps (duplicate-slug behaviour, what is auto-provisioned) are refinements rather than blockers.
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 100% and the schema already documents every parameter, including enums and defaults, so the baseline is 3. The description's summary of configurable aspects (model, tools, standing procedure, memory lens, focus, spend cap) largely restates what the schema fields already say and adds no syntax or constraint detail of its own.
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 and resource ("Create a dedicated agent record") and enumerates the configurable surface (model, tools, standing procedure, memory lens, focus, spend cap), so an agent knows exactly what is produced. It does not explicitly differentiate itself from the neighbouring agent_update or agent_get, so sibling routing is left to inference from the verb 'create'.
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?
"Needs org:admin; agent seats are refused" gives a real precondition and a refusal condition, which is more than most definitions offer. However, no alternative is named — it never says to use agent_update to change an existing agent or agent_get to inspect one — so the when-to-use decision against siblings is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_getAInspect
Read one agent record: kind, status, model pin, tool patterns and, when a cap is set, a budget block (spent vs cap for the current UTC period; null when there is no cap). If the spend lookup fails the block keeps the saved period and budget_usd and sets error to unavailable. The org-visible charter is the entity's memory: memory_agent_get(slug=).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Agent record slug (agent-<label> or <label>) |
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 and does well: it discloses null semantics for the budget block and the exact degraded behavior on spend-lookup failure (keeps saved period and budget_usd, sets error to unavailable). It does not mention permissions/auth needs, but the read-only nature is evident from "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?
Front-loaded with the core purpose, then the budget-block edge case, then the sibling routing. Every clause earns its place, though the budget-block sentence is dense and the charter sentence is slightly tangential.
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 needn't be explained, yet the description usefully previews the budget block and its failure mode, and points to the tool holding the charter. Nothing an agent needs to call this correctly 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 coverage is 100% for the single slug parameter, and the description adds no syntax or format detail beyond what the schema already documents. Baseline 3 applies when the schema does the heavy lifting.
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 ("Read one agent record") and enumerates the contents (kind, status, model pin, tool patterns, budget block). It is clearly distinguishable from agent_list (multiple), agent_create/update (write) and from memory_agent_get, which it names as the holder of the charter.
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 word "one" and the slug-bound schema make the single-record fetch context clear, and the closing sentence routes the agent to memory_agent_get for the charter, an explicit alternative. There is no explicit when-not guidance versus agent_list, so it falls 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.
agent_listBInspect
List this org's agent records, oldest first (the manager leads). Each row includes a budget block when that agent has a spend cap.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only this kind | |
| limit | No | ||
| cursor | No | next_cursor from the previous page | |
| status | No | Only this status (archived records are listed only when asked) |
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 behavioral burden. It usefully discloses the sort order and the conditional 'budget block when that agent has a spend cap', but says nothing about pagination behavior, auth/permission requirements, or that this is a read-only operation beyond the verb 'List'.
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 tight sentences with the core action front-loaded and zero filler. The parenthetical '(the manager leads)' is slightly cryptic but earns its place by explaining the ordering semantics.
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 needn't be described, and 75% of params are schema-documented. The description usefully adds the ordering and conditional budget-block behavior; the main gap is that a no-annotation read/list tool leaves pagination and safety characteristics implicit.
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 75% (kind, cursor, status documented; limit bare), and the description adds no parameter-level meaning of its own. It only describes row content, so the schema does essentially all the work — a baseline 3 is appropriate.
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 ('List this org's agent records') and adds the ordering rule (oldest first, manager leads), so an agent knows exactly what the operation returns. It does not explicitly distinguish itself from siblings like agent_get or agent_routine_list, but the verb+resource pair is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as agent_get for a single record. The only usage-adjacent signal ('archived records are listed only when asked') lives in the schema's status param, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_routine_listBInspect
List routines on one agent: cron, timezone, next fire, last status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from the previous page | |
| agent_slug | Yes | Agent record slug (agent-<label> or <label>) |
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 behavioral burden. "List" implies a read-only operation and it names returned fields, but it omits pagination behavior, permissions, rate limits, and error handling.
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; every phrase identifies the operation, scope, or returned data.
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 list tool with an output schema, the description covers purpose, scope, and key fields. It remains incomplete on pagination semantics and usage guidance, but the output schema reduces the need to explain return values.
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 67%, and the description's "one agent" reinforces the required agent_slug parameter. It adds no detail about limit or cursor, but the schema already documents two of the three parameters.
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 ("List") and resource ("routines") with a clear scope ("on one agent") and lists the key fields returned. It is clear, though it does not explicitly distinguish itself from the sibling mutation tool agent_routine_set.
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 guidance, no exclusions, and no alternatives named. The usage is only implied by the tool name and the phrase "on one agent."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_routine_setAInspect
Create or update a standing cron routine on an agent (#736). Each fire starts a run bound to that agent as an unattended run, on the authority of the person setting it; the outcome posts into their channel with the agent. org:admin, as a person (or the manager acting for one); specialist seats are refused.
| Name | Required | Description | Default |
|---|---|---|---|
| cron | Yes | 5-field cron: minute hour day-of-month month day-of-week (e.g. '0 9 * * 1-5' for weekdays at 09:00 in timezone=) | |
| name | Yes | Routine handle: lowercase, dashes/underscores | |
| agent | No | Override agent attribution label | |
| prompt | Yes | Prompt the bound agent_run_start receives when this fires | |
| enabled | No | False pauses the schedule without deleting it | |
| timezone | No | IANA timezone for the cron (e.g. Europe/Lisbon). Default UTC | UTC |
| agent_slug | Yes | Agent record slug (agent-<label> or <label>) |
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 and does well: each fire starts an unattended run bound to the agent, the run executes on the setting person's authority, and the outcome posts into that person's channel with the agent. The seat/admin gating and refusal of specialist seats are disclosed. It omits what an update does to pre-existing routine fields and whether runs are billable or throttled.
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 compact sentences, front-loaded with the create/update purpose before the behavioral and permission detail. The parenthetical issue reference '(#736)' is opaque noise that does not help an agent decide anything.
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 need no explanation, and the description covers purpose, side effects, authority model, and permission gating. It leaves open how updates merge with existing routines and how this relates to the sibling list/cancel tools, which keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents cron format, timezone, enabled, name handle, agent_slug, and prompt. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
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 pair (create or update), a specific resource (standing cron routine), and its target (an agent), which cleanly distinguishes it from sibling agent_routine_list. An agent can tell what this does without opening the schema.
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?
Gives strong operating context: it is for standing/scheduled routines, requires org:admin acting as a person, and specialist seats are refused. It does not explicitly name alternatives (e.g. agent_run_start for one-off runs) or state when an update path is preferred over delete/recreate, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_cancelCInspect
Cancel the active TeamShared Cloud Agent run.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| run_id | No | TeamShared run UUID or Cursor run-… id | |
| cursor_agent_id | No | TeamShared agent id (ts-…, latest run) |
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 indicates a mutating action ('Cancel') but does not explain consequences such as whether the run is irreversibly stopped, whether resources are cleaned up, whether confirmation is needed, or what happens to in-flight work. The description adds no behavioral context beyond the verb itself.
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. It is concise and immediately identifiable as an action statement. It loses one point because the imprecise 'active' qualifier is not clarified, but overall it is well-sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three optional parameters and an output schema, but no annotations and no usage context. The description does not explain how to choose between run_id and cursor_agent_id, what 'active' means in this context, or what side effects cancellation has. For a mutating tool, this is 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 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides, and the schema adequately describes run_id, cursor_agent_id, and agent. No additional insight is needed, but none is offered.
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 ('Cancel') and resource ('TeamShared Cloud Agent run'), making the basic action clear. However, the qualifier 'active' is slightly misleading because the schema allows specifying a run_id or cursor_agent_id for a particular run, not necessarily the active one. Still, the core purpose is unambiguous and distinct from sibling agent_run_* 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 guidance on when to use this tool versus alternatives like agent_run_status, agent_run_followup, or agent_run_hitl_decide. It does not describe prerequisites, side effects to check before cancelling, or situations where cancellation would be appropriate. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_childAInspect
Run a nested Cloud Agent to completion; returns summary and artifact refs only.
Only available inside an active TeamShared Cloud Agent run. The child's transcript is not appended to this run's message history.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional workspace slug | |
| agent | No | Override agent attribution label | |
| brief | Yes | Isolated goal and constraints for the nested worker | |
| model | No | Optional router model id | |
| tools | No | Tool patterns for the child; cannot widen this run's allowlist | |
| github | No | Optional owner/repo checkout; defaults to this run's repo. An explicit, inherited, or code-tagged org-default slug the App does not serve is refused (github_repo_not_bound). A failed installation read refuses a named slug (github_binding_unavailable) | |
| durable_memory | No | Keep the child's own capture session and run memory, for a specialist that must remember its work. Default false. |
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 and usefully discloses that only summary and artifact refs are returned and that the child transcript is not appended to this run's history. However, it omits operational behavior such as credit consumption, failure handling, concurrency limits, and whether the call is blocking beyond the phrase 'to completion'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences and front-loads the core action. Every sentence adds relevant information: the operation, the restricted availability, and the transcript isolation behavior.
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 output schema exists, so return values need not be explained in detail, and the input schema covers parameters richly. The description supplies the key non-obvious context about nested execution and transcript isolation, though it leaves out some operational details like credit impact and failure modes.
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 100%, so the input schema already documents all seven parameters thoroughly. The description adds no parameter-specific meaning beyond what the schema provides, which is the baseline expectation when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: run a nested Cloud Agent to completion. It explicitly distinguishes this from top-level run tools by saying it is only available inside an active TeamShared Cloud Agent run and returns only summary and artifact refs.
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 precondition, that it only works inside an active TeamShared Cloud Agent run, but it does not contrast this with alternatives such as agent_run_start or agent_run_followup. The usage is implied rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_followupAInspect
Enqueue a follow-up prompt on an existing TeamShared Cloud Agent.
Runs on the seat's recorded model, re-checked like agent_run_start; a swap is reported as model_substitution. Keeps the run's tools narrowing and agent record. From inside a run, those tools are also limited to the calling run's allowlist (tools_not_permitted when nothing overlaps); a calling run of kind child drops shell, browser and secret HTTP the same way a nested start does. A follow-up with no calling run keeps the target run's tools. A follow-up on a run bound to an agent that has spent its cap is refused with agent_budget_exceeded; the turn already running is not stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| prompt | Yes | Follow-up prompt for an existing cloud agent | |
| run_id | No | TeamShared run UUID or Cursor run-… id | |
| cursor_agent_id | No | TeamShared agent id (ts-…) when run_id is omitted |
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 and does so richly: model substitution is reported as model_substitution, tool narrowing is inherited and further restricted to the calling run's allowlist with tools_not_permitted, child-kind callers drop shell/browser/secret HTTP, no-calling-run keeps target tools, and budget exhaustion refuses with agent_budget_exceeded while leaving the running turn alone. That is exactly the pre-call behavioral context an agent needs.
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?
Front-loaded with the one-line purpose, then trades detail for correctness; every clause about substitution, allowlists and budget maps to a real decision point. Sentences are long and jargon-dense (e.g. 'Keeps the run's tools narrowing and agent record'), costing a little readability.
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 complex nested-run tool with no annotations, the description covers the behaviors that matter (model re-check, tool inheritance/allowlist, budget refusal, running turn preserved), and return values are covered by the existing output schema, so 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?
Schema description coverage is 100% and the schema already explains prompt, run_id (TeamShared UUID or Cursor run-… id), cursor_agent_id (used when run_id is omitted) and the agent label. The description references 'a run bound to an agent' but does not clarify precedence or when to prefer cursor_agent_id over run_id, so it adds little beyond the schema — baseline 3.
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 first sentence names a specific verb and resource — 'Enqueue a follow-up prompt on an existing TeamShared Cloud Agent' — and the word 'existing' separates it from agent_run_start (creating a new run). An agent can pick between the two siblings without opening either schema.
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 'existing ... agent' framing plus repeated contrasts to agent_run_start and 'a nested start' make the when-to-use context clear. It never states the negative case outright (e.g. 'to create a new run use agent_run_start instead'), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_hitl_decideAInspect
Resume a paused agent run after a human decides on a gated tool call (#872).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| reason | No | Required for reject; optional context for approve/edit | |
| run_id | Yes | TeamShared run UUID awaiting approval | |
| decision | Yes | approve, reject, or edit the pending destructive tool call | |
| arguments | No | Edited tool arguments when decision=edit |
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 behavioral disclosure burden. It states that a run is resumed and that a human has decided, but it does not disclose the consequences of that decision: approving may execute the previously gated call, rejecting may deny it, and editing changes the arguments before execution. For a mutation tool, this is a meaningful 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?
One short, front-loaded sentence that states the action first and the trigger second. There is no filler, and it is easy for an agent to scan and understand in one pass.
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 a full schema, an output schema, and no nested objects, the description does not need to restate parameters or return values. However, the absence of any behavioral/safety context, no annotations, and no statement about what approve/reject/edit causes, leaves the context only partially complete for a tool that gates a destructive 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 100%, so the schema already documents all five parameters, including the required reason for reject and the arguments field for edit. The prose adds no parameter-level detail beyond the phrase 'gated tool call,' which gives context but does not add semantics beyond the 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 names a specific action ('Resume'), a specific resource ('a paused agent run'), and the exact trigger ('after a human decides on a gated tool call'). This is not a tautology and clearly differentiates the tool from siblings such as agent_run_cancel, agent_run_status, and agent_run_followup.
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 gives a clear condition for use: a paused agent run that is waiting on a human decision about a gated tool call. It does not explicitly spell out when not to use it or name alternatives like request_gated_approval or agent_run_followup, so it stops short of exhaustive routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_listAInspect
List TeamShared Cloud Agent runs in this org.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| work_id | No | Filter to one work item UUID | |
| cursor_agent_id | No | Filter to one TeamShared agent id (ts-…) |
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 states a read-only action ('List') but does not mention pagination, ordering, auth requirements, or any side effects. For a list operation, it is reasonable to assume safety, but the description fails to explicitly confirm that, leaving the agent to infer 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?
A single, front-loaded sentence that states the purpose without any fluff. It efficiently communicates the essential action and scope, making it easy for an agent to parse quickly. There is no redundant information or unnecessary 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?
Given the simplicity of a list operation and the presence of an output schema, the description is largely sufficient. It mentions the key scope ('in this org') and the entity type, which is enough for basic use. However, it could briefly note that results are paginated via limit/offset to fully prepare the agent, but this is a minor 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?
The description adds no parameter-specific meaning beyond what the schema already provides. Two of the four parameters (work_id and cursor_agent_id) have schema descriptions, while limit and offset are self-explanatory with defaults and bounds. With 50% schema coverage, the description could have clarified usage, but it does not, leaving the agent to rely solely on schema hints.
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 ('List') and a well-defined resource ('TeamShared Cloud Agent runs in this org'). It differentiates from sibling list tools like process_run_list and work_list by naming the exact entity type. The scope 'in this org' adds precision, leaving no ambiguity about what is being listed.
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 explicit guidance on when to use this tool versus alternatives. While the name and description make it obvious this is for listing agent runs, it does not mention exclusions or point to other tools for different list scenarios. Usage is implied rather than stated, which is acceptable but not proactive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_startAInspect
Start a TeamShared Cloud Agent (router + FastMCP). Not a Cursor VM.
The worker mints a short-lived org tsk_ and runs the tool loop against in-process FastMCP. github= is an optional checkout. One active run per work item — a busy run returns status=busy. When the compact bootstrap profile is non-empty it is prepended (capped). When work_id has playbook_slug, that named playbook is prepended after the profile, its skills listed by name for the run to load with memory_skill_get. Unset slug or omitted work_id: no playbook inject. run.model is the model that will run: a model= the router would refuse is substituted (see model_substitution). agent_slug= binds the run to an agent record (#733); the result's agent.inherited says which settings came from it. When that record has a spend cap and the period's spend is at or over it, the start is refused (agent_budget_exceeded) and nothing is queued. From inside a run, tools cannot exceed that run's allowlist (tools_not_permitted when nothing overlaps), and the new run is nested under that run. A chain of nested starts stops at a fixed depth (nesting_depth_exceeded). With no calling run, parent_run_id must name a run in this org (parent_run_not_found, or bad_id).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional workspace slug stored on the run | |
| agent | No | Override agent attribution label | |
| model | No | Router model id (prefixed, e.g. openrouter/...); omit to use TEAMSHARED_AGENT_RUN_MODEL. An id the router would refuse (no routable prefix) is replaced by that default and the result carries model_substitution={requested, model, reason}. | |
| tools | No | Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default. From inside a run, the list cannot exceed that run's tools. | |
| github | No | owner/repo checkout. Omit on a work item tagged code to use the org's only connected repo (github_repo_list); omit otherwise for a no-repo run. A slug the App does not serve is refused once an installation exists. A failed installation read refuses a named slug (github_binding_unavailable) | |
| prompt | Yes | Task prompt for the TeamShared Cloud Agent | |
| runtime | No | Every value starts a TeamShared Cloud Agent on the in-box worker. Omit it, or pass cloud or teamshared. cursor, cursor_cloud, and cursor-cloud are refused with runtime_disabled while TEAMSHARED_CURSOR_CLOUD_RUNTIME_ENABLED is off; with the flag on those names still run on the same TeamShared worker. | |
| work_id | No | Work item UUID; reuses that item's TeamShared agent | |
| agent_slug | No | Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused. A record that has spent its budget_usd cap for the current period is refused with agent_budget_exceeded; a run already going is left to finish. | |
| spawned_by | No | Parent Agent slug or label (dispatcher that spawned this worker) | |
| parent_run_id | No | Parent agent run UUID when this is a nested child run. From inside a run, that run is the parent. With no calling run, the id must be a run in this org | |
| auto_create_pr | No | Hint to open a PR when a coding worker finishes. Defaults to true when the run checks out a repo, and stays unset when it does not | |
| durable_memory | No | Nested runs are ephemeral: no capture session or run memory of their own, the parent's work thread is the record. Set true for a specialist that must keep its own memory. |
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 and does so thoroughly: it discloses one-active-run-per-work-item concurrency, budget refusal semantics (agent_budget_exceeded, nothing queued), allowlist narrowing that can never widen, nesting depth limits, model substitution, auto PR defaults, and durable_memory's ephemeral-by-default behavior. These are exactly the mutation side effects an agent needs before calling.
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?
Every sentence carries information and the purpose is front-loaded, but the body is a dense, unbulleted blob with mid-sentence line breaks that make it hard to scan. The volume is defensible for a 13-parameter tool, yet the lack of structure costs it.
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 13-parameter mutation tool with no annotations, the description covers concurrency, permissions, failure modes, and injection behavior well, and an output schema exists so return values need not be explained. The remaining gap is sibling disambiguation against agent_run_child and agent_run_followup, which matters because nesting is a described behavior of this 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 coverage is 100%, so the baseline is 3, but the description adds genuinely new semantics: explicit model= beats the agent record's model, explicit tools= can only narrow the agent's, github defaults depend on the work item's code tag, and durable_memory changes nested-run lifecycle. It goes past restating the schema, though playbook_slug is referenced in prose despite not being a parameter of this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ("Start a TeamShared Cloud Agent (router + FastMCP)") and rules out a plausible misreading with "Not a Cursor VM." It does not, however, differentiate itself from close siblings like agent_run_child or agent_run_followup, so an agent still has to infer which run-starting tool applies.
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 conditions are implied rather than stated as routing rules: busy runs return status=busy, budget-capped agents are refused, nested starts are capped at a fixed depth. There is no explicit "use this instead of agent_run_child/agent_run_followup when..." guidance, so the when-to-use decision against siblings remains inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_statusBInspect
Read the latest status of a TeamShared Cloud Agent run.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | TeamShared run UUID or Cursor run-… id | |
| cursor_agent_id | No | TeamShared agent id (ts-…, latest run) |
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 available, the description carries full behavioral disclosure. 'Read' indicates a non-mutating operation, which is helpful, but it does not describe behavior when both ids are omitted or invalid, whether it can return partial/in-progress state, or any latency/auth considerations.
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: it states the action, resource, and scope efficiently. Every word contributes to understanding 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?
The output schema covers return values, and the schema covers parameter semantics, but the description itself lacks guidance on when to use this tool and how the optional ids interact. For a tool with two optional parameters, the absence of usage context leaves a noticeable 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 100%, and the schema already documents both parameters, including default behavior for cursor_agent_id. The description adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read'), a resource ('TeamShared Cloud Agent run'), and qualifies it as 'latest status', making the operation clear. It is distinguishable from siblings like agent_run_list or agent_run_cancel, though it does not explicitly name the alternative it is not.
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 on when to use this tool versus agent_run_list or agent_run_start, and no exclusions or conditions. It also does not explain how to choose between run_id and cursor_agent_id, leaving usage context entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_run_trace_getAInspect
Return the stored model/tool/error trace tree for a terminal run (#874).
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | TeamShared agent run UUID | |
| include_io | No | Also return each step's input, output and model text (up to 16,000 characters each, 1,000,000 per run). Default false: step names and labels only. |
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 disclosure burden. It usefully reveals that traces are *stored* and only available for terminal runs, implying non-terminal runs yield nothing — genuine behavioral context. It says nothing about permissions, whether traces expire, or that include_io materially changes payload size, which is a real gap for an unannotated read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the terminal-run constraint appended. Nothing redundant or padded.
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 need not be described, and both parameters are fully covered by the schema. The remaining gap is routing guidance against the many agent_run_* siblings and clarity on which terminal states have persisted traces.
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 100%, and the schema already fully documents run_id and include_io including default and size limits. The description adds no parameter meaning beyond that, so the baseline 3 is appropriate.
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 (Return) and a specific resource (the stored model/tool/error trace tree), which is clearly distinct from sibling readers like agent_run_status or agent_run_list. It does not explicitly name a sibling alternative, but the resource is specific enough that an agent can tell what it retrieves.
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?
"for a terminal run" gives an implied precondition — the run must be finished — which is meaningful selection guidance. However, it never states what to use for a live/in-progress run (agent_run_status) or whether cancelled/failed runs qualify as terminal, so alternatives are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_updateAInspect
Change an agent record: tools, status, standing procedure, lens, focus or spend cap. Needs org:admin; agent seats are refused, and the manager's record is fixed (no cap on the manager).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Agent record slug (agent-<label> or <label>) | |
| agent | No | Override agent attribution label | |
| focus | No | Strategic focus binding; {} clears | |
| model | No | New model pin; empty string clears it (default) | |
| status | No | active, paused (starts no runs) or archived | |
| budget_usd | No | New spend cap in USD. Omit to leave it. "0" blocks every new run. Set with budget_period when the agent has no cap yet. | |
| namespaces | No | Memory lens containers; [] clears | |
| persona_md | No | Private standing brief; empty string clears | |
| mcp_servers | No | Replace the agent's external MCP servers (#1264); [] clears. Objects with name, url (https), optional tools (allowlist), secret (vault secret name, never a token) and enabled. Offered only when the run's tool allowlist grants them (all, mcp, or ext_<name>__*) | |
| skill_slugs | No | Standing skills; [] clears | |
| clear_budget | No | Remove the spend cap. Do not also pass budget_usd or budget_period. | |
| display_name | No | New display name | |
| github_grant | No | Replace the agent's GitHub grant (#1379): {repos: [owner/repo, ...], read, write, destructive}, each level off, auto or ask. To revoke, set the levels to off. Only a person can set it | |
| budget_period | No | day, week (Monday) or month, UTC. Omit to leave it. | |
| tool_patterns | No | New tool patterns; [] clears them (deployment default) | |
| playbook_slugs | No | Standing playbooks; [] clears | |
| clear_github_grant | No | Remove the GitHub grant so the agent follows the org default again. Do not also pass github_grant. |
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 and does disclose the authorization requirement, two hard refusal cases, and the manager-record exception. It does not say whether unspecified fields are preserved or that list-valued fields are wholesale replacements, but those semantics are stated in the schema rather than contradicted here.
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, zero filler: the first front-loads what changes, the second front-loads the constraints that decide whether the call is even legal. Nothing is repeated from the schema.
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 need no explanation, and the schema covers all 17 params in detail. The description adds the operational gate (org:admin, seat/manager refusals) that an agent cannot infer from the schema; the only gap is that replace-vs-merge semantics live solely in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across 17 parameters, so the schema already explains clearing behavior ('[] clears', 'empty string clears'), the budget/clear_budget interaction, and the MCP/GitHub grant shapes. The description only restates the field families in prose ('tools, status, standing procedure, lens, focus or spend cap') without adding format or interaction detail, so baseline 3 applies.
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 ('Change') plus the resource ('an agent record') and enumerates the mutable surfaces (tools, status, standing procedure, lens, focus, spend cap). It is clearly distinguishable from agent_create/agent_get/agent_list by the mutation verb, though no sibling is named explicitly.
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?
Gives real preconditions and exclusions: 'Needs org:admin; agent seats are refused, and the manager's record is fixed (no cap on the manager).' That tells the agent when the call will fail, but it does not route between this tool and alternatives such as agent_create or the memory_* / agent_routine_set tools that also touch agent configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attention_snapshotAInspect
Org attention briefing from open work, project status, and dream.
Work is the signal — not Slack or email. Writes one shared file
(attached as an artifact on a create-once org attention work item).
Returns {changed: false} and does not comment when the picture
is unchanged. Hourly schedule is bot-side.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity |
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 and excels: it discloses that it writes a shared file attached as an artifact on a create-once work item, returns {changed: false} and does not comment when unchanged, and notes the schedule is bot-side. These are concrete behavioral traits beyond the schema.
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 exceptionally concise and well-structured: two sentences front-load the purpose, then add key behavioral details. Every sentence earns its place, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior, side effects, and scheduling, which is strong for a tool with a single optional parameter and an output schema. It lacks explicit prerequisites (e.g., org binding) and return behavior when changed, but those are minor given the output schema exists and the tool is simple.
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 only parameter 'agent' is fully described in the schema ('Override agent identity'), and the description adds no further meaning. Since schema coverage is 100%, the baseline of 3 is appropriate; the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it produces an 'Org attention briefing' from 'open work, project status, and dream', giving a specific verb and resource. It also clarifies the data source ('Work is the signal — not Slack or email'). However, it does not name or contrast any sibling tools, so an agent might not easily distinguish it from similar briefing tools like account_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?
There is no explicit guidance on when to use this tool versus alternatives. The only usage hint is that the hourly schedule is bot-side, implying it is not intended for manual invocation, but no when-to-use or when-not-to-use instructions are provided, and no alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_commitAInspect
Turn-end batch: assistant summary + durable writes + optional close.
One call replaces the end-of-turn memory_session_append +
memory_remember (+ memory_session_close + memory_state_set) sequence.
The append self-heals expired sessions; the response's session_id
is authoritative. Returns {session_id, turn_count, reopened, memories, closed, org, bound}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug; scopes fact tags and the state pointer. | |
| agent | No | Override agent identity | |
| close | No | Close the session (queueing distillation) and clear the state pointer. Pass true when the task is done or the user says goodbye. | |
| facts | No | Durable memories to write in the same call: [{"content": "...", "kind": "fact|preference|event|note|outreach", "subject": "...", "tags": [...]}]. Only include things still true next week. | |
| github | No | GitHub owner/repo tag for the facts. | |
| summary | Yes | Faithful summary of your reply — appended as the assistant turn. | |
| namespace | No | Org-allowlisted container slug (repo:owner/name, github:owner/repo, or project:name). Tags every fact. Omitted: default from github= then repo=. Invalid/unknown slugs fail. See docs/memory-namespaces.md. | |
| session_id | No | Working-memory session to commit to. Omit to resolve it from the conversation/active-session state pointer (requires repo). |
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 adds useful traits such as self-healing expired sessions, the response's session_id being authoritative, and the returned fields, but it omits side effects of close (queueing distillation, clearing the state pointer) and any permission 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?
Four short sentences front-load the one-line summary, then give the replacement relationship, behavioral caveat, and return shape. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8-parameter schema with 100% coverage and an output schema, the description provides the essential selection and behavioral context: when to use it, what it replaces, self-healing behavior, and authoritative session_id. The schema fills the remaining parameter and return-value details, so nothing needed to call it correctly 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 100% with detailed parameter descriptions, so the baseline is 3. The description only maps summary/facts/close to 'assistant summary + durable writes + optional close' without adding new syntax or format details beyond the 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 opening line defines the tool as a 'Turn-end batch' combining assistant summary, durable writes, and optional close, and the second sentence names the exact memory_* sequence it replaces. This makes its purpose and distinction from sibling memory tools immediately clear.
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 clearly positions the tool as the end-of-turn replacement for memory_session_append + memory_remember (+ memory_session_close + memory_state_set), so an agent knows when to prefer it. It does not explicitly state when not to use it, such as for mid-turn appends, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_compressAInspect
Compress a prompt payload before it reaches an LLM.
Shrinks JSON tool outputs, logs, and long text using SmartCrusher-lite
sampling. Originals are stored in CCR (Redis) with ref= markers for
context_retrieve. Always runs; tune thresholds via TEAMSHARED_COMPRESS_*.
| Name | Required | Description | Default |
|---|---|---|---|
| messages | Yes | OpenAI-style chat messages to compress before sending to an LLM. User messages are preserved; long tool/assistant/system blocks shrink. |
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 must disclose side effects and behavior. It does mention that originals are stored in CCR (Redis) with ref= markers for retrieval, and that it 'Always runs' and thresholds are tunable. However, it doesn't describe the return value, potential data loss, or any permissions needed. It gives some behavioral transparency but leaves 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 concise, with the key purpose in the first sentence. It provides necessary details in two more sentences without excess. The structure front-loads the purpose and then elaborates on behavior and configuration. No fluff.
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 a single parameter with good schema coverage and an output schema (not shown). The description explains the purpose and storage side effect but doesn't detail the return format (presumably in output schema), nor does it mention any prerequisites like Redis availability or error conditions. Given it's a straightforward compression tool with one input, it's fairly complete but could state expected output behavior more explicitly.
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 description already covers the 'messages' parameter well, stating it's OpenAI-style chat messages and that user messages are preserved while long tool/assistant/system blocks shrink. Since schema coverage is 100%, the description adds only minor reinforcement (mentions JSON tool outputs and logs) but doesn't significantly extend meaning beyond the 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 clearly states it compresses a prompt payload before sending to an LLM, and specifies what it shrinks (JSON tool outputs, logs, long text). It distinguishes itself from other context tools by focusing on compression and storage of originals. It's not a tautology and gives a specific verb-resource pairing.
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 says 'Always runs' but does not provide explicit when-to-use or when-not-to-use guidance, nor does it name alternatives. It hints at a companion tool (context_retrieve) but doesn't tell the agent when to choose this over other context tools like context_normalize or context_prepare. The 'always runs' suggests it might be automatic, which is a usage signal but not a clear directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_normalizeAInspect
Strip, clean, and compress a non-teamshared tool output for agent context.
Trims recall-style payloads, shrinks large JSON/logs, and stores originals in CCR when compressed. Prefer letting MCP middleware handle teamshared tools automatically; call this for Shell, Grep, or other harness tools.
| Name | Required | Description | Default |
|---|---|---|---|
| output | Yes | Raw tool output string (usually JSON). | |
| tool_name | Yes | Name of the tool whose output you are trimming. |
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, and it discloses real behavioral traits: it trims recall-style payloads, shrinks large JSON/logs, and stores originals in CCR when compressed. This goes beyond the schema and gives agents a clear sense of side effects and preservation 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 compact and front-loaded with the core purpose; the second sentence adds valuable usage and side-effect context. 'Strip, clean, and compress' is slightly redundant, and 'CCR' is not expanded, but the overall structure is 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 simple two-parameter tool with an output schema, the description covers purpose, usage boundaries, processing behavior, and a notable side effect. Nothing essential is missing for an agent to decide when and how to invoke it.
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 100%, so the schema already documents both parameters thoroughly. The description adds context about target tools (Shell, Grep) but no additional parameter-level syntax or formatting details, matching the baseline for full schema 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 names a specific action ('Strip, clean, and compress') on a specific resource ('non-teamshared tool output') and states the intended use ('for agent context'). It also distinguishes this tool from the middleware path for teamshared tools, so an agent can tell it apart from siblings like context_compress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: call this for Shell, Grep, or other harness tools, and prefer MCP middleware for teamshared tools. It names exclusions and alternatives, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_prepareAInspect
Pre-LLM pipeline: session append → compress incoming history → enrich.
Returns compressed messages, optional additional_context (org memory),
session_id, and stats. Use before sending a turn to your LLM when you
want teamshared to shrink tool bloat and inject recall. Server-side MCP
middleware already normalizes teamshared tool responses; this covers the
rest of the prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug for scoped recall enrichment. | |
| enrich | No | Assemble org memory and append as `additional_context`. | |
| github | No | GitHub `owner/repo` for scoped recall enrichment. | |
| prompt | No | Latest user prompt when you do not have full message history. | |
| messages | No | OpenAI-style chat messages to run through the pre-LLM pipeline. Provide this or `prompt`. | |
| session_id | No | Working-memory session to append the user turn to. | |
| token_budget | No | Soft token cap for assembled context. | |
| append_session | No | Append the latest user message to the working session. |
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 burden. It discloses the pipeline stages and return payload, and it clarifies that teamshared normalization is already handled elsewhere. But it does not state whether session append persists state, whether compression discards messages, or any side effects or permissions, which matters for a tool that mutates a working session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and returns, then give the usage context and scope. No filler; the pipeline arrow notation is efficient and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, return values, and usage timing, and the output schema handles return structure. But with eight parameters and siblings like context_compress, context_normalize, and memory_assemble_context, it does not fully disambiguate when to choose this tool over those, nor does it mention the messages-vs-prompt requirement 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 coverage is 100%, so the schema already documents all 8 parameters. The description adds no parameter-level detail beyond the schema; it only restates the concepts of session append, compression, and enrichment. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete pipeline ('session append → compress incoming history → enrich') and lists the exact return fields, so an agent can tell this is a pre-LLM context assembly tool. It gestures at differentiation by saying it 'covers the rest of the prompt' after middleware normalizes teamshared responses, but it never names a sibling such as context_compress or memory_assemble_context.
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 gives an explicit trigger: 'Use before sending a turn to your LLM when you want teamshared to shrink tool bloat and inject recall.' It also clarifies scope relative to server-side middleware. However, it provides no exclusions or named alternatives for cases like standalone compression (context_compress) or memory-only assembly (memory_assemble_context).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_retrieveBInspect
Retrieve the original content for a compressed block via CCR ref.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | CCR ref from a compressed message (ref=ccr_...) |
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 burden, and it only states what is fetched and by what key. It doesn't say whether the underlying ref can expire, what happens on an invalid/unknown ref, whether access is scoped, or that the operation is non-mutating beyond the implication of 'Retrieve'.
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 front-loaded sentence with no filler - the action and the key input are both in the first clause. It is efficient, though so terse that it leaves behavioral gaps that other dimensions must penalize.
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 need not be explained, and the one required parameter is identified. What is missing is error/expiry behavior and any tie-in to the compression tool that generates the refs, leaving the agent to infer failure modes.
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 100% and the single parameter 'ref' is already documented in the schema as 'CCR ref from a compressed message (ref=ccr_...)'. The description's 'via CCR ref' adds no format, sourcing, or validity detail beyond that, so the baseline 3 applies.
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 (Retrieve) and resource (the original content for a compressed block) plus the mechanism (via CCR ref), so an agent can separate it from context_compress, context_prepare and context_normalize. It does not explicitly name a sibling, which keeps it short of a 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 use case is implied by the phrase 'for a compressed block' - you come here when you hold a ref produced by compression. There is no explicit when-to-use statement, no named alternative, and no exclusions (e.g. what to do if the ref is stale or expired).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_balanceAInspect
Return the current org's prepaid router credit balance.
Balance is in micro-USD (1 USD = 1,000,000 micro-USD). A free org receives its monthly allowance on this read, once per UTC month. Credit packs are purchased on the billing page, not through this tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 burden and does disclose a non-obvious trait: a free org's monthly allowance is granted on this read, once per UTC month — a side effect an agent would otherwise not expect from a 'balance' call. It does not state auth requirements or whether reads are rate limited, leaving a modest 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?
Front-loaded with the core action in the first sentence, then units, then the free-org caveat, then the exclusion. Every sentence answers a distinct question an agent would ask; nothing is padded.
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 an output schema present, the description needn't describe return values, and it covers the two things the schema cannot: unit scaling and the monthly allowance side effect. Without annotations, a note on permissions or read safety would round it out, but the essentials are there.
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 tool takes zero parameters, which is the baseline-4 case. The description's unit explanation (1 USD = 1,000,000 micro-USD) actually pertains to the response rather than inputs, but it is still the kind of semantics an agent needs to interpret results correctly.
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 and resource: 'Return the current org's prepaid router credit balance.' No sibling tool covers billing or credits, so an agent can distinguish this immediately; the scope ('current org', 'prepaid router credits') is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly rules out an adjacent intent: 'Credit packs are purchased on the billing page, not through this tool,' which prevents the agent from hunting for a purchase tool here. It lacks a positive statement of when to reach for this versus account_brief, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagram_generateAInspect
Sketch a teamshared.diagram/v1 from GitHub manifests and store it.
Reads the repo tree plus README, compose, package manifests, infra/, and
SQL migrations. Produces mode=generated Mermaid (C4-container or ER
sketch — not architecture recovery). Source metadata (github, ref,
commit, paths, content_hash) lives on the document; TeamShared is not a
git host. Pass work_id / project_id to attach. Refresh later
with diagram_sync.
This generator emits teamshared.diagram/v1 only. For the layered 3D
scene (teamshared.diagram/v2), author the scene yourself with
file_create(content_format='diagram').
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Git ref (branch, tag, or commit) | main |
| kind | No | 'software' (C4-container sketch), 'data' (ER), or 'infra' | software |
| view | No | Diagram view label stored on teamshared.diagram/v1 (defaults: C4-container / ER / containers) | |
| agent | No | Override agent identity | |
| title | No | Shared-file title; defaults to '{github} {kind} {view}' | |
| github | No | owner/repo to read via the GitHub API. Optional when work_id= already has github= set — that work field is the coding repo pointer, not a second git host. | |
| work_id | No | Attach the new shared file to this work item (kind=artifact) | |
| project_id | No | Attach the new shared file to this project (kind=artifact) |
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. It discloses the output format (Mermaid), the mode ('generated'), the limitation (not architecture recovery), the fact that TeamShared is not a git host, and the version restriction. It does not explicitly mention side effects like permissions or failure behavior, but the read-and-store nature is conveyed. This is strong but not exhaustive.
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 moderately long but well-structured, with the core purpose front-loaded and supplementary details (source reading, metadata, alternatives) following logically. Each sentence adds information; no filler. It is slightly verbose but remains efficient for a tool with 8 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 optional params, output schema present), the description covers the main workflow, version constraints, and usage context. It explains the source inputs and the attach mechanism. It does not detail the exact output structure, but that is delegated to the output schema. Overall, it provides enough for an agent to decide when and how to invoke 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 coverage is 100%, so the baseline is 3. The description adds value beyond the schema by clarifying the github parameter's optionality when work_id already carries a github pointer, and by noting default behaviors for view and title. These clarifications help avoid misuse, making it a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Sketch') and resource ('a teamshared.diagram/v1 from GitHub manifests'), and immediately distinguishes it from the sibling diagram_sync (refresh) and file_create (v2 authoring). It clearly states what it does and what it is not (architecture recovery), leaving no ambiguity about 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?
It explicitly states when to use this tool (to generate a v1 diagram from GitHub manifests) and when not to (for the layered v2 scene, use file_create with content_format='diagram'). It also references diagram_sync for later refresh, providing clear routing among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagram_syncAInspect
Re-fetch mapped GitHub paths and append a version if they changed.
No-op when commit + content hash match. mode=authored is refused
unless force=true (then the new version is mode=generated).
No webhook or periodic worker — call this when you want a refresh.
teamshared.diagram/v2 scenes are authored, so this returns
changed=false, reason='scene' instead of overwriting them.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Override source.ref (defaults to the document's stored ref) | |
| agent | No | Override agent identity | |
| force | No | Overwrite an authored diagram. Generated diagrams sync without this; authored mode is never overwritten unless force=true | |
| file_id | Yes | Existing diagram shared-file UUID |
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 disclosure burden and does so exceptionally: no-op on matching commit/content hash, refusal of authored mode unless force=true, forced versions becoming mode=generated, and scene inputs returning changed=false with reason='scene'. These are concrete behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the primary action, and every sentence carries distinct information: main behavior, no-op condition, forced-authored behavior, manual invocation, and scene edge case. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the existence of an output schema, the description covers the essential operational context: when it does nothing, when it refuses, what happens under force, and how scene diagrams are handled. The lack of annotations is compensated by unusually thorough behavioral detail.
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 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the authored/generated mode interaction and what force actually produces ('new version is mode=generated'). It does not elaborate on ref or agent, but those are already well documented in the 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 opens with a specific verb and resource: 'Re-fetch mapped GitHub paths and append a version if they changed.' This clearly conveys the operation and outcome. It does not explicitly name or contrast a sibling like diagram_generate, so it stops short of full sibling 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 gives an explicit invocation trigger: 'No webhook or periodic worker — call this when you want a refresh.' It also clarifies when the tool refuses (authored mode without force) and when it no-ops. It does not name alternative tools, so it misses the explicit alternatives part of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_appendBInspect
Append one event to a stream. History is never mutated.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Dotted event type, e.g. human.update or agent.run.started. run.*, step.*, process.*, evidence.* and secret.* are server-only | |
| actor | No | Ignored: the actor is always the caller | |
| agent | No | Override agent attribution label | |
| payload | No | JSON object payload (corrections are new events) | |
| stream_id | Yes | Stream id: work:{uuid} (task timeline), run:{uuid} (Process Run), entity:{uuid} (ontology node), org:{uuid} (schema), project:{uuid}, session:{id}, agent_run:{uuid}, memory:{uuid} (recall feedback) | |
| on_behalf_of | No | Ignored: set from the caller | |
| correlation_id | No | Optional correlation id to group related events |
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 alone. 'History is never mutated' is a genuinely useful disclosure of the append-only, non-destructive semantics that an agent could not infer elsewhere. It omits permissions, whether the stream must pre-exist, and the fact that several event-type prefixes are rejected server-side (only in schema).
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 short sentences, neither wasted: the first states the action, the second states the invariant. Purpose is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the schema fully documents all 7 parameters, so the description needn't cover return values or field syntax. What remains missing for a 7-param write tool with zero annotations is routing guidance versus event_list and any precondition or failure-mode note.
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 100% and every parameter (stream_id formats, event type naming rules, actor ignored, payload corrections) is documented in the schema itself. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
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 (append) and resource (one event to a stream), which immediately distinguishes it from the read-side sibling event_list. It stops short of explicitly naming that sibling or the adjacent write tools, so differentiation is implied rather than stated.
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 guidance: nothing says to prefer event_list for reading, nor what preconditions exist (must the stream already exist? are there event-type restrictions?). The immutability note hints at a correction workflow (append rather than modify) but only in the schema's payload text, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_listBInspect
List append-only events for a stream (timeline order).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| since | No | Inclusive ISO timestamp lower bound | |
| until | No | Inclusive ISO timestamp upper bound | |
| export | No | If true, also return a JSONL body for the stream | |
| offset | No | ||
| stream_id | No | Filter to one stream (work:{uuid} / run:{uuid} / …) |
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 burden. It does disclose two useful traits: events are append-only and results are in timeline order. However, it omits other behavioral details like pagination behavior, the meaning of the export flag, or what happens when stream_id is null.
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. 'Append-only' and 'timeline order' are both high-signal qualifiers, and the core purpose 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?
The output schema and partial parameter descriptions reduce the burden on the tool description. Still, the description leaves important context unstated: stream_id is optional, export changes the response shape, and there is no mention of when to prefer this over related list 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 67% (4 of 6 parameters described), but the description itself adds no parameter semantics. The uncovered parameters (limit, offset) are simple, but the description does not compensate for the moderate coverage gap or explain the stream filter in terms of the schema's stream_id.
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') and resource ('append-only events for a stream'), with an ordering qualifier ('timeline order'). It is clear enough to be distinguished from the write-oriented sibling event_append, though it does not explicitly name alternatives or clarify that stream_id is optional.
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 on when to use this tool versus alternatives such as process_run_events or event_append. There are no explicit when-to-use conditions, exclusions, or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evidence_attachAInspect
Attach evidence to a Process run via an append-only event.
Source of truth is evidence.attached on run:{id}. A second
attach to the same slot supersedes the previous pointer. Agents
should prefer this (or file_create(work_id=) auto-attach) over
mutating a case-file row.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | file, storage, url, pr, comment, or text | |
| slot | No | Evidence slot (scan-notes). Omit to auto-slot from the pointer | |
| agent | No | Override agent attribution label | |
| title | No | Human label for this attachment | |
| run_id | Yes | Process run UUID — evidence lands on run:{id} | |
| pointer | Yes | Pointer: file:<uuid>, storage:<uuid>, pr:<url>, or https://… | |
| work_id | No | Optional work UUID recorded on the event | |
| project_id | No | Optional project UUID recorded on the event | |
| supersedes | No | Optional prior pointer this attachment replaces |
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 disclosure burden and does well: it declares the write is an append-only event, names the source-of-truth record ('evidence.attached' on 'run:{id}'), and states the supersede behavior of a second attach to the same slot. It omits auth/permission requirements and any failure modes, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the action and followed by mechanics and routing advice; each sentence carries distinct information. Minor density from internal terms like 'evidence.attached' and 'run:{id}', but nothing is redundant.
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 9-parameter mutation tool with an output schema and no annotations, the description covers the essential mechanics (append-only, source of truth, supersede, preferred alternative). What remains missing is permission/authorization context and error behavior, which leaves a small but real 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 coverage is 100%, so the baseline is 3, but the description adds semantics beyond the schema by explaining that a second attach to the same slot supersedes the prior pointer, which clarifies the interplay of 'slot' and 'supersedes'. It does not elaborate on 'kind' inference or 'pointer' formats beyond what the schema already documents.
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 first sentence states a specific verb and resource ('Attach evidence to a Process run') plus the mechanism ('via an append-only event'), which distinguishes it from evidence_get, evidence_require, file_create, and storage_attach. An agent can tell what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names preferred alternatives ('prefer this (or file_create(work_id=) auto-attach) over mutating a case-file row'), giving real routing guidance against a named anti-pattern. It stops short of saying when to call evidence_require or evidence_get instead, so no explicit exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evidence_getAInspect
Read the case-file spine (required / received / missing / superseded).
Projection over run:{id} events. Work/Project pass-throughs merge
every linked run. Pass one of run_id, work_id, or project_id.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | Process run UUID | |
| work_id | No | Work UUID — folds evidence from linked runs | |
| project_id | No | Project UUID — folds evidence from linked runs |
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. It discloses the read-only nature ('Read'), explains the projection over events, and details the merging behavior for work/project pass-throughs. It does not mention side effects (expected none for a read) or access-control requirements, but the disclosed behavior is sufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place. The core purpose is front-loaded in the first sentence, and the parameter guidance is compact and direct. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with an output schema, the description covers the operation, the parameters, and the key merging behavior. It does not mention pagination or limits, but these are unlikely to be critical for a spine read and are partially covered by the output schema signal. Adequate for the tool's complexity.
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 100%, so baseline is 3. The description adds meaningful value beyond the schema: it clarifies that exactly one ID should be passed ('Pass one of'), and it explains that work_id and project_id fold evidence from linked runs, which interprets their otherwise generic schema descriptions. This exceeds baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Read the case-file spine' and lists the states it covers (required/received/missing/superseded). This clearly distinguishes it from write-type siblings like evidence_attach and event-listing tools like event_list, so an agent can tell it apart without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit parameter usage ('Pass one of run_id, work_id, or project_id') but does not state when to prefer this over alternatives, nor does it give negative guidance like 'use evidence_attach to add evidence' or 'use event_list for raw events'. The purpose implies when to use it, but explicit routeing is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evidence_requireBInspect
Declare required evidence on a Process run (append-only event).
Folded with received attachments into missing / received / superseded.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Expected kind: file, storage, url, pr, comment, or text | |
| slot | Yes | Required slot token (scan-notes) | |
| step | No | Optional process step this slot belongs to | |
| agent | No | Override agent attribution label | |
| title | No | Human label for the required slot | |
| run_id | Yes | Process run UUID |
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 supplied, the description carries the full burden, and it does disclose two real behaviors: the write is append-only, and declared slots are reconciled against received attachments into missing / received / superseded states. It still omits whether the run must be in a particular state, whether declaring a duplicate slot errors or supersedes, and any permission requirements for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and no filler. The second fragment is compressed to the point of being slightly cryptic ('Folded with received attachments'), but it still earns its place by explaining the resulting state model.
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 and the input schema is fully annotated, so return values and field meanings need not be restated. What remains missing is the tool's position in the evidence workflow relative to evidence_attach and evidence_get, which matters for a tool that only makes sense as one half of a requirement/fulfilment pair.
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 100%, so every parameter including kind, slot, step, agent, title and run_id is already documented in the schema, which sets the baseline at 3. The description adds no format or semantics beyond that, though its 'folded with received attachments' line does clarify how the slot value is later matched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Declare required evidence on a Process run', which distinguishes it from the sibling evidence_attach (which supplies evidence rather than declaring a requirement). It stops short of naming that sibling explicitly, so the agent must infer the pairing from the name alone.
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 by 'Declare required evidence on a Process run', and '(append-only event)' hints this is a declaration step in a run lifecycle. There is no explicit when-to-use/when-not guidance, no mention of prerequisites such as the run being open, and no named alternative to evidence_attach or evidence_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_archiveAInspect
Archive a shared file (excluded from active lists) and clean up its bucket mirror (if published).
Archived files are retained with full version history for audit; the public
/s/{share_token} route returns 404 for an archived file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | File UUID to archive |
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 and does well: it discloses that files are retained with full version history for audit, that the bucket mirror is cleaned up only if published, and that the public /s/{share_token} route returns 404. It stops short of stating reversibility/restore path or 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?
Two tight sentences with zero filler; the primary action and its immediate scoping effect are front-loaded, and the follow-on retention/404 details come second.
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 need not be explained, and the description covers the important side effects of a mutation. It omits whether the archive is reversible or what a restore would require, which is the one meaningful gap for a destructive-adjacent operation with no annotations.
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 100% for the single file_id parameter, so the schema already carries the semantics. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
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 (archive) applied to a specific resource (a shared file), and details the scope: exclusion from active lists plus bucket-mirror cleanup. This clearly distinguishes it from siblings like file_unpublish or file_version_delete without opening either schema.
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 archive is appropriate by describing its effects, but never explicitly contrasts it with the closest alternatives (file_unpublish, file_version_delete) or states when not to use it. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_createAInspect
Create a new versioned shared file in the caller's org.
Shared files default to private. Call file_publish to generate the
public share URL (/s/{share_token}). Each file_update creates a
new immutable version row. Pass work_id to attach it to a task
and/or project_id to attach it to a project (same shared_files
row; project attachments are kind=artifact only).
content_format='diagram' takes either diagram schema:
teamshared.diagram/v1—body: {format: mermaid, text: "..."}, rendered as Mermaid. Best for flowcharts, sequences, and ER sketches.teamshared.diagram/v2—body: {format: scene, layers: [...], nodes: [...], edges: [...]}, rendered as a layered 3D scene where each layer is a plane (infra / software / data by convention), each node sits on one layer, and edges may cross layers.kind(defaultsystem),view(layers),mode(authored) andbody.cameraare optional. Every node needsidandlayer;shapeisbox|cylinder|sphere|cone; edges are{from, to, label?, kind?}withkindone ofsync|async|data|depends. Omitx/zto get an automatic grid on the plane. Caps: 8 layers, 300 nodes, 600 edges, 256 KiB. Unknown keys are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | File title | |
| content | Yes | File body: markdown, raw HTML, a diagram document JSON/YAML when content_format='diagram', or teamshared.sheet/v1 JSON/YAML when content_format='sheet' (stored as JSON) | |
| work_id | No | Attach the new file to this work item UUID | |
| project_id | No | Attach the new file to this project UUID (kind=artifact) | |
| content_format | No | 'markdown' (allowlist sanitizer), 'html' (sanitized raw HTML), 'diagram' (teamshared.diagram/v1 Mermaid or teamshared.diagram/v2 layered 3D scene, JSON/YAML), or 'sheet' (teamshared.sheet/v1 JSON/YAML; typed grid, stored as JSON) | markdown |
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 fully carries the behavioral burden. It discloses default privacy, the need for explicit publishing, immutable version behavior, attachment semantics, diagram format details, caps, and strict schema validation ('Unknown keys are rejected').
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 long but densely informative, front-loads the core purpose, and uses structured paragraphs and bulleted variants. Every major sentence adds operational value, especially the diagram schema details that would otherwise require external 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?
For a complex creation tool with 6 parameters and multiple content formats, the description covers defaults, publishing workflow, versioning, attachments, diagram schemas, limits, and validation behavior. An agent has enough context to invoke the tool correctly; the output schema covers return-value needs.
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?
Though schema coverage is 100%, the description substantially enriches parameter meaning. It explains how content_format=diagram maps to two distinct diagram schemas, defines node/edge requirements, caps, and clarifies that work_id/project_id attach to the same shared_files row with kind=artifact for projects.
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 first sentence names a specific verb, resource, and scope: 'Create a new versioned shared file in the caller's org.' It clearly distinguishes the tool from siblings like file_update and file_publish by emphasizing creation, versioning, and the caller's org.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes to alternatives: call file_publish for public share URLs, and notes that file_update is the operation that creates new immutable version rows. It also gives attachment guidance for work_id and project_id, making the tool's role in the workflow unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_getAInspect
Fetch a shared file with its latest version content.
Returns version. Pass it as expected_version on file_update
when you edit a shared file. content is the full latest version.
This result is not compressed: a shortened file is not the file.
Includes public_url (the /s/{slug} link) when the file is
published.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | File UUID |
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 and does well: it discloses the version/content/public_url return shape and warns that content is the full uncompressed latest version. It omits auth requirements or rate limits, but the behavioral picture is otherwise strong.
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?
Front-loaded with the core action, then supporting semantics. The 'This result is not compressed: a shortened file is not the file' line is a slightly verbose warning but earns its place as a truncation guard.
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 need not be explained, yet the description usefully explains them anyway. It covers the fetched resource, version round-trip, and conditional fields, leaving little ambiguous for a single-param read 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?
Only one parameter (file_id), and schema coverage is 100%, so the schema already documents it. The description adds no parameter-level detail beyond the schema, which is the expected baseline when the schema does the work.
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 ('Fetch a shared file with its latest version content') and clarifies output semantics. It implicitly differentiates from the file_list/file_update siblings by tying the returned version to a subsequent edit, though it never names a sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides real conditional guidance: pass the returned version as expected_version on file_update when editing a shared file. This tells the agent where this fits in the workflow, but it does not state when to prefer file_get over file_list or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_listAInspect
List active shared files in the caller's org, newest update first.
Each file includes public_url (the /s/{slug} link, or /s/{share_token}
if no slug) when published, plus slug and share_token. Use query to
find a file by title without listing everything — e.g. file_list(query="yield vault").
Pass work_id to list documents + the agent transcript on a task
(Storage artifact joins; transcripts stay on work_item_files),
or project_id for a project's documents. storage_list is
canonical for every Storage join including blobs. project_id
wins if both filters are set. Archived files stay joined but are omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Optional case-insensitive title substring to filter by, e.g. 'yield vault' | |
| work_id | No | Only files attached to this work item UUID | |
| project_id | No | Only files attached to this project UUID |
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 full behavioral burden and does so well: it specifies ordering, included fields (public_url, slug, share_token), when fields are present ('when published'), the 'Archived files stay joined but are omitted' exclusion, filter precedence, and the special work_id/Storage artifact 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 core purpose is front-loaded in the first sentence, and the remaining paragraphs add dense, non-redundant detail. Every sentence contributes meaningful guidance—order, fields, filters, alternatives, precedence, and exclusions—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 output schema exists, the description covers everything else an agent needs: scope, ordering, filter semantics, field inclusion conditions, archive behavior, precedence, and the relationship to storage_list. The only uncovered param, limit, is fully specified in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so baseline is 3, but the description adds real value beyond the schema: a concrete query example, the work_id transcript-join meaning, the project_id document listing behavior, and explicit filter precedence. Only 'limit' receives no added semantic context, but the schema already documents its constraints and default.
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 first sentence states a specific verb, resource, and scope: 'List active shared files in the caller's org, newest update first.' This clearly identifies what the tool does and is distinguishable from siblings like storage_list, file_get, and file_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'Use query to find a file by title without listing everything', 'Pass work_id to list documents + the agent transcript', and 'storage_list is canonical for every Storage join including blobs'. It even clarifies precedence ('project_id wins if both filters are set'), giving the agent concrete routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_publishAInspect
Publish a shared file: generate the public share token + slug and URL.
Idempotent: returns the existing token/slug if already published. The latest
rendered HTML is eagerly pushed to the Railway bucket. The public URL is
/s/{slug} (human-readable, from the title) with /s/{share_token} as a
fallback; both are returned in the response.
Agent seats (org tsk_ / agent_run) are refused — call
request_gated_approval(gate="publish") instead. Console humans
(ts_session) still publish.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | File UUID to publish |
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 idempotency, eager pushing of rendered HTML to the Railway bucket, URL structure with a fallback, and access restrictions—all beyond what a schema would convey. It does not cover error handling (e.g., what happens if the file does not exist) or rate limits, but the core behaviors are transparent and align with the operation's nature.
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 longer than a single sentence but well-structured: the first line states the core purpose, the second details idempotency and output mechanics, and the third addresses access control. Every sentence adds substantive value; there is no fluff. The pacing is efficient, though it could be tightened by moving the Railway bucket detail to the output schema or a separate note.
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 (multiple output URLs, gating, idempotency) and that an output schema exists, the description covers the most critical runtime context: what the agent will receive (both URLs), that it is safe to call repeatedly, and the exact gate alternative. It does not describe preconditions (e.g., file must exist and be in a publishable state) or error scenarios, but the provided information is sufficient for correct invocation in the common case.
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 100%, so the file_id parameter is already fully documented in the schema ('File UUID to publish'). The tool description adds no additional semantic detail about the parameter (e.g., format, validation, or edge cases). Since the schema fully covers the parameter, the baseline score of 3 is appropriate—the description does not need to repeat schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise action: 'Publish a shared file: generate the public share token + slug and URL.' It clearly identifies the resource (shared file) and the output (token, slug, URL). It also distinguishes itself from other publishing tools (e.g., storage_publish) by detailing the specific token/slug mechanism and the /s/ URL format. This leaves no ambiguity about what the tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool and when not to, naming the alternative: 'Agent seats (org tsk_ / agent_run) are refused — call request_gated_approval(gate="publish") instead. Console humans (ts_session) still publish.' It also implies usage context through idempotency, informing agents that repeated calls are safe and return existing tokens. This is explicit, actionable guidance that completely removes guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_unpublishAInspect
Revoke public access to a shared file (visibility back to private).
The share token is retained for audit; the public route returns 404. Best-effort removes the mirrored objects from the Railway bucket.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | File UUID to unpublish |
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 and does substantial work: it discloses the resulting visibility state, that the share token is retained for audit, that the public route returns 404, and that bucket cleanup is best-effort rather than guaranteed. The main omissions are authorization requirements and behavior when the file was never published (error vs. no-op).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the primary effect is front-loaded and the behavioral caveats follow. No filler or restated schema content.
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 mutation with an output schema covering return values, the description supplies effect, side effects, and reversibility context (token retained). It stops short of stating permission requirements or the already-private case, which an agent could plausibly need.
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 100% with a single self-documented param ('File UUID to unpublish'), so the schema already carries the parameter meaning. The description adds nothing about the identifier's format or provenance, which is expected at this coverage level.
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 and resource (revoke public access to a shared file) and clarifies the resulting state ('visibility back to private'), so the agent knows exactly what changes. It does not, however, distinguish itself from the near-identical sibling storage_unpublish or reference its inverse file_publish, so sibling differentiation is left to inference.
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 by the effect described (call it when a file should stop being public), but there is no explicit when-to-use framing, no prerequisites (e.g. ownership/permission requirements), and no routing hint against the closely named sibling storage_unpublish. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_updateAInspect
Append a new version to an existing shared file.
Omit expected_version to append prior-max-plus-one. Pass the
version from file_get when editing a shared file so a
concurrent writer is not overwritten. A mismatch writes nothing and
returns status=conflict. If the file is published, a successful
new version is eagerly mirrored to the Railway bucket. Old versions
are never mutated.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| content | Yes | New file body (markdown, raw HTML, teamshared.diagram/v1 or teamshared.diagram/v2, or teamshared.sheet/v1 JSON/YAML) | |
| file_id | Yes | File UUID to update | |
| content_format | No | Override content format ('markdown', 'html', 'diagram', or 'sheet'); defaults to the file's current format | |
| expected_version | No | Latest version from file_get. Omit to append unconditionally. A mismatch writes nothing and returns status=conflict with current_version, current_body (file content), updated_by, and updated_at. |
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 and does so richly: concurrency semantics (mismatch writes nothing, returns status=conflict), versioning invariant (old versions never mutated, append at prior-max-plus-one), and the side effect of eager mirroring to the Railway bucket for published files. This is exactly the behavioral context an agent needs.
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?
Front-loaded with the core action, then the conditional and side-effect details. Every sentence adds information; nothing is padding.
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 tool with no annotations, it covers conflict behavior, versioning invariants, and publish side effects. An output schema exists, so return-value details are not needed in the 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 coverage is 100%, so the baseline is 3. The description adds the intent behind expected_version (guarding against a concurrent writer) and points to file_get as the source of the version value, which goes beyond the schema's mechanical conflict description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Append a new version to an existing shared file'), which cleanly separates it from file_create (new file) and file_get (read). An agent can identify the operation and target without opening the schema.
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?
Gives explicit conditional guidance for the key parameter: pass version from file_get when editing a shared file to avoid clobbering a concurrent writer, omit expected_version to append unconditionally. It does not explicitly contrast with file_create for new files, so the routing is implied rather than named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_upload_requestAInspect
Get a one-time uploader script to push a local file into a shared file.
For large local HTML/Markdown files that don't fit inline in
file_create/file_update. PDFs and other binaries are Storage
objects (storage_upload_request); this path is UTF-8 documents only.
Returns upload_url, upload_token, an
expires_in_seconds TTL, and a self-deleting Python script.
Save the script to disk and run python3 upload.py /path/to/file;
it reads the file, POSTs it to the server with the one-time token,
prints the resulting file id (and public URL if publish=true), and
deletes itself on success. The token is single-use and expires in ~10 min.
Update mode: pass file_id to append the uploaded body as a new
version to an existing shared file (the title is ignored; the existing
file's title/slug/share_token are preserved, and the bucket mirror is
re-published to the new version when the file is already published).
This is the supported way to push a new version of a large file.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | File title (used only when creating a new file; ignored in update mode) | |
| file_id | No | Existing file UUID to append a new version to (update mode). Omit to create a new file. | |
| publish | No | If true, the file is published immediately (returns public URLs). In update mode this is idempotent if already published. | |
| work_id | No | Attach the uploaded file to this work item UUID | |
| filename | No | Optional filename (used for format sniffing and as the script's default path) | |
| project_id | No | Attach the uploaded file to this project UUID (kind=artifact) | |
| content_format | No | 'html', 'markdown', 'diagram' (teamshared.diagram/v1 JSON/YAML), 'sheet' (teamshared.sheet/v1 JSON/YAML), or 'auto' (sniff from the file extension; *.diagram.yaml/json, *.sheet.json/yaml) | auto |
| upload_base_url | No | Optional server origin (e.g. https://teamshared.com). Defaults to settings.public_url. |
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 behavioral burden and does it well: single-use token, ~10 minute expiry, returned artifacts (upload_url, upload_token, expires_in_seconds, self-deleting script), exact invocation pattern, and that the script prints the file id. Update mode is further qualified with what is preserved (title/slug/share_token) and that the bucket mirror is re-published when already published.
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?
Front-loaded with purpose in sentence one, then a scoping paragraph, then the return/invocation flow, then a bolded section for update mode — a clean progression. A few clauses (e.g. restating the script's delete-on-success behavior alongside the TTL) are slightly redundant, but nothing is padding.
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 9-parameter tool with no annotations, the description supplies the operational contract an agent actually needs: what to do with the returned script, how the token is consumed, what happens on update versus create, and how publishing interacts with versioning. An output schema exists, yet the description still front-loads the key return fields so the agent knows what to expect before calling.
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 100%, so the baseline is 3, but the description adds real semantics on top: it clarifies that title is ignored in update mode, that file_id switches the whole tool into version-append mode, and that publish=true yields a public URL in the script output. It does not explain content_format options (diagram/sheet) or the work_id/project_id attachment semantics, which remain schema-only.
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 first sentence names a specific verb and resource ('Get a one-time uploader script to push a local file into a shared file') and the following lines immediately scope it against siblings: inline content goes to file_create/file_update, binaries go to storage_upload_request. An agent can place this tool precisely in the file-handling family without opening any schema.
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?
Explicit when-to-use is given ('For large local HTML/Markdown files that don't fit inline'), plus two named alternatives for the cases this tool does not cover. It also documents update mode ('pass file_id to append... This is the supported way to push a new version of a large file'), so both create and update scenarios are routed correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_version_deleteAInspect
Delete a single version of a shared file (destructive, irreversible).
Refuses to delete the only remaining version. If the deleted version was
the current (latest) one, current_version is bumped back to the new
max and -- when the file is published -- the bucket mirror is re-published
to that new current version so the public /s/{slug} route stays
consistent. Returns deleted, current_version_changed, and the
updated file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | File UUID the version belongs to | |
| version | Yes | Version number to delete |
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 and does so well: it declares destructiveness/irreversibility, the guard against deleting the last version, the side effect of bumping current_version, and the conditional bucket re-publish that keeps the public /s/{slug} route consistent. This is exactly the hidden-state disclosure an agent needs before a mutation.
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 destructive warning and single-version scope are front-loaded, which is the right ordering for a dangerous operation. The sentence about bucket re-publishing is dense but relevant; only minor verbosity from restating return fields that the output schema already defines.
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?
Return fields are redundantly listed even though an output schema exists, and no sibling alternative is mentioned. Otherwise the safety profile and cascading side effects are thoroughly covered for a destructive two-parameter mutation.
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 100%, with file_id and version both documented in the schema, so the schema already does the heavy lifting. The description adds no format, range, or lookup guidance beyond what the schema provides, so the baseline 3 applies.
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 precise verb and narrowly scoped resource: deleting a single version of a shared file, as opposed to removing the file itself. The '(destructive, irreversible)' tag immediately sets it apart from read-oriented siblings like file_get and file_list.
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 communicates an important applicability constraint (refuses to delete the only remaining version), which tells the agent when the call will not work. However, it never names an alternative such as file_archive or file_unpublish, so the agent must infer when whole-file removal is preferable to version removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_closeAInspect
Close an issue or pull request.
Requires the org's agent-writes switch. Closing follows the org's review settings for destructive actions (a person's approval by default).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | issue or pull | |
| github | No | owner/repo. Omit to use the run's bound github= | |
| number | Yes | Issue or pull request number |
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 useful work: it discloses the required agent-writes switch and that closing is treated as a destructive action subject to review approval by default. It does not say whether closing is reversible or whether reopening is possible, but the gating and approval behavior are clearly surfaced.
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 front-loaded with the core action and then states the two key operational constraints. Every sentence earns its place and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, all parameters are documented, and an output schema exists, so return-value explanation is unnecessary. The description also covers authorization and approval gating, though it could say more about reversibility or the practical effect of closing.
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 100%, so the parameters are already well documented. The description does not add syntax or meaning beyond the schema, which is acceptable at the baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: closing an issue or pull request. It is clear and distinguishable in general, but it does not explicitly differentiate itself from nearby siblings such as github_merge or github_delete.
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 states prerequisites — the org's agent-writes switch and review settings — but gives no guidance on when to use this tool versus alternatives. There is no mention of when not to close, or how this relates to github_merge, github_delete, or work_close.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_code_searchBInspect
Search code in one connected repo.
Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text. A repo: or org: qualifier is ignored; the search stays in github | |
| github | Yes | owner/repo the org's GitHub App serves |
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. It does add real value with an auth requirement ('Requires memory:read') and an error-behavior pointer ('Same binding errors as github_repo_get'), but that cross-reference is opaque without already knowing the sibling, and it never states read-only semantics or result limits.
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 short sentences with the scope statement front-loaded and zero padding. The only weak spot is the cryptic 'Same binding errors as github_repo_get' line, which is compact but costs the reader a 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?
An output schema exists, so return values needn't be described, and both params are fully documented. However, for a code-search tool the description says nothing about result caps, pagination, or which branches/refs are searched — meaningful gaps for invocation correctness.
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 100% and the schema already explains both parameters, including the fact that repo:/org: qualifiers are ignored. The description adds no parameter-level detail beyond that, so the baseline 3 applies.
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 + scope: 'Search code in one connected repo.' That clearly separates it from github_file_get (single file), github_tree (structure listing), and object_search (non-code objects). It stops short of naming a sibling alternative, so it's clear but not fully differentiated.
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?
'in one connected repo' implies the usage boundary (single-repo, not cross-org), and 'Requires memory:read' gives a prerequisite. But there is no explicit when-to-use versus github_tree/github_file_get for locating code, and no statement of when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_commentAInspect
Comment on an issue or pull request in this run's repository.
Requires the org's agent-writes switch.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body | |
| github | No | owner/repo. Omit to use the run's bound github= | |
| number | Yes | Issue or pull request number |
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 disclosure burden. It usefully states the agent-writes prerequisite, but does not describe side effects, failure modes, rate limits, or whether comments are editable/deletable; return details are partly handled by the output schema.
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 short sentences, front-loaded with the action and followed by the key prerequisite. There is no redundant or filler text.
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 comment-creation tool with full parameter documentation and an output schema, the description provides adequate scope and the important permission prerequisite. It could be stronger by stating how it relates to sibling commenting tools, but nothing critical 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 100%, so the schema already documents all three parameters, including that github can be omitted to use the run-bound repository. The description reinforces the run-repository default but adds no additional parameter 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 and resource: commenting on an issue or pull request in the run's repository. This is precise enough that an agent can distinguish it from issue/PR reading or work-item commenting 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?
It gives a clear usage context and a prerequisite: the org's agent-writes switch must be enabled, and the action targets the run's repository. It does not explicitly name alternatives such as work_comment_add or explain 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.
github_deleteAInspect
Delete a branch or a ref.
Requires the org's agent-writes switch. Deleting follows the org's review settings for destructive actions (a person's approval by default). The bound repository cannot be deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Branch name or git ref | |
| github | No | owner/repo. Omit to use the run's bound github= | |
| target | Yes | branch or ref. The bound repository cannot be deleted |
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 load and does well: it discloses the write-authorization prerequisite, the approval gate, and a hard guardrail (bound repo undeletable). It stops short of saying whether deletion is reversible or how a missing branch is handled, which is the remaining gap for a destructive mutation.
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?
Four short sentences, front-loaded with the action, then constraints. Every sentence adds distinct information (verb, auth switch, review gating, repo guardrail) with zero repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the schema fully documents parameters. The description supplies the authorization and safety context an agent needs before calling a destructive tool; only reversibility/error behavior is left unstated.
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 100% – each of name, github, and target is documented in the schema itself, including the target enum. The description adds no parameter-level detail beyond what structured data already provides, so it sits at the baseline.
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 and resource ('Delete a branch or a ref') and bounds the scope by declaring the bound repository cannot be deleted. An agent can immediately tell this apart from siblings like github_push, github_merge, or github_close.
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?
Explicitly names the precondition ('Requires the org's agent-writes switch') and warns that deletion is gated by org review settings with human approval by default, which tells the agent when this tool will actually execute. It does not name alternative tools for branch cleanup, but no close sibling offers that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_file_getAInspect
Read one file from a connected repo.
Large files come back truncated with truncated=true. Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit. Omit for the default branch | |
| path | Yes | Path inside the repo, relative, no .. | |
| github | Yes | owner/repo the org's GitHub App serves |
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 and does disclose real behavior: large files truncate and signal truncated=true, and the call requires memory:read. Remaining gaps are minor (error shape on a missing path or bad ref), and the truncation flag is a genuinely useful caveat an agent would otherwise miss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then the truncation caveat, then the auth prerequisite. Nothing is redundant and nothing needs trimming.
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-shape explanation isn't required, and the description still volunteers the one return detail that matters (truncated=true) plus the permission requirement. For a three-parameter read tool this is close to complete; only failure modes for bad refs/paths are 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 100% — ref, path, and github are each documented in the schema with defaults and constraints. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
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?
"Read one file from a connected repo" gives a specific verb and resource, and the singular-file scope implicitly separates it from github_tree, github_repo_get, and github_code_search. It stops short of naming those siblings explicitly, so the differentiation is inferred rather than stated.
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 applies (you have a known path and want its contents) but never states when to prefer github_tree, github_code_search, or github_repo_get instead. The only cross-reference, "Same binding errors as github_repo_get," is about error behavior, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_issue_getAInspect
Fetch one issue from a connected repo.
The body is an excerpt. Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| github | Yes | owner/repo the org's GitHub App serves | |
| number | Yes | Issue number |
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 does meaningful work: it discloses that the body is only an excerpt (a real behavioral caveat an agent would otherwise miss), states the memory:read scope requirement, and points to github_repo_get for the binding-error class. It is silent on read-only semantics, rate limits, and pagination, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the most important caveat (body is an excerpt). The cross-reference to github_repo_get is compact rather than wasteful, though it is opaque without reading that 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?
An output schema exists, so return values need not be described. For a two-parameter read tool, the description covers the action, the content-truncation caveat, the required scope, and where binding failures are documented — everything an agent needs to invoke 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 coverage is 100%, so both parameters are already documented in the schema. The description's 'connected repo' phrasing loosely reinforces the meaning of the github parameter, but adds no format detail beyond the 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?
Specific verb and resource: 'Fetch one issue from a connected repo.' The singular 'one issue' implicitly separates it from github_issue_list, but the description never names that sibling, so differentiation is inferred rather than stated.
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 only implied: you call this when you have a specific issue number. There is no explicit 'use X instead when...' guidance against github_issue_list, github_pr_get, or work_get, and no stated prerequisites beyond the auth note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_issue_listBInspect
List issues in a connected repo. Pull requests are omitted.
Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | open, closed, or all. Defaults to open | |
| github | Yes | owner/repo the org's GitHub App serves |
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 present, the description carries the full disclosure burden; it does state the auth scope (memory:read), that the operation is a read, that PRs are filtered out of results, and that binding failures mirror github_repo_get. It omits pagination/limit behavior, ordering, and whether results are capped, which matter for a list 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?
Three short sentences with the core purpose front-loaded and no filler. The final sentence relies on cross-referencing another tool's behavior, which is compact but assumes the agent knows github_repo_get's failure modes.
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-value documentation is not needed, and auth plus error behavior are covered. However, for a list endpoint the description leaves open pagination/filtering semantics and alternative-tool routing, leaving gaps an agent would need to probe.
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 100%, including the state parameter's accepted values and default, so the schema already does the parameter work. The description adds nothing beyond confirming the repo must be one "the org's GitHub App serves," which the schema also conveys — baseline 3 applies.
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 and resource ("List issues") with a scoping qualifier ("in a connected repo") and an explicit content exclusion ("Pull requests are omitted"), which effectively separates it from github_pr_list. It stops short of naming github_issue_get as the single-item alternative, so the sibling differentiation is implicit rather than explicit.
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 prerequisite ("Requires memory:read") and an error pointer ("Same binding errors as github_repo_get"), which are context, not usage routing. It never says when to reach for this vs github_issue_get or github_pr_list, so the agent must infer the choice from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_mergeAInspect
Merge a pull request.
Requires the org's agent-writes switch. Merging follows the org's review settings for destructive actions (a person's approval by default).
| Name | Required | Description | Default |
|---|---|---|---|
| github | No | owner/repo. Omit to use the run's bound github= | |
| number | Yes | Pull request number |
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. It usefully discloses that the org's agent-writes switch is required and that merging is treated as a destructive action subject to review, with a person's approval by default. It does not describe merge method behavior, branch cleanup, irreversibility, or what the response contains, so meaningful behavioral gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and then moves immediately to the prerequisite and approval constraints. Every sentence earns its place and there is no redundant restatement of the schema.
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 do not need to be explained. The input schema fully documents both parameters, and the description adds the key authorization and approval context for a mutation tool. It is reasonably complete for calling the tool, though merge-specific behavioral details are absent.
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 100%, so both parameters are fully documented in the input schema. The description adds no parameter-level meaning beyond the schema and does not mention the PR number or repository binding context. Baseline 3 applies because the schema does the heavy lifting.
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 and resource: 'Merge a pull request.' This is clearly distinct from siblings like github_close, github_open_pr, or review_decide. However, it does not explicitly name any sibling or explain how it differs from adjacent operations such as closing or approving a PR.
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 prerequisite context: the org's agent-writes switch must be enabled, and approval follows the org's review settings for destructive actions. It does not explicitly say when not to use this tool or name alternatives, but the operational context is strong enough for an agent to know this is a gated merge action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_open_prAInspect
Open a pull request on this run's repository.
Requires the org's agent-writes switch. Opening a pull request does not merge it. The repository is the run's bound github=.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Branch to merge into. Omit for the repository default | |
| body | Yes | Pull request body | |
| head | Yes | Branch that contains the changes | |
| draft | No | Open as a draft | |
| title | Yes | Pull request title | |
| github | No | owner/repo. Omit to use the run's bound github= |
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 must carry the behavioral load. It usefully discloses the authorization gate (agent-writes switch), that the operation is non-merging, and that the target repo is the run binding — genuine value beyond the schema. It says nothing about failure modes, e.g. what happens if the head branch was never pushed or a PR already exists for that head/base pair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler, with the action stated first and the authorization constraint immediately after. Nothing repeats the schema or the 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?
An output schema exists so return values need no explanation, and all parameters are covered in the schema. The description supplies the two things structured fields cannot: the write-authorization gate and the implicit repository binding. Sufficient for an agent to call 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 100%, so all six parameters are already documented in the schema; baseline is 3. The description adds only one piece of meaning beyond that — that omitting `github` resolves to the run's bound repo — and says nothing about head/base relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Open a pull request') scoped to 'this run's repository', and immediately clarifies it does not merge, which separates it from the github_merge sibling. An agent can tell what it does without opening the schema.
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?
Names a concrete prerequisite ('Requires the org's agent-writes switch') and the non-merging scope, and explains the default repository binding ('The repository is the run's bound github='). It stops short of explicitly routing to github_merge for merging or to github_pr_get/github_pr_checks for follow-up, so alternatives are only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_pr_checksBInspect
Check-run status for one pull request's head commit.
Requires memory:read. unavailable=forbidden when the installation token cannot read check runs. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| github | Yes | owner/repo the org's GitHub App serves | |
| number | Yes | Pull request number |
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 itself and does disclose two real traits: an auth requirement (memory:read) and the degraded-result shape when the installation token can't read check runs. However it leans on 'Same binding errors as github_repo_get' as a cross-reference, and never states the read-only nature, rate limits, or whether statuses and conclusions are both returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and followed by the operational caveats. Minor cost is the cryptic 'Same binding errors as github_repo_get' clause, which is compact but opaque out of 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?
An output schema exists, so return-value explanation isn't needed, and the auth/error context is useful. But for a tool whose error semantics are explicitly referenced via another tool's description, the definition leaves the agent to look elsewhere for that behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'github' (owner/repo) and 'number' (PR number) are already fully documented. The description adds no format hints or constraints beyond that, so the baseline 3 applies.
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+scope: check-run status for a single pull request's head commit. That is clearly distinct from github_pr_get (PR metadata) and github_pr_list, which an agent can infer without opening the schema. It stops short of naming a sibling alternative outright, keeping it at 4 rather than 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?
No guidance on when to call this versus github_pr_get or github_repo_get — the agent must guess that 'I need CI results for PR N' maps here. The only conditional language is a failure mode ('unavailable=forbidden when the installation token cannot read check runs'), which is availability information 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.
github_pr_getAInspect
Fetch one pull request, including a capped file list and diff.
truncated=true when the diff or the file list was cut. Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| github | Yes | owner/repo the org's GitHub App serves | |
| number | Yes | Pull request number |
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 and does disclose real behavior: file list and diff are capped, 'truncated=true' signals a cut, and a memory:read scope is required. It defers error semantics to github_repo_get for 'same binding errors', which is informative but not self-contained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then caveats (truncation) and prerequisites. No redundant text.
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-shape explanation is unnecessary, and the description covers truncation semantics and auth requirements. The only gap is that error behavior is only cross-referenced rather than described.
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 100%, so both 'github' (owner/repo) and 'number' are already documented in the schema. The description adds no extra meaning about formats, ranges, or edge cases, so baseline 3 applies.
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 and resource ('Fetch one pull request') plus the scope of what is returned ('capped file list and diff'). An agent can distinguish it from github_pr_list or github_pr_checks, though no sibling is named explicitly.
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 by the required 'number' parameter and the prerequisite 'Requires memory:read', but the description never states when to reach for this versus github_pr_list (to find a number) or github_pr_checks (for CI status). Clear context, no explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_pr_listBInspect
List pull requests in a connected repo.
Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | open, closed, or all. Defaults to open | |
| github | Yes | owner/repo the org's GitHub App serves |
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 behavioral burden. It does disclose the required scope (memory:read) and points at a known failure mode ("same binding errors as github_repo_get"), which is genuine value. However it says nothing about read-only safety, result limits, pagination, or ordering for a listing tool with an output schema.
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 short sentences, front-loaded with purpose before prerequisites. The cross-reference "same binding errors as github_repo_get" forces the agent to open another tool's docs, which is the only structural cost.
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?
Because an output schema exists, return values needn't be explained, and auth requirements are covered. Still missing for a 2-param listing tool: pagination/result-cap behavior and any signal about when this is the right choice versus the other github_pr_* tools, leaving the definition adequate but not self-sufficient.
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 100% — both the github and state parameters are documented in the schema, including the default for state. The description adds only the notion that 'connected repo' is the org's bound GitHub App repo, which is marginal over the schema's "owner/repo the org's GitHub App serves". Baseline 3 applies.
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 and resource ("List pull requests") scoped to "a connected repo", which separates it from github_pr_get and github_pr_checks by the inherent list-vs-get distinction. It does not explicitly name the sibling it is not, so it stops short of a 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?
Usage is only implied by the verb 'list' — the description never says when to reach for this versus github_pr_get or github_pr_checks, nor does it note any exclusions. The prerequisite (memory:read) is stated, which is the one piece of selection-relevant context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_pushAInspect
Push a branch from this run's checkout.
Requires the org's agent-writes switch. A non-default branch pushes when the switch is on. Pushing the default branch follows the org's review settings for destructive actions (a person's approval by default). Force-push is refused. The token is the acting user's, or a one-repo installation token minted for this call.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Refused. A force-push does not run | |
| branch | Yes | Branch to push. The run's bound repository only. A leading + is refused | |
| github | No | owner/repo. Omit to use the run's bound github=. Any other repo is refused |
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 disclosure burden and does so well: it states the permission gate, that default-branch pushes are treated as destructive and require review approval, that force-push is refused, and whose token is used (acting user's or a one-repo installation token). These are exactly the operational facts an agent needs before calling a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded in one short sentence, followed by only the constraints that change behavior (switch, review gate, force-push ban, token identity). No filler or restatement of the 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?
For a mutation tool with no annotations, the description covers permission gating, destructive-action review, and refusal cases; an output schema exists so return values need not be explained. It is slightly thin on what a refusal looks like at call time, but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so branch/github/force are already documented in the schema itself, and the description adds little parameter-specific detail beyond reinforcing that force-push is refused. Baseline 3 is appropriate where the schema does the heavy lifting.
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 opening line names a specific verb and resource plus scope: "Push a branch from this run's checkout." This clearly separates it from sibling write tools like github_merge, github_open_pr, and github_delete, which operate on PRs or repos rather than pushing a run's checkout.
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 spells out the enabling conditions (org's agent-writes switch), the escalation path for the default branch (org review settings, human approval by default), and an explicit exclusion (force-push refused). It stops short of naming sibling alternatives such as opening a PR instead of pushing directly, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_repo_getAInspect
Repository metadata for one connected repo.
Requires memory:read. A repo outside the installation is github_repo_not_bound. No installation is github_app_not_installed with install_url. A failed installation read is github_binding_unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| github | Yes | owner/repo the org's GitHub App already serves |
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 and does disclose meaningful behavior: the auth requirement, the requirement that the repo be within the installation, and three specific error modes including install_url for github_app_not_installed. It still leaves some read-only behavior implied by 'get' rather than stated, but it is substantially transparent about failure 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 definition is short and front-loaded: purpose first, then auth requirement, then binding/installation error cases. Each sentence carries relevant information, though the error cases are compressed into sentence fragments rather than a structured list.
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 single-repo metadata read with a documented output schema, the description covers the essential prerequisites and binding/installation failure modes. It could go further by naming the closest alternatives, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as 'owner/repo the org's GitHub App already serves.' The description reinforces the binding constraint by explaining that a repo outside the installation returns github_repo_not_bound, but it adds no syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema already does the heavy lifting.
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/resource combination: 'Repository metadata for one connected repo.' This distinguishes it from the likely list sibling, but it does not explicitly name alternatives or clarify how it differs from github_repo_list or github_tree.
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 preconditions such as requiring memory:read and the repo being connected, but it does not say when to use this tool versus github_repo_list, github_tree, or other GitHub siblings. An agent must infer the selection criteria from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_repo_listAInspect
Repos this org's GitHub App installations serve.
This is whether GitHub is connected. repos is the canonical
enabled set minus disabled repos, sorted. installed is false
when the org has no installation. install_url is the install
link (the Settings page when the App is unconfigured). A memory
tool's bound / session_bound field is not this list: it is
the MCP org-session overlay, and writes still go to the token's org.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 and does disclose meaningful behavior beyond the schema: repos is the canonical enabled set minus disabled repos and is sorted, installed is false in the no-installation case, and install_url degrades to the Settings page when the App is unconfigured. Auth requirements and whether the list spans multiple installations are not covered, keeping it from a 5.
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?
Purpose is front-loaded in the first sentence, then edge cases, then the memory-overlay disambiguation. The final sentence is dense and slightly convoluted in phrasing, but each part carries information an agent would otherwise get wrong.
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-param, no-annotation tool with an output schema, the description supplies what the schema cannot: connection-state semantics, disabled/ordering behavior, and the trap of confusing it with memory session binding. Only the auth/scope question (one installation vs all) is left 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?
The tool takes zero parameters, which sets the baseline at 4. The description correctly spends none of its length on input semantics and instead handles the return-side disambiguation.
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 opening line names a specific resource — the repos served by this org's GitHub App installations — and adds that it doubles as the GitHub-connection check, which distinguishes it from github_repo_get and github_code_search. It is a noun phrase rather than a verb+resource (implicitly "list"), and it never names the sibling it is closest to, so it stops short of a 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?
"This is whether GitHub is connected" implies the primary use case (connectivity probe) without stating it as guidance, and the closing sentence gives one explicit when-not: don't use this to read a memory tool's bound/session_bound overlay. There is no stated alternative for fetching a single repo or for listing repos outside the org's installations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_treeAInspect
List one directory of a connected repo.
The listing is capped. truncated=true when entries were dropped. Requires memory:read. Same binding errors as github_repo_get.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit. Omit for the default branch | |
| path | No | Directory inside the repo. Omit for the repository root | |
| github | Yes | owner/repo the org's GitHub App serves |
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 and does real work: it discloses the listing is capped and that truncated=true signals dropped entries, plus the memory:read requirement and that binding errors mirror github_repo_get. It still doesn't say how large the cap is or whether to re-query with a narrower path when truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, and the core behavior plus the truncation caveat are front-loaded before the prerequisite details. Every sentence supplies information an agent could act on.
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 read tool with an output schema and fully documented params, the description covers the two non-obvious things: silent truncation and the auth/binding prerequisites. The one remaining gap is the absence of cap size or a recovery instruction when truncated is true.
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 100%, so ref, path and github are already documented in the schema. The description adds no path/ref semantics of its own, so baseline 3 applies.
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 and resource ('List one directory of a connected repo') and the 'one directory' scoping implicitly separates it from github_file_get and recursive listing behavior. It does not name a sibling tool explicitly, so differentiation is inferential rather than stated.
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: the agent learns it lists a single directory level, not a recursive tree, and that github_file_get handles single files. No explicit when-to-use/when-not or alternative routing is given, and nothing tells the agent when to prefer github_code_search or github_repo_get instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glian_run_nowAInspect
Queue one manual pass of a glian for this org. Needs org:admin.
curator: queue every subject missing a wiki page or still counting
toward the curate threshold. dream: run tonight's pass (skipped if
tonight's report already exists). The worker records a manual
run; check it with glian_status.
| Name | Required | Description | Default |
|---|---|---|---|
| glian | Yes | Glian to run once for this org now |
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 and does well: it states the org:admin auth requirement, that the work is queued rather than executed inline, that the worker records a 'manual' run, and that dream is skipped if tonight's report already exists. It omits rate limits or what happens on duplicate queuing, so not a 5.
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?
Front-loaded with the action and permission in one line, then two compact mode definitions. Typography is dense and slightly cramped, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description covers the mutation's trigger, auth, skip condition, and verification path. Adequate for a single-enum mutation, though a note on idempotency/queuing semantics would fully close the loop.
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 100% with an enum, so the baseline is 3; the description goes beyond by defining what each enum value actually does at runtime (wiki-page gaps vs tonight's dream pass), which the raw enum values would not convey.
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: 'Queue one manual pass of a glian for this org.' It also disambiguates its own two variants (curator vs dream), which no sibling tool covers, so an agent can identify it without opening the schema.
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?
Explains when each mode applies ('curator: queue every subject missing a wiki page...', 'dream: run tonight's pass') and routes the agent to glian_status to check results. It stops short of an explicit when-not-to-use or a named competing sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glian_set_pausedAInspect
Pause or resume one glian for this org. Needs org:admin.
Takes effect within about 30 seconds. While paused, queued distiller and curator jobs are recorded as skipped and parked, then replayed after a resume. A paused nightly dream pass is skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| glian | Yes | Glian to pause or resume (retention cannot be paused) | |
| paused | Yes | true to pause, false to resume |
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 and does so well: it discloses the ~30 second propagation delay, the parked/skipped-and-replayed semantics for distiller and curator jobs, and that a nightly dream pass is simply skipped. Missing only idempotency and error behavior for a redundant call, which is a minor gap for a boolean setter.
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 action and permission requirement are front-loaded in the first line, with consequences in a short follow-up paragraph. Every sentence adds distinct information about timing or job handling; nothing is redundant.
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 need not be explained, and the description covers the auth requirement, latency, and downstream effects on queued jobs. It is nearly complete for a two-parameter mutation, lacking only failure/idempotency notes.
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 100% and the schema itself documents both parameters, including the enum member note that retention cannot be paused. The description only reinforces the pause/resume mapping of the boolean without adding format or edge-case detail beyond the schema, so baseline 3 applies.
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 pair (pause/resume) and resource (glian) scoped to 'this org', which cleanly distinguishes it from the read-oriented glian_status and the execution-oriented glian_run_now. It stops short of naming those siblings explicitly, so disambiguation relies on inference.
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?
'Needs org:admin' is a genuine prerequisite statement, but there is no explicit guidance on when to choose this over glian_status or glian_run_now, and no when-not conditions. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glian_statusAInspect
Background workers (glians) for this org: last run and paused flag.
Each glian row has last_run (status ok/failed/skipped/running,
timing, items in/out, error) and paused. Pass glian= for its
recent run history.
| Name | Required | Description | Default |
|---|---|---|---|
| glian | No | One glian (distiller, curator, dream, retention) to also list its recent runs. Omit for every glian's last run | |
| limit | No | Recent runs to return with glian= |
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. It does describe the returned fields well (last_run status values, timing, items in/out, error; paused), but discloses nothing about auth requirements, rate limits, or that this is strictly a read-only status 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?
Three short sentences with no waste, and the core purpose (workers + last run + paused) is front-loaded before the parameter guidance.
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 need not be explained in the description. For a two-parameter read/status tool, the description covers purpose and both parameter modes adequately; only explicit read-only/auth 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 100%, so the schema already documents both glian and limit fully. The description restates the glian= behavior without adding syntax or constraints beyond what the schema provides, so the baseline 3 is appropriate.
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 resource (background workers/glians for this org) and precisely what it reports: last run and paused flag. It also enumerates the return fields (status, timing, items in/out, error). However, it does not distinguish itself from siblings like glian_run_now or glian_set_paused.
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 only implied via the parameter note: 'Pass glian= for its recent run history. Omit for every glian's last run.' There is no explicit statement of when to prefer this over glian_run_now or glian_set_paused, and no prerequisites or when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
healthAInspect
Liveness + dependency probe.
Returns {"status", "version", "components": {server, redis, postgres, semantic, distiller, graph, ollama}}. semantic is the pgvector +
embedder store. Optional deps report "disabled" when off
and do not degrade overall status. Always cheap; safe
to poll on a 10s interval. Used by Docker healthcheck and the
/health HTTP route.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 burden and handles it well. It discloses that optional dependencies report 'disabled' without degrading overall status, that the call is cheap, and that it is safe to poll frequently. These are meaningful behavioral traits beyond the bare input/output contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, followed by return shape, component semantics, failure behavior, and operational guidance. Every sentence adds useful information, and none repeats the input schema or annotations.
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 health probe with an output schema present, the description is complete. It explains the return structure, defines the ambiguous 'semantic' component, clarifies optional dependency behavior, and gives explicit polling guidance. An agent has everything needed to invoke 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?
The tool has zero parameters, so there is no parameter documentation burden. The description focuses on the response shape and component meanings instead, which is the appropriate use of description space given the empty 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 opens with 'Liveness + dependency probe', which clearly states the tool's function, and then specifies exactly what it returns: status, version, and component health. This is distinct from the many sibling tools because it is explicitly the healthcheck/status probe rather than an account, memory, or work operation.
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 usage context: 'Always cheap; safe to poll on a 10s interval. Used by Docker healthcheck and the /health HTTP route.' This tells an agent when polling is appropriate, though it does not explicitly compare against alternatives such as `version` 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.
mcp_authAInspect
Last-resort email + OTP bind for this MCP session (headless only).
Prefer account-level Cursor Connect (Cloud / Grok Bot inherit it) or a
tsk_ header. Do not call this as the first hop. When the host has
no token:
mcp_auth(email="you@example.com")— we email a 6-digit code.Ask the human for the code, then
mcp_auth(email="you@example.com", code="123456").If
status=need_org, call again withorg_id=.
After status=authenticated, later tools on this streamable-HTTP
session run as that person. Do not store the code or any token.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | One-time code from the login email. Pass together with email= after mcp_auth returned status=code_sent. | |
| No | Email to send a 6-digit login code to. Same OTP as the console and Cursor Connect. Omit (with no code) to see whether this session is already signed in. | ||
| org_id | No | Organization to attach when the email belongs to more than one org (status=need_org). |
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 burden and does substantial work: it discloses side effects (emails a 6-digit code), session-wide statefulness (later tools run as that person), the headless-only constraint, and a security rule (do not store code/token). It stops short of covering failure/retry behavior or expiry, but the key stateful and side-effectful traits are clearly surfaced.
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?
Every sentence earns its place: purpose and constraint in line one, routing guidance in line two, and a numbered invocation sequence. The most important qualifier (last-resort, headless-only) is front-loaded, and the step numbering makes the multi-call flow easy to follow without padding.
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 an output schema exists (so return values need not be spelled out) and 100% parameter coverage, the description completes the picture with the flow states, the conditional org branch, and post-auth session behavior. The only minor gap is failure mode handling (e.g., wrong code), but nothing needed to invoke the tool correctly across its documented states 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 100%, so the parameter descriptions already explain email, code, and org_id semantics including the code_sent and need_org statuses. The description adds orchestration context (which order to pass parameters in), but per-parameter meaning is fully carried by the schema, matching the baseline-3 case for high 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?
Opens with a specific verb+resource statement: 'email + OTP bind for this MCP session (headless only).' The 'last-resort' qualifier and 'headless only' constraint make its role unmistakable, and among the sibling list (org_bind, health, version) there is no competing auth tool, so an agent can identify it immediately.
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?
Explicitly tells the agent when NOT to call it ('Do not call this as the first hop'), names the preferred alternatives (Cursor Connect, 'tsk_' header), and gives a concrete condition for when it is appropriate ('When the host has no token'). The numbered 3-step flow with the conditional need_org branch leaves no ambiguity about invocation order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_action_applyBInspect
Execute a governed ontology action and write an audit log entry.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| action | No | Alias for action_name | |
| parameters | Yes | Parameters matching the action schema | |
| action_name | No | Registered action type name, e.g. link_entities |
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 behavioral burden. It usefully discloses a real side effect (an audit log entry is written), but says nothing about permission/governance requirements, validation of the action against its schema, reversibility, or failure behavior for what is clearly a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the action verb and its audit side effect lead. It is perhaps too terse for the tool's complexity, but nothing in it is wasted.
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 need not be explained, but for a complex governed mutation tool with zero annotations the description is thin: it omits governance/permission expectations, error behavior, and how action_name is resolved. It does not do enough to let an agent call it confidently.
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 100%: every parameter (agent, action, action_name, parameters) is documented in the schema itself. The description adds no syntax, format, or example detail beyond the schema's own 'Registered action type name, e.g. link_entities', so the baseline 3 applies.
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 (Execute) and resource (governed ontology action), plus a secondary effect (audit log entry). It is distinguishable from the read-side sibling memory_action_log_list, but it never names that sibling or clarifies the boundary between applying an action and merely logging one.
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, and no alternative is named. The word 'governed' hints that policy applies, but the agent is not told which conditions select this tool over the many memory_ontology_* or memory_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_action_log_listCInspect
List recent governed action executions for the org.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | 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 behavioral burden. It implies a read-only listing but says nothing about ordering, pagination beyond the limit parameter, retention window for 'recent', or permission requirements for viewing governed actions. The only behavioral content is the word 'governed', which is 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?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is achieved partly by omitting information the agent actually needs.
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-value shape need not be explained in the description. However, for a tool with an undocumented parameter and no annotations, the description omits usage context and behavioral constraints that would make the definition self-sufficient.
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 single parameter 'limit' has 0% schema description coverage, so the schema supplies only a default (20) and bounds (1-200) with no stated meaning. The description adds nothing about what the limit counts or how ordering interacts with it, leaving the gap uncompensated.
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 (List) and resource (governed action executions) with a clear scope qualifier (recent, for the org). It is distinguishable from the write-side sibling memory_action_apply, but it does not explicitly differentiate itself from adjacent list-type siblings such as memory_episodes_list or memory_changes_since.
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 statement of when to use this tool versus alternatives, and no sibling is named as a routing target. The word 'recent' implies a recency-bounded read, but the agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_agent_ensureAInspect
Get-or-create this org's ontology Agent + shared memory profile.
Harness agents slug to agent-<label>. Cloud agents slug to
agent-<cursor_agent_id>. Other agents read the profile with
memory_agent_get or memory_entity_view.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Harness label (cursor, grok, dispatcher). Omit for the caller. | |
| agent | No | Override agent attribution label | |
| model | No | Cursor model id when known (composer-2.5, auto-smart, …) | |
| harness | No | Harness type that owns this agent (cursor, grok-bot, …) | |
| runtime | No | harness (MCP client) or cloud (Cursor cloud agent) | |
| spawned_by | No | Parent Agent slug or label (dispatcher that spawned this cloud agent) | |
| cursor_agent_id | No | Cursor cloud agent id (bc-…). Sets runtime=cloud when provided. |
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 openly states the side effect (get-or-create), the org scope, and the exact slug derivation for harness vs. cloud agents. It does not say whether existing profiles are silently returned or updated, but 'Get-or-create' communicates the core non-destructive intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the most important information: the operation and its resource. The slugging rules and read-alternative pointer are each one clause with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema handles return values and the schema covers all 7 optional parameters, the description is largely complete. It misses a small but useful pointer to memory_agent_set for explicit updates, but the get-or-create semantics and read alternatives cover the main decision paths.
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 100%, so the baseline is 3. The description adds value beyond the schema by explaining how parameters map to the agent slug (name to agent-<label>, cursor_agent_id to agent-<cursor_agent_id>), which is not derivable from the individual parameter descriptions alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb phrase 'Get-or-create' and a specific resource ('this org's ontology Agent + shared memory profile'), so an agent knows exactly what the tool does. The slugging convention distinguishes it from read-only siblings like memory_agent_get and memory_entity_view, and the 'ensure' semantics are immediately clear.
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 actionable context: use this tool to get-or-create an agent profile, and read the profile with memory_agent_get or memory_entity_view. It does not explicitly say when to use memory_agent_set or memory_agent_list instead, but the get-or-create framing and named read alternatives provide decent routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_agent_getBInspect
Read another agent's (or your own) org-shared ontology memory.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Harness label. Omit together with slug/id to fetch the caller. | |
| slug | No | Ontology slug, e.g. agent-cursor or agent-bc-… | |
| cursor_agent_id | No | Cursor cloud agent id (bc-…) |
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 'Read' and 'org-shared ontology memory,' which implies a safe read operation, but it does not disclose what happens when multiple identifiers are provided, whether it errors on ambiguous inputs, or what the output structure is despite an output schema existing. It also does not clarify auth or sharing semantics beyond 'org-shared.' For a read 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?
The description is a single, clear sentence with no filler, front-loading the core action and resource. It is concise and to the point, though it could add a little more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with an output schema and fully documented parameters, the description is mostly sufficient, but it lacks behavioral guidance on parameter combinations and tool-specific nuances. The output schema covers return values, so that's handled. However, a clearer usage distinction from memory_agent_list or memory_recall would complete the picture. Minimum viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (name, slug, cursor_agent_id) with their roles. The description adds minimal extra meaning beyond saying 'read memory' and doesn't explain how the parameters interact (e.g., 'omit together with slug/id to fetch the caller' is already in the schema). Baseline 3 is appropriate since the description doesn't contradict or significantly extend the 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?
Description clearly states the action ('Read') and resource ('another agent's (or your own) org-shared ontology memory'), which is specific enough. It is distinct from siblings like memory_agent_list (which likely lists memories) and memory_agent_ensure/set (which write), though it doesn't explicitly name 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?
The description implies usage for reading ontology memory, and the parameter docs hint that omitting identifiers fetches the caller, giving a sense of when to use defaults. However, it does not explicitly say when to prefer this over siblings like memory_recall or memory_agent_list, nor does it provide exclusions or routing guidance. This is implied by the resource name but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_agent_listAInspect
List Agent ontology memories in this org (other agents can reference them).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| runtime | No | Optional filter: harness or cloud |
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 behavioral disclosure burden. 'List' conveys that this is a read-only operation and 'in this org' sets the scope, but nothing is mentioned about ordering, pagination behavior, or any side effects. These are minor for a simple list tool, but the description adds little beyond what the name and schema already imply.
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 front-loaded sentence with no filler: the verb, resource, and scope come first, and the parenthetical about agent references earns its place by clarifying why the list matters. Nothing extraneous is present.
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, read-only list tool with no required parameters and an existing output schema, the description covers the essential context: what is being listed and in which org. It does not explain the runtime filter or result ordering, but the schema already documents runtime and the output schema covers return structure, so the gaps are minor.
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 only 33% (runtime is described as 'harness or cloud'), and the description provides zero parameter guidance. Limit and offset are left to their self-evident names and defaults; since coverage is below 50%, the description should have compensated, but it does not. The agent must infer the pagination filter semantics from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('List'), an explicit resource ('Agent ontology memories'), and a scope ('in this org'), while adding the functional note that other agents can reference them. This clearly distinguishes it from sibling tools like memory_agent_get (single fetch) and memory_agent_set (write).
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 context is clear: use this to get a directory of Agent ontology memories for the current org, especially when you need identifiers other agents can reference. It does not explicitly enumerate when not to use it or name alternatives, but the listing semantics and org scope are sufficient for an agent to select it over the single-entity siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_agent_setAInspect
Replace an agent's org-shared memory profile (creates the entity if needed).
The caller's own seat may rewrite its profile. An org admin may rewrite
any agent's. An agent seat cannot rewrite another agent's profile, and
neither can a member who is not an org admin. agent= attributes the
write; a missing card plus another agent's label is refused before
anything is written.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Harness label. Omit with slug/id to write the caller. | |
| slug | No | Ontology slug, e.g. agent-cursor | |
| agent | No | Override the attribution label. Does not choose which profile is written. | |
| body_md | Yes | Compressed markdown profile (role, current task, constraints). Keep short; server caps length. Org-visible — not a private soul. | |
| cursor_agent_id | No | Cursor cloud agent id (bc-…) |
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 well by disclosing replacement semantics, entity creation when missing, permission boundaries, attribution behavior, and pre-write refusal conditions. It does not describe the return value or post-write effects in detail, but the output schema is available for return shape.
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 front-loaded with the core action and follows with permission and attribution rules in a structured way. It is reasonably concise, though the permission paragraph is somewhat dense and repeats some admin/agent distinctions.
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 a five-parameter schema with full description coverage, an output schema, and no annotations, the description provides enough context about permissions, replacement, creation, and refusal behavior to invoke the tool correctly. Minor gaps remain around sibling-tool selection and detailed post-write behavior, but the core invocation context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters, establishing a baseline of 3. The description adds meaningful nuance by explaining that ``agent=`` attributes the write rather than selecting the profile, and that a missing card plus another agent's label is refused before anything is written.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Replace an agent's org-shared memory profile," and clarifies the create-if-needed behavior. It is readily distinguishable from sibling tools such as memory_agent_get, memory_agent_ensure, and memory_profile_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear permission-based usage rules: callers may rewrite their own seat profile, org admins may rewrite any agent's, agent seats cannot rewrite another agent's, and non-admin members are blocked. It does not explicitly compare itself to sibling tools such as memory_agent_ensure, but the when-to-use context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_assemble_contextAInspect
Assemble one token-budgeted, cited context pack for a task.
Fans recall across semantic, episodic, procedural, skill, strategic,
work, working pillars and the optional graph in parallel through the
secure retrieval path, then ranks and packs the result into a single
sectioned markdown bundle. Use this once at the start of a task instead
of issuing serial memory_recall / memory_procedure_get /
memory_graph_related calls. Returns rendered (the pack),
tokens_used, counts_by_pillar, and the kept records.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug of your current repo. Boosts repo-scoped memories in the pack; pass it for code/repo-specific work. | |
| task | Yes | What you are about to do (the task/question driving recall) | |
| github | No | GitHub repository as owner/repo (boosts github-tagged memories) | |
| open_files | No | Paths of files currently open/relevant; their names seed the graph-relationship lookup. | |
| k_per_pillar | No | Max records to recall per pillar | |
| token_budget | No | Approx token budget for the rendered pack (default 1500) |
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. It discloses that the tool recalls across pillars in parallel, ranks and packs results, and returns specific fields. However, it does not explicitly state whether it is read-only or has side effects. The 'recall' language implies read-only, but without annotation support, a clear statement about non-mutation would be ideal. This minor gap prevents a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence stating the main action, followed by a detailed explanation of the recall mechanism and a usage note. It is somewhat verbose but every sentence contributes meaning. It is front-loaded with the core purpose, making it easy for an agent to grasp quickly. Slightly tighter wording could earn a 5, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core function, usage timing, and return fields (rendered, tokens_used, counts_by_pillar, records). Given that an output schema exists, the return format is likely specified there. The description does not discuss error conditions or prerequisites, but for a context-assembly tool with 6 parameters and optional graph support, the provided information is sufficient for correct invocation. A mention of potential failure modes would make it more 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 schema has 100% parameter description coverage, so the baseline is 3. The tool description does not add semantic value beyond what the schema already provides. It mentions the 'task' indirectly and refers to the pack, but does not elaborate on parameters like 'repo', 'github', or 'open_files' in a way that would improve understanding. It meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Assemble one token-budgeted, cited context pack for a task.' It clearly defines the output as a sectioned markdown bundle and differentiates itself from sibling tools by naming the alternative serial calls (memory_recall, memory_procedure_get, memory_graph_related). The purpose is unambiguous and distinguishable.
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?
Explicitly states when to use the tool: 'Use this once at the start of a task instead of issuing serial memory_recall / memory_procedure_get / memory_graph_related calls.' This directly instructs the agent on the appropriate invocation context and names the alternatives to avoid, which is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_capture_inventoryBInspect
List recent working sessions and durable memories by agent.
Soft-joins agent_runs when a cursor_agent_id appears in the
session. Gap report: protocol (ensure/commit) misses, undistilled
sessions, blank/wrong author_label. See docs/capture-attribution.md.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Optional writer filter — restrict sessions and durable rows to one agent label (email, tsk_ label, or cursor-cloud-<bc-…>; cursor-cloud matches the family). Default (None) is org-wide. | |
| limit | No | ||
| probes | No | Optional ≥2-agent probe list for a live scorecard: [{"agent": "...", "subject": "eval-probe-…", "path": "cursor_cloud|grok_connect|desktop_connect"}]. Omit to return inventory + gap report only. |
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. It usefully discloses the soft-join on cursor_agent_id and the content of the gap report (protocol misses, undistilled sessions, blank author_label), which is real behavioral context. However it omits access/permission requirements, cost, and read-only confirmation beyond the implied 'List'.
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?
Front-loads the core action in the first sentence, then supports it with join semantics and the gap-report contents, plus a doc pointer. It is compact and every sentence earns its place, though the second sentence is dense with unexplained jargon.
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 needn't be explained, and the description covers the filters, probes, and gap report. Still, for a moderately complex aggregation tool it leaves usage context and the 'limit' parameter unaddressed, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: 'agent' and 'probes' are well documented in the schema, while 'limit' has no description. The description adds only marginal param meaning ('by agent'), so the schema is doing the heavy lifting — the baseline 3 for medium coverage is appropriate.
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 ('List') and resources ('recent working sessions and durable memories') and adds a behavioral nuance (soft-join with agent_runs). It is clear what it does but does not explicitly distinguish itself from close siblings like memory_episodes_list or memory_distill_scorecard, which also surface session/digest data.
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 context is only implied: the probes param description notes 'Omit to return inventory + gap report only,' giving a conditional hint, but there is no explicit when-to-use-this-vs-alternatives guidance against the many memory_* listing tools. An agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_changes_sinceAInspect
Resume-handoff delta of durable org memory since an opaque cursor.
Returns current-truth rows newer than cursor (oldest-first) plus a
new opaque cursor. Use this to continue another session's work; use
memory_recall for keyword search. Not a full checkpoint/context pack.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Max durable changes to return (oldest-first) | |
| kind | No | Optional durable kind filter (fact|preference|event|note|outreach) | |
| repo | No | Workspace slug filter. When set, only memories tagged for this repo are returned (unlike memory_recall, which boosts). | |
| cursor | No | Opaque resume watermark from a previous memory_changes_since call. Clients must persist and return it as-is — do not parse or mint one. Omit to take a bootstrap page of the newest current-truth durable rows and receive a cursor to watch from. | |
| github | No | GitHub owner/repo filter. When set, only memories tagged github:<owner>/<repo> are returned. | |
| pillar | No | Optional pillar filter. This feed is memory_items only (semantic / episodic). Other pillars return an empty page. | |
| include_superseded | No | When true, also return superseded/merged history. Default is current truth only, same as memory_recall. |
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 the output ordering (oldest-first), the fact that it returns a new opaque cursor, and the limitation that it is not a full checkpoint. It implies a read operation (returns delta), but does not explicitly state read-only or describe side effects. It adds useful context beyond the schema (e.g., resume-handoff, current-truth), so it is strong but not perfect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose. It packs a clear purpose, return behavior, usage guidance, and a limitation without any fluff. Every sentence contributes to orientation or selection.
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 presence of an output schema covers return format. The description covers why and when to use the tool, plus a key limitation. It does not explain the effect of filters (kind, repo, pillar) but those are fully documented in the schema. For a tool of this complexity, this is adequately complete, though it could mention that only memory_items are returned for pillar filtering, which is in the schema but not the 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 100%, so the baseline is 3. The description does not add semantic detail about individual parameters beyond what the schema already provides. It mentions 'opaque cursor' and 'current-truth' conceptually, but these are also covered in the schema descriptions. No extra value added.
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: providing a resume-handoff delta of durable org memory since an opaque cursor, returning current-truth rows newer than the cursor. It explicitly distinguishes itself from memory_recall for keyword search, making its purpose unambiguous to an agent.
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 gives direct usage instruction: 'Use this to continue another session's work' and contrasts with 'use memory_recall for keyword search.' It also flags a limitation ('Not a full checkpoint/context pack'), telling the agent when not to use it. This is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_context_packAInspect
Bounded resume pack for an agent starting or resuming work.
One call returns {cursor, profile_excerpt, work_open, changes, has_more_changes, recall, truncated, token_est, budget_tokens}
packed to budget_tokens in that fixed section order, led by a
verbatim constraints list (same as the constraints prompt)
when the org has standing rules. Built from
the same paths as memory_profile_get, memory_changes_since and
memory_recall (shared brain: no agent filter). Persist cursor
and pass it next time to receive only newer changes. Use
memory_recall for further search and memory_assemble_context
for a task-driven pack.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug. Filters the changes section to this repo and boosts (does not filter) recall hits. | |
| query | No | Optional short keyword anchor. When set, adds a capped, org-shared memory_recall section. Omit to skip recall. | |
| cursor | No | Opaque resume cursor from a previous memory_context_pack, memory_changes_since, or a closing context_commit / memory_session_close (handoff_cursor). Pass it back as-is. Omit on first contact to get the newest durable changes plus a cursor to resume from. | |
| github | No | GitHub owner/repo. Filters changes to github:<owner>/<repo> and boosts recall hits. | |
| work_id | No | Work item id to include as work_open (compact row) | |
| budget_tokens | No | Approx token cap for the whole pack (default 3000) |
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, and it delivers meaningful traits: fixed section order, a verbatim constraints lead when standing rules exist, 'shared brain: no agent filter', and cursor-based incremental resume. It stops short of an explicit safety/read-only statement, but the behavior disclosed is substantial.
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?
Front-loaded with the purpose and scoping, then progressively more detail; each sentence (return shape, build source, cursor, alternatives) earns its place. Slightly dense but well-ordered rather than padded.
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?
Covers return shape, cursor semantics, budget behavior, and sibling alternatives; since an output schema exists the field enumeration is somewhat redundant, but nothing an agent needs to call it correctly 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 100%, so every parameter is already documented in the schema, and the description largely reinforces rather than extends that. It adds a little on cursor chaining and the budget cap, but not enough to move above the high-coverage baseline of 3.
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 and resource ('bounded resume pack for an agent starting or resuming work') and enumerates exactly what the single call returns. It distinguishes itself from siblings by naming memory_recall (further search) and memory_assemble_context (task-driven pack), so an agent can route without opening schemas.
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?
Explicit when-to-use ('starting or resuming work'), explicit alternative routing ('use memory_recall for further search', 'memory_assemble_context for a task-driven pack'), and explicit cursor lifecycle ('persist cursor and pass it next time to receive only newer changes').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_distill_scorecardAInspect
Read-only distiller effectiveness: coverage, attribution, crumb rate, cost.
Coverage/attribution reuse the capture-eval gap report. Crumb rate is is_low_value_record on durable rows. Cost is llm_usage source=distiller. See docs/distill-scorecard.md.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Day window for closed sessions, durable rows, and llm_usage source=distiller. Default 7. |
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. It discloses read-only behavior and names the underlying data sources for each metric (capture-eval gap report, durable rows, llm_usage source=distiller), which is useful behavioral context. It does not cover auth requirements or rate limits, but for a read-only scorecard this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and metrics, then adds compact source definitions. Every sentence carries information, and the doc pointer is brief. No wasted text.
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 a simple one-parameter schema and an output schema, the description supplies enough context: it identifies the tool as read-only, defines the metrics, and cites the data sources. Missing usage guidance is a gap, but for a metrics report tool with output schema, the description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single days parameter, so the schema already defines the parameter. The description adds no additional parameter meaning, but baseline 3 applies when schema does the heavy lifting.
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 read-only reporting tool for distiller effectiveness and enumerates the four metrics it returns (coverage, attribution, crumb rate, cost). This is clear but does not distinguish itself from sibling memory analytics tools such as memory_dream_status or memory_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit when-to-use guidance, no exclusions, and no named alternatives. The pointer to docs/distill-scorecard.md is documentation, not invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_dream_statusAInspect
Latest nightly dream report for this org (what changed overnight).
Returns the most recent leftover-distill + curator report, or
found=false when last night wrote nothing. The same note is a
normal semantic memory / wiki page memory_recall can find.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 burden and does well by disclosing the found=false fallback when no report was written and clarifying that the content is stored as an ordinary semantic memory page. It does not cover auth, rate limits, or explicit read-only guarantees, but for a parameterless report getter the disclosed behavior is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the key purpose in the first sentence and supporting behavioral details in the next two. Every sentence adds distinct value: scope, return behavior, and relationship to memory_recall. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema is present, and the behavior is simple read-only retrieval, the description covers everything needed to call it correctly. It explains what is returned, what happens when nothing was written, and how the note relates to the broader memory system.
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 tool has zero parameters and the schema description coverage is 100%, so there is no parameter information for the description to meaningfully add. The baseline for zero-parameter tools is 4, and the description appropriately focuses on behavior rather than parameter 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 opens with a specific verb-object pair: 'Latest nightly dream report for this org (what changed overnight)', clearly identifying the resource and scope. It further distinguishes itself by noting the report is also a normal semantic memory page that memory_recall can find, which positions this tool as the dedicated status view rather than a generic recall tool.
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: use this when you need the most recent nightly dream/change report for the org. It also mentions that the same note is discoverable via memory_recall, which indirectly signals a related alternative, though it does not explicitly state when to prefer one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_entity_viewAInspect
Roll up wiki, memories, graph neighbors, and work for one entity.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Entity slug (wiki topic slug or ontology entity slug) |
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 is the only safety/behavior signal. 'Roll up' strongly implies a non-mutating aggregation, but the description does not explicitly state read-only behavior, required permissions, freshness, or pagination; the tool name 'view' helps but is not a substitute for annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler; the action, data sources, and scope are all present and front-loaded. Nothing in the description is redundant with the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a rich output schema, the description says enough about what the caller gets (aggregation of four data categories) to invoke it correctly. It omits deeper selection guidance, but that is already scored under usage guidelines.
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 100%, so the slug parameter is already fully documented as a wiki topic slug or ontology entity slug. The description adds no additional parameter-level meaning beyond reinforcing that the operation is scoped to a single entity.
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 concrete action ('Roll up') and names the exact resource types included (wiki, memories, graph neighbors, work) plus the entity scope. It conveys a broad aggregated entity view, though it does not explicitly contrast with siblings like memory_recall or memory_assemble_context.
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 'for one entity' implies the intended use case: get an aggregated view of a single entity's related data. However, it never describes when to prefer this over the many memory-looking siblings, nor does it state exclusions or prerequisites beyond having a slug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_episodes_listBInspect
Browse the episodic timeline (shared within the org by default).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Optional filter — restrict to one agent's episodes. Default (None) returns every agent's timeline in the org. | |
| limit | No | ||
| since | No | Lower bound on created_at | |
| topic | No | Substring match on topic | |
| until | No | Upper bound on created_at |
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 behavioral burden. It does disclose one real behavior — episodes are shared org-wide by default — which is genuine value, but it says nothing about read-only status, pagination limits (limit defaults to 20, max 200), ordering, or auth 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 front-loaded sentence with the scope caveat in parentheses and zero wasted words. Nothing is buried and nothing needs trimming.
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 need not be described, and the sharing scope is stated. However, for a 5-parameter browsing tool in a very crowded memory tool family, the lack of routing guidance and pagination/ordering context leaves meaningful gaps.
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 80% and the parameters (agent, topic, since, until, limit) are each documented in the schema, so the baseline is 3. The description adds no filter syntax, matching semantics, or default-override detail beyond the 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 verb ("Browse") and resource ("episodic timeline"), so an agent can tell this is a listing tool for episode history. It stops short of naming a sibling (e.g. memory_recall, memory_changes_since) to disambiguate the many other memory_* read 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 and no exclusions. It never explains how this differs from memory_recall, memory_changes_since, or memory_get, all of which plausibly retrieve stored memory, so the agent must guess which read tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_feedbackAInspect
Record +1/-1 feedback on a recalled memory id.
Append-only: writes memory.feedback on the memory:{id} stream.
Does not change the memory body — corrections stay on
memory_remember (supersede) or memory_forget. Skill/playbook
rewrites stay on memory_skill_feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional one-line why this vote | |
| vote | Yes | 1 if this recall helped, -1 if it hurt | |
| agent | No | Override agent identity | |
| memory_id | Yes | memory_items UUID from a previous memory_recall hit |
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 burden. It discloses that the operation is append-only, writes to the memory:{id} stream, and leaves the memory body unchanged, which is important context beyond the tool's name. It could add details about duplicate votes or failure behavior, but the output schema covers return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the action, and the second paragraph adds only essential behavioral guardrails. There is no filler, redundant schema restatement, or vague introductory language.
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 4-parameter tool with a full output schema and no annotations, the description covers what the tool does, how it behaves, and which sibling tools handle related cases. An agent has enough information to invoke it correctly without guessing about 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 100%, and each parameter already has a meaningful description: vote is an enum with semantics, memory_id is traced to a prior memory_recall, and note/agent are optional overrides. The description reinforces that memory_id refers to a recalled memory but adds little new parameter-level meaning beyond the 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 opens with 'Record +1/-1 feedback on a recalled memory id', naming a specific action, object, and allowed value range. It also distinguishes itself from nearby memory tools by stating it does not modify the memory body and by pointing corrections and rewrites to memory_remember, memory_forget, and memory_skill_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when this tool is not the right choice: corrections belong on memory_remember/memory_forget, and skill/playbook rewrites belong on memory_skill_feedback. It clearly implies use after a memory_recall hit when the goal is only to record a positive or negative vote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_forgetAInspect
Soft-delete a semantic/episodic memory by id (requires memory:delete).
memory_id is the memory_items UUID returned by memory_recall.
Procedural deletes are not supported via this tool. Only a row you can
recall: anything else (another member's private memory included)
answers deleted: false, reason: not_found, like a missing id.
Agent seats (org tsk_ / agent_run) are refused — call
request_gated_approval(gate="destructive") instead. Console humans
(ts_session) still forget.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Audit reason; required | |
| memory_id | Yes | memory_items UUID from a previous recall | |
| parent_id | No | Work parent UUID when this forget belongs to a beat |
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 and does so: it discloses the write is a soft-delete (not a hard purge), the memory:delete permission requirement, the caller-visible failure mode (deleted:false, reason:not_found) including deliberate masking of another member's private memory, and actor-type gating. These are behaviors an agent could not infer from the schema alone.
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?
Core purpose and permission are front-loaded, then parameter provenance, then exclusions and caller-class gating. Every sentence carries a distinct decision-relevant fact; there is no restatement of the tool name or padding.
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?
Output schema exists, so return values needn't be explained, yet the description still discloses the not-found return shape. For a mutation tool with no annotations, permission, caller gating, input provenance, sibling exclusion, and failure semantics are all covered — nothing an agent needs to call it correctly 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 coverage is 100%, and the description largely repeats what the schema already says (memory_id is the memory_items UUID from a previous recall; reason is an audit reason). It adds the useful constraint that only recallable rows are forgettable, but parent_id is given no meaning in the description at all. Baseline 3 is appropriate when the schema does the heavy lifting.
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+scope: soft-delete of a semantic/episodic memory by id, with the required permission. It actively distinguishes itself from siblings by ruling out procedural deletes (memory_forget_procedure) and by refusing agent seats. An agent can place it precisely in the memory_* family without opening any schema.
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?
Explicit when-not conditions (procedural deletes unsupported; agent seats refused) and explicit routing alternatives (request_gated_approval with gate="destructive") for the refused caller class. It also states the acceptable input provenance — only a row you can recall — which is effectively the precondition for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_forget_procedureBInspect
Soft-delete all active versions of a playbook by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playbook name to soft-delete | |
| reason | Yes | Audit reason; required |
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 behavioral burden. It discloses that the operation is a soft-delete (implying recoverability) and affects all active versions, which is valuable. However, it omits permissions required, whether the action is reversible, and any side effects beyond scope.
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 zero waste. The key scoping constraint (all active versions) and action (soft-delete) are front-loaded, making it immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with no annotations and a rich output schema, so return values need not be described. The description covers the core action and scope but leaves out behavioral context like required permissions or recoverability, which matters for a soft-delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are fully documented in the schema. The description adds only marginal detail (the name identifies the playbook to target, and reason is required per schema). Baseline 3 is appropriate when the schema does the heavy lifting.
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 (soft-delete), resource (all active versions of a playbook), and scope (by name). It distinguishes itself from generic memory_forget and memory_forget_skill by targeting playbook versions, but it does not explicitly name those alternatives to help the agent route correctly.
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 when-to-use guidance, prerequisites, or alternatives. An agent must infer that this is the correct tool when it wants to forget a procedure rather than a skill or other memory entity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_forget_skillBInspect
Soft-delete all active versions of a skill by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Skill name to soft-delete | |
| reason | Yes | Audit reason; required |
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 behavioral burden. It usefully discloses that the deletion is 'soft' (i.e., not permanent) and covers 'all active versions', which is meaningful context. But it says nothing about reversibility/restoration, required permissions, or what happens to dependent references, leaving notable gaps for a destructive-ish 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?
A single, front-loaded sentence with zero waste. The verb and scope lead the sentence so an agent can triage it at a glance.
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?
Return values are covered by the output schema and params are fully documented, but as a mutation tool with no annotations it omits prerequisites, reversibility, and sibling routing. For a skill-forget operation surrounded by many memory_* siblings, more context would help.
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 100%, so both parameters are already documented in the schema. The phrase 'by name' reinforces the name parameter but adds no syntax or format detail beyond what the schema provides. Baseline 3 applies when the schema does the heavy lifting.
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 (soft-delete), resource (skill), and scope (all active versions, by name). An agent can grasp the operation quickly. However, it offers no differentiation from close siblings like memory_forget or memory_forget_procedure, leaving the agent to infer the boundary.
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 and no named alternative. The agent is not told when to forget a skill versus using memory_forget, memory_forget_procedure, or memory_skill_set to modify it. Usage must be inferred entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_for_pathsAInspect
What the org already knows about these files, newest first.
Returns current-truth memories tagged path:<p> (via
memory_remember(paths=) or session distill) for any of
paths or a path under one of them (src/billing matches
src/billing/webhooks.ts, not src/billing2/...), each with the
memory_recall provenance block and metadata.matched_paths. Shared brain: no agent filter. An exact
path lookup, not search: use memory_recall for keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Max memories to return, newest first | |
| repo | No | Workspace slug. Drops memories tagged for a different repo:<slug>; memories with no repo/github tag still match. | |
| paths | Yes | Repo-relative POSIX file or directory paths to look up (e.g. ['src/foo.ts'] or ['src/billing']; a directory also matches memories tagged for files under it). Same normalization as memory_remember(paths=): absolute paths and '..' escapes are rejected. [] returns no records. | |
| github | No | GitHub owner/repo. Drops memories tagged for a different github:<owner>/<repo>; pass it so paths from another repo with the same layout do not match. |
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 and mostly succeeds: it discloses newest-first ordering, prefix-match semantics, 'current-truth' filtering (implying superseded memories are excluded), the shared-brain scope ('no agent filter'), and the provenance/matched_paths payload. It does not mention required permissions, rate limits, or pagination behavior beyond the schema's k.
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 leading sentence is front-loaded with the core purpose and ordering, followed by tight, evidence-dense detail. The parenthetical examples earn their space, though the middle sentence is somewhat run-on and could be split for readability.
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-value explanation is not strictly required, and the description still usefully describes the provenance block and metadata.matched_paths. For a read-only, 4-param lookup the coverage is nearly complete, missing only explicit statements of permission requirements and whether the operation is side-effect free.
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 100%, so the baseline is 3, but the description adds real semantic value beyond it: it explains the prefix/directory matching rule for paths and how repo-sharing interacts with tag matching, and ties the tag format back to memory_remember(paths=). The k, repo, and github behaviors are largely left to the 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?
States a specific verb and resource ('returns current-truth memories tagged path:<p>') and pins down the exact matching semantics, including that a directory matches files under it and that 'src/billing' will not match 'src/billing2'. An agent can distinguish this from memory_recall (keyword search) without opening either schema.
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?
Explicitly frames the tool as 'An exact path lookup, not search' and names the alternative ('use memory_recall for keywords'), giving both when-to-use and when-not. It also names memory_remember(paths=) as the producer of the data being looked up, closing the loop on the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_getAInspect
Full memory records by id: the second step after a summary recall.
Same org binding, memory:read permission, share/scope reach and
unattended-agent trust labelling as memory_recall. Returns
records (full content plus provenance) and missing: every
id that is not a record you can read — unknown, another org's,
soft-deleted or not visible to you — in one list that does not say
which. A superseded record is returned with retired_at and
replacement_id so you can see it is stale. Read-only. Ids of skills,
playbooks and work come from their own tools, not this one.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | memory ids from a memory_recall(detail='summary') scan (at most 25). Semantic and episodic memory rows. |
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 and does so: it discloses the org binding, required ``memory:read`` permission, share/scope reach, trust labelling for unattended agents, read-only nature, and how superseded records surface (``retired_at``/``replacement_id``). It also explains that ``missing`` deliberately merges several failure causes, which prevents the agent misreading the response.
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?
Front-loaded with the core purpose and tightly written, with each sentence adding distinct information. It is dense to the point of being slightly hard to parse on first read (stacked clauses about scope reach and trust labelling), which keeps it out of the top band.
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 single-parameter lookup with an output schema present, this covers everything an agent needs: prerequisites, permissions, id provenance, the shape of ``records``/``missing``, and stale-record handling. Nothing material 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 coverage is 100% and the parameter description already covers the 25-item cap and the source scan, so the baseline is 3. The description goes further by telling the agent which id types are NOT valid inputs here, which is genuine semantic guidance beyond the 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?
States a specific verb and resource ("Full memory records by id") and immediately positions it relative to the sibling it complements ("the second step after a summary recall"). An agent can distinguish this from memory_recall without opening either schema.
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?
Explicitly names the precondition (ids obtained from a memory_recall summary scan) and the exclusions ("Ids of skills, playbooks and work come from their own tools, not this one"). Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_graph_relateAInspect
Record an explicit relationship in the optional org-scoped graph store.
No-op (with a reason) when the graph isn't enabled. Use this when you
learn a structured fact like "alice -> works_on -> teamshared" that
vector recall would obscure. predicate must be a registered link
type (see memory_ontology_list).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| object | No | Alias for object_entity | |
| weight | No | ||
| subject | Yes | Source entity | |
| predicate | Yes | Relationship label, e.g. 'works_on' | |
| object_entity | No | Target entity |
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 burden. It discloses important behavior (no-op with reason when graph isn't enabled; predicate must be registered) but omits other traits like idempotency, permission requirements, and error semantics. An output schema exists, so return values need not be explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no wasted words. Purpose first, then a key behavioral caveat (no-op), then usage guidance and a prerequisite pointer. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 6-parameter write tool with an output schema and no annotations, the description covers purpose, usage, no-op behavior, and the predicate registration requirement. It does not mention the weight parameter or the agent override, but these are documented in the schema. Complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (83%), so baseline is 3. The description adds meaning beyond the schema by clarifying that predicate must be a registered link type and by giving an example triple ('alice -> works_on -> teamshared') that maps the subject/predicate/object roles. It does not cover the weight parameter, but otherwise it enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Record) and resource (explicit relationship in the org-scoped graph store), and distinguishes it from vector recall by saying it is for structured facts that vector recall would obscure. An agent can tell this is the graph-writing tool, not a read or vector tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear when-to-use condition: when you learn a structured fact that vector recall would obscure. Also notes a prerequisite (predicate must be registered, see memory_ontology_list) and a no-op condition when the graph isn't enabled. No explicit when-not-to-use or named alternative write tool, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_kind_meta_setAInspect
Set an object kind's status and primary/title keys. Needs org:admin; audited.
A partial update: description and properties_schema are untouched (unlike memory_ontology_object_kind_set, which replaces them).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Existing object kind name, e.g. Person | |
| agent | No | Override agent identity | |
| status | No | Lifecycle label for the kind; omit to leave unchanged | |
| pk_property | No | Property key that identifies an object of this kind (e.g. email). Omit to leave unchanged; empty string clears it (slug is the identity) | |
| title_property | No | Property key used as the display title. Omit to leave unchanged; empty string clears it (entity name is the title) |
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 behavioral burden. It usefully discloses that the operation requires org:admin and is audited, and it explains the partial-update semantics, though it does not discuss reversibility or side effects beyond what the schema implies.
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, front-loaded with the action and then the partial-update distinction. Every sentence earns its place with no redundant restatement.
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 an ontology mutation tool with a rich input schema and an output schema, the description supplies the key missing context: admin requirement, audit behavior, and partial-update versus replacement semantics. The remaining details are covered by the schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in detail. The description only broadly references status and primary/title keys, adding no parameter-level meaning beyond the 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 verb and resource: set an object kind's status and primary/title keys. It also distinguishes itself from memory_ontology_object_kind_set by explaining that this is a partial update rather than a replacement of description and properties_schema.
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 gives a clear when-to-use condition: use this for a partial update that leaves description and properties_schema untouched. It also names the alternative sibling, memory_ontology_object_kind_set, and explains when that tool's full-replacement behavior applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_kind_statsAInspect
Object-type stats: counts and trends per kind, or one kind's property fill rates.
Property stats are computed over the newest 5000 entities of the kind;
sample_capped is true when the kind has more.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Object kind name, e.g. Person. Omit for every kind's count, status and 30-day created trend; set it for that kind's per-property fill rate and top values |
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 disclosure burden, and it does surface a genuinely non-obvious behavioral trait: property stats are capped at the newest 5000 entities and the `sample_capped` flag signals truncation. That is exactly the kind of caveat an agent needs before treating fill rates as exhaustive. It does not mention permissions, but for a stats read that is a minor omission.
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 short sentences: the primary capability is front-loaded and the sampling caveat follows. No filler, no restatement of the 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?
An output schema exists, so return values need not be explained, and the description covers both modes plus the sampling limitation. The only gap is the absence of any guidance about when to reach for this tool versus its many ontology/entity siblings.
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 100% and the `kind` parameter description already explains omit-for-all-kinds versus set-for-per-property-fill-rates, so the schema does the heavy lifting. The description's 5000-entity sampling note adds relevant context, but it does not add parameter-level detail beyond the schema, so baseline 3 applies.
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 (stats) and resource (object kinds), and distinguishes the two modes: per-kind counts/trends versus a single kind's property fill rates. It does not explicitly differentiate itself from nearby read tools like memory_ontology_list or object_search, so it stops short of a 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 implies two usage modes and the schema spells out omit-vs-set for `kind`, but neither text states when an agent should prefer this over siblings (e.g. memory_ontology_list or memory_entity_view). Usage is inferable rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_link_type_setCInspect
Register or update a custom org link type.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Link predicate name, e.g. depends_on | |
| agent | No | Override agent identity | |
| to_kinds | No | Allowed object kinds (empty = any) | |
| from_kinds | No | Allowed subject kinds (empty = any) | |
| cardinality | No | one_to_many | many_to_many | many_to_many |
| description | No | Human-readable description |
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 behavioral burden and mostly fails to. "Register or update" implies an upsert, but it never states the org scope's effect, what happens to existing links when a type is redefined, permission/auth requirements, or whether changes are 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 front-loaded sentence with zero waste. It is efficient, though its brevity borders on under-specification rather than optimal 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?
An output schema exists so return values need not be explained, but a six-parameter mutation tool with no annotations and only one sentence of description leaves the agent without guidance on scope, conflict behavior, or usage context. More should be said given the tool's complexity.
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 100%, so all six parameters (name, agent, from_kinds, to_kinds, cardinality, description) are already documented in the schema. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
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 gives a specific verb pair ("Register or update") and a precise resource ("custom org link type"), which is distinguishable from sibling kind/object/policy setters. It stops short of naming or contrasting any alternative, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative is given. An agent cannot tell from the description whether this is preferred over memory_graph_relate, memory_ontology_object_kind_set, or memory_ontology_schema_policy_set when defining relationship semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_listBInspect
List org ontology schema: link types, object kinds, interfaces, action types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 supplied, so the description carries the full behavioral burden. The word 'List' implies a read, but the text never explicitly states that the operation is read-only, requires no auth scope, or has no side effects; it also says nothing about caching or freshness of the schema.
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 front-loaded sentence with the resource first and the returned categories enumerated as a compact list. Every word earns its place, with no preamble or 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?
An output schema exists, so return-value details are covered elsewhere, and with zero parameters the call surface is trivial. The description lists what categories the schema contains, which is enough for an agent to invoke it correctly; only the read-only/when-to-use framing 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 tool takes zero parameters with a closed schema (additionalProperties false), so there is nothing to disambiguate and the baseline of 4 applies. No parameter-level meaning needs to be added by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('org ontology schema') and enumerates the four schema components returned (link types, object kinds, interfaces, action types). This separates it from the sibling setters such as memory_ontology_link_type_set and memory_ontology_object_kind_set, though it does not explicitly distinguish itself from read-side siblings like memory_ontology_kind_stats or memory_tools_catalog.
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 on when to call this versus alternatives. The description never mentions that sibling setters (e.g. memory_ontology_link_type_set, memory_ontology_object_kind_set) mutate the very schema this tool reads, nor are prerequisites or typical call contexts described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_merge_entitiesAInspect
Merge drop_slug into keep_slug.
Remaps FKs, merges properties field by field, and leaves drop_slug
as a redirect (alias) to keep_slug so old references still resolve.
Needs org:admin. When the org's entity_proposals policy is review it
opens a merge review instead (proposing needs memory:create) and
returns status=pending_review with a review_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| drop_slug | Yes | Duplicate entity slug to merge away | |
| keep_slug | Yes | Canonical entity slug to keep | |
| property_resolution | No | Per-property winner when both entities set a key: 'keep' (kept entity's value) or 'dropped' (merged-away value). Default keeps the kept entity's values and fills keys only the dropped entity has. |
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 and does so well: it discloses the mutation mechanics (FK remap, field-by-field property merge), that the dropped slug survives as a redirect so old references still resolve, the required org:admin privilege, and the policy-driven alternate outcome returning status=pending_review with a review_id.
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?
Front-loaded with the core action and direction, then mechanics, then preconditions, then the branching outcome. Four dense sentences with no filler; every clause conveys operational information.
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 an unannotated mutation tool the key risks are covered — permission requirement, irreversible-looking but actually aliased outcome, and the review-routing path. An output schema exists so return values need not be enumerated, though error cases and what happens to non-FK links are not addressed.
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 100% and both keep_slug/drop_slug and property_resolution are already documented in the schema. The description reinforces the drop->keep direction and property merging but adds no syntax or edge-case detail beyond the schema, so the baseline 3 applies.
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 (merge) plus resource (entities) and unambiguously fixes direction with ``drop_slug`` into ``keep_slug``. The mechanics sentence (FK remapping, property merge, redirect alias) makes it clearly distinct from siblings like memory_ontology_rekind_entity or memory_graph_relate without needing the schema.
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?
Gives the selection condition for the review branch ('When the org's entity_proposals policy is review it opens a merge review instead') and names the permission needed (org:admin, memory:create). It does not compare against alternative consolidation tools, but the conditional routing is real, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_object_kind_setCInspect
Register or update a custom org object kind.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Object kind name, e.g. Vendor | |
| agent | No | Override agent identity | |
| description | No | Human-readable description | |
| properties_schema | No | JSON schema for entity properties |
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 burden, and it discloses almost nothing: it does not say whether registration is idempotent, what happens to an existing kind's schema or descriptions on update, whether entities already using the kind are affected, or what permissions are required. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the sparseness borders on under-specification rather than disciplined brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and full schema coverage means parameters are documented. What is missing is the behavioral context an unannotated mutation tool requires about update semantics and 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 coverage is 100%, so the baseline of 3 applies; the schema already documents name, agent, description, and properties_schema. The description adds no meaning beyond the schema, neither clarifying 'agent' override semantics nor the format expectations for properties_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?
States a specific verb pair (register/update) and resource (custom org object kind), which is enough to separate it from link_type_set and kind_meta_set. It does not name those siblings explicitly, so the differentiation is inferred rather than stated.
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 indication of when to prefer this over memory_ontology_kind_meta_set, memory_ontology_link_type_set, or memory_ontology_propose_entity, and no prerequisites or exclusions are given. The 'register or update' phrasing implies the operation but not the context for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_propose_entityAInspect
Propose a typed ontology entity (active immediately by default).
If the name's slug already exists, properties are patch-merged and kind/name are kept. A different kind is refused: use memory_ontology_rekind_entity (org admin) to change it. When the org's entity_proposals policy is review, a new entity (or an untyped Thing you classify) is not written: the result is status=pending_review with a review_id for a person to decide.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Alias for kind_name | |
| name | Yes | Display name for the entity | |
| agent | No | Override agent identity | |
| kind_name | No | Registered object kind, e.g. Person or Project | |
| properties | No | Optional JSON properties matching the kind schema |
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 and does so: it discloses default activation, patch-merge semantics on slug collision (kind/name preserved), refusal behavior for conflicting kinds, and the pending_review + review_id outcome under the review policy. Mutability and side-effect consequences are clearly surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then merge semantics, then the review-policy branch. No filler; each clause conveys a distinct behavioral fact.
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 need not be explained, and the description adds the policy-dependent outcomes an agent needs to interpret the call. Nothing essential for correct invocation 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 coverage is 100%, so all five parameters are already documented; the description only adds the notion of slug derivation from name and the retention of kind/name on merge. Baseline 3 is appropriate since the schema does the heavy lifting.
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 ('Propose a typed ontology entity') and immediately scopes it ('active immediately by default'), distinguishing it from siblings such as memory_ontology_rekind_entity, which is named explicitly for the kind-change case.
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?
Explicitly covers when-not: attempting a different kind on an existing slug is refused and the agent must use memory_ontology_rekind_entity (with an org-admin note). It also routes the agent to the review flow when the entity_proposals policy is 'review', giving both the condition and the resulting status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_rekind_entityAInspect
Change the object kind of an existing ontology entity.
Needs org:admin. When the org's entity_proposals policy is review it opens a rekind review instead (proposing needs memory:create) and returns status=pending_review with a review_id.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Alias for kind_name | |
| slug | Yes | Existing entity slug | |
| agent | No | Override agent identity | |
| kind_name | No | Registered object kind to assign, e.g. Person |
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 behavioral burden and does a fair job: it discloses the org:admin permission requirement, the policy-dependent branch, and the concrete return shape (status=pending_review plus review_id). It omits what happens to the prior kind, whether the change is reversible, and idempotency, but the disclosed behaviors are substantive and above baseline.
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 short paragraphs, front-loaded with the core action, followed by only the conditional behavior an agent needs. No filler, no repetition of the name, and the review branch is clearly separated.
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 need not be fully described, and the mention of status=pending_review/review_id adds useful pointer context. Combined with the permission and policy disclosure, this is close to complete for a bounded mutation; only reversibility/conflict semantics are 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 100%, so each parameter (slug, kind, kind_name, agent) is already documented in the schema, with kind explicitly noted as an alias for kind_name. The description adds no parameter-level meaning beyond that, so the baseline 3 is appropriate.
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?
It states a specific verb and resource: 'Change the object kind of an existing ontology entity.' That is unambiguous. However, it never distinguishes itself from closely related siblings like memory_ontology_object_kind_set, memory_ontology_propose_entity, or memory_ontology_merge_entities, so the agent must infer scope from the name alone.
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 real context: it requires org:admin, and under a 'review' entity_proposals policy it defers to a rekind review instead of mutating directly. That implies when the tool will act vs. defer. But there is no explicit 'use this instead of X when Y' guidance against alternatives such as object_kind_set or propose_entity, leaving the caller to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_ontology_schema_policy_setAInspect
Set how distiller/curator link-type proposals land. Needs org:admin.
People only, like org_automation_set: an agent seat (even one acting
for an admin) is refused with human_required, and under
decider=console anything but a console browser session gets
console_required. Audited as org.automation.set. Takes effect within
about 30 seconds. The current value is schema_proposals in
glian_status.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | auto (default): register LLM-proposed link types on first sight. review: open a schema_link_type review and hold edges using the type until a human accepts it |
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 behavioral burden and does so unusually well: it discloses the admin requirement, the exact refusal code for agent seats (human_required), the console_required failure mode under decider=console, the audit label (org.automation.set), and an ~30-second propagation delay. It even points to where the current value is observable (schema_proposals in glian_status).
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?
Front-loads the purpose in the first clause, then layers requirements, failure modes, and timing with no filler sentence. Some internal shorthand ('decider=console', 'land') costs a little readability, but every sentence contributes operational information.
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 policy setter with an output schema present, the description covers purpose, authorization, refusal behavior, audit, and effect latency, and points to glian_status for the current value. It omits any note on reverting or on how in-flight held edges behave after switching modes, which would have made it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single enum parameter documents both auto and review semantics in detail, so the baseline is 3. The description adds no syntax or edge-case meaning for 'mode' beyond what the schema already says, and it slightly undersells 'review' by not mentioning it opens a schema_link_type review and holds edges.
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 opening sentence gives a specific verb and resource ('Set how distiller/curator link-type proposals land'), which is far more than a restatement of the name. It implicitly separates this policy tool from the sibling memory_ontology_link_type_set (which defines types) by scoping it to policy mode, though it never names that sibling. The word 'land' is slightly vague jargon for what is concretely a proposal-handling policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states prerequisites (org:admin) and caller restrictions (agent seats refused), and the enum in the schema carries the auto-vs-review choice, so usage context is implied. It never explicitly says when an agent should reach for this instead of memory_ontology_link_type_set, memory_write_policy_set, or review_policy_set. The 'like org_automation_set' clause is an analogy, not a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_playbook_getBInspect
Alias for memory_procedure_get.
Returns version. Pass it as expected_version on
memory_playbook_set when you edit a shared playbook.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playbook name | |
| version | No | Specific version | |
| expand_skills | No | Inline composed skills |
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. It discloses one meaningful behavioral trait: the tool returns a version that feeds optimistic-concurrency checks on memory_playbook_set. It does not state that this is a read-only fetch, nor any auth/permission requirements or side effects — so the disclosure is partial for an un-annotated 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?
Tight, front-loaded two-sentence structure with no filler; the alias is stated first and the actionable version tip follows. It is appropriately sized, though the brevity comes at the cost of stating the actual 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?
An output schema exists, so return values need not be described, yet the description still usefully flags version. For an un-annotated read tool with three parameters, the definition is adequate but leaves the core operation and any authorization model implicit, and it points to a tool (memory_procedure_get) that is not among the siblings.
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 100%, so name, version, and expand_skills are already documented in the schema. The description adds only the connection between the returned version and expected_version, which is useful but not parameter-level semantics beyond the schema. Baseline 3 is appropriate.
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 the tool as an alias for memory_procedure_get and notes it returns version, but it never states plainly what the tool actually does (retrieve a playbook/procedure by name). An agent unfamiliar with the aliased tool must infer the core purpose; the fetch semantics are implied by the 'get' suffix and the alias reference, not spelled out.
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 gives downstream guidance — pass the returned version as expected_version on memory_playbook_set when editing a shared playbook — which is genuinely useful context. However, it offers no guidance on when to choose this over siblings like memory_playbooks_list, memory_skill_get, or memory_recall, and no conditions for using the version or expand_skills parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_playbook_setCInspect
Alias for memory_procedure_set. Forwards expected_version.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playbook name (stable id) | |
| tags | No | Tags for discovery | |
| agent | No | Override agent identity | |
| owner_id | No | Org member UUID. Omit inherits last owner or the writer. | |
| steps_md | No | Optional intro markdown before composed skills | |
| description | No | One-line summary | |
| tool_recipe | No | Ordered skill list: {"skills": ["lint", "ship-pr"]} | |
| expected_version | No | Latest active version from memory_playbook_get. Omit to append unconditionally, including to recreate a deleted playbook. A mismatch writes nothing and returns status=conflict. current_version null means no active version remains: omit expected_version and write again. | |
| verification_days | No | Verification window: 30, 90, or 180 days; 0 for none. Omit inherits the last window. |
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 disclosure burden. It only notes that it 'forwards expected_version', a concurrency/versioning hint the schema already documents in detail, and says nothing about mutation semantics, ownership inheritance, or consequences of a version conflict.
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 short fragments with no wasted words, so it is not bloated. However, the extreme terseness is under-specification rather than effective conciseness for a tool with nine parameters.
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 9 parameters and an output schema (so return values need not be explained), but the description still omits what a playbook is, how writes behave, and how it relates to the visible memory_playbook_get/list siblings. Referring to a non-sibling tool leaves an agent unable to fully understand the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and expected_version is extensively documented in the schema itself, so the baseline is 3. The description adds no parameter meaning beyond what the schema already states.
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 only asserts that this tool is an alias for 'memory_procedure_set', which is not even present in the sibling list, so the agent cannot resolve what the underlying operation does. It never states the verb+resource (create/update a playbook) in its own terms, making it effectively a restatement of identity rather than a 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?
There is no guidance on when to choose this over memory_playbook_get, memory_playbooks_list, or memory_skill_set, nor any prerequisites or conditions. The alias note implies interchangeability but gives no decision criteria for an agent selecting among the memory_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_playbooks_listDInspect
Alias for memory_procedures_list.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag | |
| limit | No | ||
| offset | No | ||
| include_body | No | Include full steps_md |
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, and the description discloses no behavioral traits (read-only, destructive, permissions, etc.). 'Alias' gives no information beyond implying identical behavior to memory_procedures_list, which is itself unspecified.
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 but not effectively concise—it omits essential information rather than presenting a focused, structured explanation. It is under-specified rather than 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 tool with 4 parameters and an output schema, the description provides almost no context: no functionality, no usage scenarios, no differentiation from siblings. It is far from 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 schema documents only tag and include_body (50% coverage), leaving limit and offset undescribed. The description adds nothing about parameters, failing to compensate for the schema 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 only says 'Alias for memory_procedures_list' without stating what the tool actually does. It implies shared functionality but leaves the agent to look up the aliased tool, so the purpose is not directly clarified.
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 zero guidance on when to use this tool versus the aliased memory_procedures_list or any of the many other memory_* siblings. The description does not mention context, conditions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_profile_getAInspect
Return a token-capped bootstrap profile for this caller.
Compact markdown (soul when the key is account-linked, a few
high-signal durable facts preferring kind=preference, and a
short recent episodic tail). Empty/minimal when the org has
nothing to inject. Also returned on memory_session_ensure as
profile and prepended on agent_run_start when non-empty.
Does not dump full recall or the skills catalog. namespace=
excludes facts/episodes outside that container.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No | When set, profile facts/episodes are limited to this org-allowlisted container (exclude other namespaces). Omit for the shared-org digest. Invalid/unknown slugs fail. |
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 thoroughly explains the output format (compact markdown, soul, preference facts, episodic tail), conditions for empty/minimal results, its appearance in other calls, and its exclusion of full recall/skills. It also discloses namespace filtering behavior. This is exemplary 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 front-loaded with the primary purpose, then delivers compact, high-value details about content, edge cases, and cross-tool behavior. Every sentence contributes, and the prose is dense without being verbose. Structure and length are optimal for an 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?
Given the output schema exists (signal indicates yes), the description need not explain return structures. It covers what the profile contains, when it may be empty, how it relates to other calls, and the parameter's effect. No critical information for correct invocation 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 schema already provides 100% coverage for the single 'namespace' parameter, including its meaning and failure behavior. The description adds a redundant phrase ('namespace= excludes...') but no new information beyond the schema. Per the baseline rule, when schema coverage is high, a 3 is appropriate.
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 ('Return a token-capped bootstrap profile') with a clear resource (the caller's memory profile). It also differentiates itself from siblings by explicitly noting it 'Does not dump full recall or the skills catalog', which distinguishes it from memory_recall and memory_tools_catalog. The purpose is unambiguous and actionable.
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 context on when the tool is used ('Also returned on memory_session_ensure... prepended on agent_run_start'), which implies it's for bootstrapping sessions. It also hints at alternatives by stating what it does not do, but lacks explicit 'use this when' or 'use that instead' guidance. It's clear but not fully prescriptive about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_recallAInspect
Hybrid recall across memory pillars within the caller's org.
Cheap two-step recall: call with detail="summary" first (id,
pillar, title/subject, one-line summary, score, provenance per hit),
then memory_get(ids=[...]) for the full text of the few hits you
will use. detail="full" (default) returns full records at once.
Default scope searches durable pillars only (semantic, episodic,
procedural, skill, strategic, work). Pass scope=["working"] to
include this chat's open session turns. Shared brain on durable
pillars: pass agent="cursor" only to narrow semantic/episodic.
For entity/competitor questions use a short keyword anchor in
query (e.g. "mex") plus repo / github. Use
explain=true; prefer hits with matched_keyword: true.
Default recall is current truth (superseded/merged rows are omitted);
pass include_superseded=true for the replacement chain, or
as_of=<ISO-8601> for transaction-time point-in-time current truth.
When namespace= is set, semantic/episodic hits outside that container
are excluded. Hits include a small provenance citation block
(id, kind, timestamps, optional retired_at, optional title, optional
source) — metadata only, never page HTML. Result includes org +
bound (alias session_bound). bound is the MCP org-session
overlay, not GitHub: false on a normal /mcp session still writes
to the token's org. GitHub connection is github_repo_list (and
the Connected repos line), not this field.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Max records to return | |
| repo | No | Workspace slug of your current repo. When set, durable memories tagged for this repo are boosted (ranked higher); nothing is hidden — cross-repo and un-scoped memories still appear. Pass your workspace slug when recalling for code/repo-specific work. | |
| agent | No | Optional filter — restrict semantic/episodic results to this agent's writes. Default (None) is the shared brain: every agent's durable memories in the org are visible. Working memory is always scoped to the caller regardless. | |
| as_of | No | ISO-8601 timestamp: answer from what was current at that instant (transaction time). created_at <= as_of and not retired before it; soft-deleted rows are never returned. Semantic and episodic memory only (no working buffer, graph expansion, playbooks, skills, strategy or work), read with the same scope and share rules as live recall; relative dates in the query are relative to as_of. Omit for live current truth. A future or unparseable value is a 422 invalid_body on as_of. When set, wins over include_superseded. | |
| query | Yes | Natural-language query | |
| scope | No | Pillars to search. Default (null): durable pillars only (semantic, episodic, procedural, skill, strategic, work) — working is omitted. Add scope=['working'] when you need this chat's open session turns. | |
| detail | No | 'full' (default) returns every hit's full record. 'summary' is the cheap scan mode and the preferred first step: per hit only id, pillar, kind, title/subject, a one-line summary (~160 chars), score, matched_keyword (with explain=true) and provenance. Then call memory_get(ids=[...]) for the few records you will use. Summary mode ignores verbose. | full |
| github | No | GitHub repository as owner/repo. Boosts memories tagged github:<owner>/<repo> (portable across checkout paths). | |
| explain | No | When true, include per-record retrieval attribution in metadata.ranking (base RRF, every factor including bounded feedback trust from memory_feedback votes, relevance floor verdict, diversity penalty; its score equals the hit's score), plus read-only feedback_score when votes exist | |
| filters | No | Optional AND filter. Keys (all optional): kind (fact|preference|event|note|outreach|skill|procedure), pillar (semantic|episodic|procedural|skill|strategic|work), subject (exact, case-insensitive), tags (list; record must include every tag), since / until (ISO datetimes). Example: {"kind": "fact", "subject": "HolderBrief", "tags": ["decision"]}. Nested AND/OR/NOT is not supported — omit a key instead. Empty result retries once without the filter (filter_relaxed=true on the result). Not for named playbook/skill/entity — use get-by-name tools. | |
| verbose | No | When false, truncate record content and omit metadata | |
| namespace | No | Org-allowlisted container. When set, semantic/episodic hits outside this slug are excluded (not merely demoted). Omit to keep shared-org recall. repo=/github= still boost. Unknown slugs fail. Example: github:acme/app or project:alpha. | |
| time_range | No | Optional time bounds for episodic/working hits | |
| deadline_seconds | No | Optional wall-clock budget for this call. Finished pillars are returned with errors_by_pillar timeout codes and degraded=true instead of letting the MCP client kill the whole call. Omit to use the server TEAMSHARED_RECALL_DEADLINE_SECONDS default (unset = no cutoff). | |
| include_superseded | No | When true, also return superseded/merged history. Default is current truth only. |
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 and does most of it: it discloses that default recall returns current truth only (superseded/merged omitted), the as_of point-in-time semantics, that namespace= excludes rather than demotes, that provenance is metadata only and never page HTML, and it preempts a likely misreading of the `bound` field vs GitHub connection. It stops short of stating side-effect/read-only status or auth/rate-limit behavior, which keeps it below a 5.
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?
Front-loaded with purpose and the recommended call pattern in the first two sentences, then layered detail for scoping, temporal modes, and output shape. The final `bound`/GitHub clarification is unusual but earns its place by correcting a field name that would otherwise be misread.
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 15-parameter tool with no annotations and an output schema, the description covers the decision-relevant surface: default scope, temporal modes, exclusion vs boost semantics, and what each hit contains. Remaining gaps (authentication requirements, failure modes beyond deadlines) are partly absorbed by the schema and output schema, so this is strong but not exhaustive.
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 100%, so the baseline is 3, but the description adds cross-parameter meaning the schema does not: the summary→get two-step use of `detail`, the working-scope exception to the default pillar set, agent= as a narrow-only-on-semantic/episodic filter, and the interaction where as_of wins over include_superseded. It does duplicate some schema text (provenance block contents, deadline/timeout behavior), which caps it at 4.
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 and resource ('Hybrid recall across memory pillars within the caller's org') and immediately distinguishes itself from the sibling memory_get by framing recall as the cheap scan step before a get-by-ids fetch. It also carves out a narrower case (entity/competitor questions) with a concrete query strategy, so an agent can place it against memory_get, memory_entity_view, and the get-by-name tools without opening schemas.
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?
Explicitly prescribes a workflow (call with detail="summary" first, then memory_get(ids=[...])), states when to add scope=["working"], when to narrow with agent=, when to use a short keyword anchor plus repo/github, and when to prefer matched_keyword hits under explain=true. The schema-level note on filters even routes named playbook/skill/entity lookups to other tools, giving genuine when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_rememberAInspect
Write a durable memory into the caller's org.
fact / preference / note / outreach -> semantic pillar.
event -> episodic. procedure / skill -> rejected; use
memory_procedure_set / memory_skill_set.
Routed through the guarded ingestion pipeline (PII, injection
screening, near-dupe merge / contradiction supersede) under RLS.
When repo / github are given the memory is tagged
repo:<slug> / github:<owner>/<repo>. namespace= (or the
default from those args) is an org-allowlisted container — recall
with the same slug excludes other namespaces. paths= tags the
repo files the memory is about (memory_for_paths reads them).
Result includes org + bound (alias session_bound).
bound is the MCP org-session overlay, not GitHub: false on a
normal /mcp session still writes to the token's org.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | fact, preference, event, note, or outreach (not procedure/skill) | note |
| repo | No | Workspace slug of the repo this memory belongs to (e.g. the slug used for memory_state). For code/repo-specific work, pass your current workspace slug so the memory is scoped to this repo (stored as a 'repo:<slug>' tag) and ranks higher when recalled from the same repo. Omit for cross-cutting memories. | |
| tags | No | Optional free-form tags | |
| agent | No | Override agent identity (defaults to bearer-token identity) | |
| paths | No | Repo-relative POSIX file paths this memory is about (e.g. ['src/foo.ts']). Each is stored as a 'path:<p>' tag so memory_for_paths finds it. Absolute paths and '..' escapes are rejected; backslashes and './' are normalized. | |
| github | No | GitHub repository as owner/repo (e.g. teamshared-ai/teamshared). Stored as a 'github:<owner>/<repo>' tag for cross-machine association; use with or instead of workspace repo= when the same GitHub repo is checked out at different paths. | |
| content | Yes | Free-form text to remember | |
| subject | No | Optional subject/entity this memory is about | |
| namespace | No | Org-allowlisted container (repo:owner/name, github:owner/repo, or project:name). Tags this write. Omitted: default from github= then repo=. Invalid slugs fail. First write creates the slug on the org allowlist. |
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 present, the description carries the full burden and does so: it discloses the guarded ingestion pipeline (PII, injection screening, near-dupe merge / contradiction supersede), RLS scoping, org-allowlist namespace rules including that the first write creates the slug, and that invalid slugs fail. It also pre-empts a likely misreading of the returned `bound` field (org-session overlay, not GitHub), which is exactly the kind of derivative behavior an agent would otherwise get wrong.
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?
Front-loaded with the write action, then type routing, then pipeline/scoping, then result semantics — a sensible information gradient. It is dense and backtick-heavy, and a few clauses (paths normalization, invalid-slug failure) duplicate the schema, costing a point but not readability.
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 9-parameter write tool with no annotations, the description covers the mutation's side effects, screening/supersede semantics, scoping containers, repo/GitHub tagging, and result interpretation; an output schema exists so return values needn't be spelled out further. Nothing essential to calling it correctly 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 100%, so the baseline is 3 and the schema already documents kind, repo, github, paths, and namespace defaults ('default from github= then repo='). The description largely restates those (repo:/github: tag formats, paths tagging for memory_for_paths) rather than adding new syntax or edge cases, so it earns the baseline but no more.
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?
Opens with a specific verb and resource: "Write a durable memory into the caller's org." It then immediately disambiguates scope by mapping kinds to pillars and naming the tools that own the rejected kinds (memory_procedure_set / memory_skill_set), so an agent can distinguish it from the dozens of sibling memory_* 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?
Explicit when-not guidance is given for procedure/skill with named alternatives, and namespace recall behavior ('recall with the same slug excludes other namespaces') tells the agent how a write affects later retrieval. It does not, however, route against the other write-shaped siblings (memory_session_append, memory_state_set, context_commit), so the alternative coverage is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_session_appendAInspect
Append a turn to a working-memory session (self-healing).
When session_id has expired or was closed, a fresh session is
opened automatically and the turn lands there; the response then
carries the replacement session_id and reopened: true. Pass
repo (and optionally github / topic) so reopen preserves
workspace scope and updates the state pointer without a manual
memory_state_set.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug. When set with an active bearer token, reopen self-healing updates the conversation/active-session pointer. | |
| role | Yes | user, assistant, tool, or system | |
| topic | No | Session topic used when reopening after expiry | |
| github | No | GitHub owner/repo tag used when reopening a session | |
| content | Yes | Turn content | |
| session_id | Yes | Session id from memory_session_open |
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 must disclose behavior. It explicitly describes the self-healing mechanism: if session_id expired/closed, a fresh session opens and the response carries a new session_id and reopened:true. It also explains how repo/github/topic affect scope. This covers the main side effects, though it doesn't mention any potential data loss on the old session or auth/rate limits, which are not critical here.
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, front-loaded with the primary action. The first sentence is the core purpose; the second expands on self-healing and parameter usage. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are already covered. The description explains the self-healing behavior and parameter effects, which is sufficient for an agent to call this tool correctly. It doesn't define 'turn' explicitly, but role and content parameters make it clear. The description is complete for practical use.
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?
All 6 parameters have schema descriptions (100% coverage), so baseline is 3. The description adds meaningful context beyond the schema: it explains that repo 'preserves workspace scope and updates the state pointer', and that topic/github are 'used when reopening after expiry'. This extra context helps the agent understand the parameters' purpose, raising the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Append a turn to a working-memory session'. This clearly states the tool's action and distinguishes it from sibling tools like memory_session_open (which opens a new session) or memory_session_close (which closes one). The 'self-healing' hint further clarifies its niche.
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 explains when to use this tool implicitly by describing the self-healing behavior for expired/closed sessions and how to preserve scope via repo/github/topic. It also mentions avoiding a manual memory_state_set, which hints at an alternative. However, it doesn't explicitly compare with memory_session_open or state when NOT to use this tool, though the core usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_session_closeAInspect
Close a working-memory session.
If distill is true (default), the transcript is queued for the
background worker to summarize into durable org-scoped memories.
| Name | Required | Description | Default |
|---|---|---|---|
| distill | No | Enqueue for distillation into semantic/episodic memory | |
| session_id | Yes | Session id to close |
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 reveals an important side effect: if distill defaults to true, the transcript is queued for a background worker to create durable org-scoped memories. It does not cover session finality, reversibility, or failure behavior, but the key side effect is transparently disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the first states the core action, the second explains the optional distill behavior. It is front-loaded and every clause 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?
For a low-complexity tool with full schema coverage and an output schema, this description is complete. It covers the required input, the optional flag, and the important side effect, so an agent can invoke the tool correctly without needing 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 coverage is 100%, so the baseline is 3. The description adds meaningful detail for the distill parameter, explaining the background worker and durable org-scoped memory outcome beyond the schema's 'semantic/episodic memory' phrasing, and it clarifies the default behavior. session_id is adequately documented by the schema itself.
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 first sentence states a specific action and object: 'Close a working-memory session.' This clearly identifies what the tool does and contrasts with sibling tools like memory_session_open and memory_session_append through the verb 'Close'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus alternatives such as memory_session_open or memory_session_append. The only conditional guidance is about the distill flag, not about choosing this tool, so usage 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.
memory_session_ensureAInspect
One-call session bootstrap: recover the active session or open one.
Replaces the memory_state_get → memory_session_close →
memory_session_open → memory_state_set ritual. Reuses the session in
the conversation/active-session state pointer when it is still
open and owned by the caller; otherwise closes it (distilling) and
opens a fresh one, updating state. Returns {session_id, agent, resumed, soul, soul_linked, profile}. When the bearer is linked to a
human account, soul is their private compressed identity block for
this org (may be empty string if not yet written). profile is the
same token-capped bootstrap object as memory_profile_get. When
playbook_slug or a work_id with a bound slug resolves, also
returns playbook {name, description, body_md, slug}
(its cited skills listed by name and when to load them with
memory_skill_get, not their bodies; capped) on both fresh and
resume paths. Also
org + bound (alias session_bound) + bound_scope.
bound is the MCP org-session overlay, not GitHub: false on a
normal /mcp session still writes to the token's org. On unbound
/mcp, a user account with several orgs may include warnings
suggesting org_bind(slug=...) (CLI teamshared org bind is
optional).
Optional auto_recall=true attaches budgeted recall hits (same
provenance citation shape as memory_recall) when
user= and/or topic= is set (thin-client bootstrap). Prefer
an explicit memory_recall for keyword anchors.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Session TTL in seconds (default from server config) | |
| repo | Yes | Workspace slug (absolute path with leading / removed and / replaced by -). Keys the conversation/active-session state pointer. | |
| user | No | Substantive user request for this turn. When set, appended as the user turn in the same call (replaces a separate memory_session_append). | |
| agent | No | Override agent identity | |
| fresh | No | Force rotation: close any stored session (queueing distillation) and open a new one. Pass true on the first turn of a new chat. | |
| topic | No | What this session is about (used when opening a new one) | |
| github | No | GitHub owner/repo; distilled memories inherit the tag | |
| work_id | No | Work item UUID. When set and playbook_slug is omitted, that item's playbook_slug is injected on the ensure payload. | |
| namespace | No | Limit the attached profile facts/episodes to this org-allowlisted container. Omit for shared-org profile. Invalid/unknown slugs fail. | |
| auto_recall | No | Opt-in thin-client bootstrap: when true and user= and/or topic= is set, run a budgeted memory_recall (k=5, explain=false, short deadline) over that text and attach hits as auto_recall. Missing both skips without error. Default false — existing callers are unchanged. Prefer an explicit memory_recall with a short keyword anchor; this is not a replacement. | |
| playbook_slug | No | Named playbook to attach (wins over the work item's slug). Unset/missing/cross-org omits playbook — never dumps the catalog. |
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 whole burden and does: it discloses the destructive side effect ('otherwise closes it (distilling)'), the ownership condition ('still open and owned by the caller'), the state-pointer mutation, and the org-binding subtlety ('``bound`` is the MCP org-session overlay, not GitHub: false on a normal ``/mcp`` session still writes to the token's org'), plus the warnings/org_bind path. This is exactly the behavior an agent cannot infer from the schema.
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?
Purpose is correctly front-loaded, but the body drifts into dense fragments ('Also ``org`` + ``bound`` (alias ``session_bound``) + ``bound_scope``') and spends several sentences on return-value detail for a tool that has an output schema. The org-binding aside is important but buried mid-paragraph.
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 an 11-parameter, side-effecting bootstrap tool with no annotations and a rich payload, the description covers side effects, ownership, return shape and alternatives. It still omits failure behavior (unknown namespace/repo, TTL expiry) and the cost of triggering distillation, which leaves a small completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the baseline is 3. The description restates the semantics of auto_recall and playbook_slug/work_id in prose, but that content is duplicated in the schema rather than adding non-obvious meaning (no constraints on ttl, namespace failure modes, or repo key format beyond what the schema says).
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 and resource ('One-call session bootstrap: recover the active session or open one') and explicitly frames itself against the four siblings it replaces (memory_state_get → memory_session_close → memory_session_open → memory_state_set). An agent can distinguish this from memory_session_get/open without opening a schema.
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?
Gives a clear context ('recover the active session or open one') and names the ritual it supersedes, plus a targeted exclusion: 'Prefer an explicit memory_recall for keyword anchors' when auto_recall is tempting. It does not cover the remaining neighbors (memory_session_get, memory_session_append) or when not to bootstrap at all, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_session_getAInspect
Read session metadata and turns (debug, handoff, append failure recovery).
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session id from memory_session_open |
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; the verb 'Read' does signal a non-mutating, safe operation, and the presence of an output schema covers return format. However it discloses nothing about auth requirements, pagination, or limits for the 'turns' payload, leaving gaps that annotations would normally fill.
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 compact sentence with the core action front-loaded and supporting scenarios trailing. It is appropriately sized, though the terse parenthetical reads more like keyword tags than polished prose.
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 single-parameter read tool with an output schema covering return values, the description is nearly complete. Its only shortfall is the thin behavioral/usage context that would matter if annotations were absent and the payload were complex.
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 100% and the single parameter (session_id) is documented in the schema as coming from memory_session_open. The description adds no further meaning beyond what the schema already provides, so baseline 3 applies.
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 (Read) and resource (session metadata and turns), which is clear and distinct from siblings in the memory_session_* family (open/append/close/ensure). It does not explicitly name a sibling to disambiguate against, so it stops short of a 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 parenthetical names three concrete use cases (debug, handoff, append failure recovery), giving an agent real context for when to reach for this tool. It offers no exclusions or explicit alternatives, so it stays at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_session_openCInspect
Open a working-memory session and return a session_id.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Session TTL in seconds (default from server config) | |
| repo | No | Workspace slug of the repo this session is about. Memories distilled from the session inherit a 'repo:<slug>' tag so they stay scoped to this workspace. | |
| agent | No | Override agent identity | |
| topic | No | What this session is about (free text) | |
| github | No | GitHub repository as owner/repo. Distilled memories inherit a 'github:<owner>/<repo>' tag. |
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 only says a session is opened and an ID is returned, without explaining session lifecycle, TTL effects, whether opening is destructive or idempotent, or what happens to prior sessions.
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 concise and readable, though it is so sparse that it sacrifices useful contextual 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?
The action is simple, the output schema exists, and there are no required parameters, so the description covers the core call. However, it lacks lifecycle context, such as how the returned session relates to other memory_session_* operations and whether the session needs to be closed or can be reused.
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 100%, and each parameter already has a clear meaning in the input schema, including TTL, repo tagging, GitHub tagging, agent override, and topic. The description adds no parameter-level detail, but because the schema is fully self-documenting, the baseline of 3 applies.
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 ("Open"), a clear resource ("working-memory session"), and the return value ("session_id"). It is understandable on its own, but it does not explicitly differentiate from sibling tools like memory_session_ensure or memory_session_append.
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 on when to call this tool versus alternatives such as memory_session_ensure, memory_session_append, or memory_session_close. There are no conditions, prerequisites, or exclusions provided, so the agent must infer the appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_skill_feedbackAInspect
Propose a skill/playbook rewrite from a human-approved draft vs kept.
Stores the pair as a pending rewrite. The live skill does not change. A human accepts or rejects the proposed diff in the console; accept writes vN+1 through the existing setter. Never auto-overwrites.
| Name | Required | Description | Default |
|---|---|---|---|
| kept | No | Human-kept / live body snapshot. Default: current live body | |
| kind | No | skill (atomic how-to) or playbook (composed flow) | skill |
| name | Yes | Skill or playbook name that ran | |
| note | No | Why this rewrite, or the human-approved result summary | |
| agent | No | Override agent identity | |
| draft | Yes | Proposed new body_md (skill) or steps_md (playbook) | |
| extra | No | Proposed extras: tool_hints/tags (skill) or tool_recipe/tags (playbook) | |
| origin | Yes | Who proposed the rewrite: agent, human, or curator | |
| description | No | Proposed one-line summary |
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 burden. It discloses the key traits: the operation is non-destructive, the diff is pending human approval, acceptance writes vN+1 through the existing setter, and it never auto-overwrites. This is strong coverage of the tool's most important behavioral risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the purpose appears in the first sentence, followed by the lifecycle and safety guarantees. Every sentence adds necessary information with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no annotations and an output schema, the description covers the essential workflow: pending rewrite, human approval, version bump, and no auto-overwrite. The schema covers parameter details and the output schema covers return values. A minor gap is that it never explicitly routes the agent to the direct setter tools for cases where a pending rewrite is not desired.
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 100%, so the schema already documents all 9 parameters. The description adds useful framing around the draft-vs-kept relationship and the human-approval flow, but it does not add per-parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Propose a skill/playbook rewrite'. It further clarifies the exact scope by stating the pair is stored as a pending rewrite and that the live skill does not change, which clearly distinguishes it from direct setters like memory_skill_set.
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 makes the usage context clear: it is for human-approved drafts that need human acceptance/rejection, and it explicitly says the live skill does not change. However, it does not name sibling tools like memory_skill_set or memory_playbook_set as the direct-write alternatives, so the when-not-to-use guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_skill_getAInspect
Fetch a stored skill by name (and optionally version).
Returns version. Pass it as expected_version on
memory_skill_set when you edit a shared skill.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Skill name | |
| version | No | Specific version (default: latest active) |
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. It usefully discloses optimistic-concurrency semantics by tying the returned 'version' to 'expected_version' on the set tool. But it says nothing about failure behavior (missing skill/version mismatch), permissions, or which version is default beyond what the schema states.
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?
Front-loads the purpose in the first sentence, then adds two short, relevant clauses about the return value and its downstream use. Compact and free of filler, though the version-to-expected_version note reads slightly fragmented.
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 needn't be enumerated, and the description still highlights the one semantically important field. For a simple two-parameter read tool this is largely complete, missing only error/edge-case behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented (default: latest active). The description only restates 'by name (and optionally version)' without adding syntax or constraints beyond the schema, matching the baseline for full 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?
States a specific verb+resource ('Fetch a stored skill by name') with scope qualifiers ('optionally version'), so an agent can tell it retrieves a single skill. It does not explicitly differentiate from close siblings like memory_skill_resolve or memory_skills_list, which is the only real gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete workflow link ('Pass it as expected_version on memory_skill_set when you edit a shared skill'), which implies the read-before-write pattern. However, it never states when to choose this over memory_skill_resolve or memory_skills_list, so usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_skill_resolveAInspect
Resolve a playbook's tool_recipe.skills refs to full skill records.
| Name | Required | Description | Default |
|---|---|---|---|
| playbook_name | Yes | Playbook whose skills to resolve | |
| playbook_version | No | Pin playbook version (default latest) |
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 action (resolving refs) without mentioning read-only status, side effects, required permissions, or error behavior. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence that conveys the purpose directly. The core action is front-loaded with no wasted words, making it easy to parse and understand.
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 a simple 2-parameter tool and an output schema present, the description plus schema coverage provide enough information to call the tool correctly. It does not need to explain return values due to the output schema. The main gap is behavioral transparency, which is addressed separately, but for execution context it is adequate.
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 100%, so both playbook_name and playbook_version are already well documented. The description adds no extra parameter semantics beyond the schema, which is acceptable given the high coverage. It merely references the playbook's internal field but not the parameters themselves.
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 'resolve' and a specific resource: a playbook's 'tool_recipe.skills' refs, converting them to 'full skill records'. This clearly distinguishes it from sibling tools like memory_skill_get (which fetches a single skill) and memory_playbook_get (which retrieves the playbook 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 gives clear context that the tool resolves skill references from a playbook, but it does not explicitly state when to use it over alternatives or provide exclusions. An agent could infer the use case, but there is no explicit routing guidance compared to tools that name siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_skill_setAInspect
Insert a new version of a skill. Each call creates a new version.
Skills are atomic instruction building blocks. Playbooks compose them via
tool_recipe.skills on memory_procedure_set. Routed through the
guarded ingestion pipeline; only active skills are visible to recall
and memory_skill_get. Read version first and pass
expected_version when editing a shared skill. After
memory_forget_skill, omit expected_version to recreate it: a
conflict with current_version null means nothing active remains.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Skill name (stable id) | |
| tags | No | Tags for discovery | |
| agent | No | Override agent identity | |
| body_md | Yes | Markdown body the agent will read | |
| owner_id | No | Org member UUID. Omit inherits last owner or the writer. | |
| tool_hints | No | Optional structured hints (preferred MCP tools, params) | |
| description | No | One-line summary | |
| expected_version | No | Latest active version from memory_skill_get. Omit to append unconditionally, including to recreate a deleted skill. A mismatch writes nothing and returns status=conflict with current_version, current_body (body_md), updated_by, and updated_at. current_version null means no active version remains: omit expected_version and write again instead of retrying. | |
| verification_days | No | Verification window: 30, 90, or 180 days; 0 for none. Omit inherits the last window. |
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 and does disclose meaningful behavior: writes are routed through a guarded ingestion pipeline, only `active` skills are visible to recall and memory_skill_get, every call appends a new version, and a version mismatch writes nothing. It stops short on permissions/ownership requirements and, critically, never says whether a newly written skill becomes active and recallable immediately.
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 purpose and the versioning constraint are front-loaded, and the sentence about the conflict-with-null case is actionable rather than filler. It is slightly redundant, restating expected_version conflict behavior that the schema property already documents in detail, and the parenthetical tool names make it denser than necessary.
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 need not be explained, and the description still covers versioning, visibility gating, and the delete/recreate flow. The remaining gap is the activation lifecycle: an agent cannot tell from the description whether a freshly written version is immediately recallable or requires a separate step.
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 100% and the field-level docs (notably expected_version and its conflict payload) are already extremely detailed, so the schema does the heavy lifting. The description reinforces the expected_version workflow but adds little semantics beyond it and says nothing about tags, agent override, tool_hints, or verification_days beyond what the schema states.
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 opening sentence states a specific verb and resource with scope: 'Insert a new version of a skill. Each call creates a new version.' It then positions the tool within its family by naming memory_skill_get, memory_forget_skill, and the playbook composition path (tool_recipe.skills on memory_procedure_set), so an agent can distinguish it from memory_skill_resolve or memory_playbook_set without opening schemas.
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 gives explicit conditional guidance: read `version` first and pass `expected_version` when editing a shared skill, and omit it after memory_forget_skill to recreate a deleted skill. That covers the main when-to-use paths, but it never states when to prefer this over adjacent tools such as memory_remember or memory_playbook_set, so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_skills_listAInspect
List all skills (latest version of each) in the caller's org.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag | |
| limit | No | ||
| offset | No | Pagination offset | |
| include_body | No | Include full body_md and tool_hints |
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 disclosure burden. It does add meaningful behavior—only the latest version of each skill is returned, and results are scoped to the caller's org. However, it omits defaults such as include_body=false and limit=50, does not state that it is read-only, and says nothing about response ordering or pagination 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?
One sentence, front-loaded with the action, no filler. It earns its place, though it sacrifices some behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema and mostly documented parameters, the description is largely sufficient. It lacks explicit guidance on when to choose this over sibling skill tools, but the org/version scoping plus schema defaults give an agent enough to make a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the schema already documents tag, offset, and include_body; limit has min/max/default. The description contributes no parameter-level meaning beyond the schema and does not clarify how tag filtering interacts with 'all skills'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the verb 'List' and identifies the resource ('all skills'), adds the version qualifier ('latest version of each') and scope ('caller's org'). This is specific enough to distinguish from sibling tools like memory_skill_get or memory_skill_set.
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 for enumerating skills in the org, but it never states when to prefer it over memory_skill_get, memory_skill_resolve, or memory_skill_set, nor does it mention any exclusions or alternatives. An agent must infer the use case from the name and the generic list behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_soul_getAInspect
Return this person's private soul for the current org.
The soul is a tiny compressed identity block (who they are, style,
likes/dislikes, dos/don'ts). Empty when none yet or the API key is not
linked to a human account (mint keys from the console while signed in).
Also returned on memory_session_ensure as soul.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 explaining behavior, and it does so well: it defines the soul, states that it is empty when absent or when the API key is not linked to a human account, and notes the alternative return channel via memory_session_ensure. It does not explicitly declare side-effect freedom, but 'Return' plus the empty-state behavior strongly imply a read-only 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 compact and information-dense: a clear one-sentence summary, a useful definition of the output, and two important caveats. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with an output schema, this description is complete: it names the resource, scope, empty-case behavior, authentication caveat, and a related alternative tool. Nothing needed to invoke or interpret the tool 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 tool has zero parameters, so there is nothing to document. The description instead explains the returned resource clearly, which is the relevant semantic information for this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Return this person's private soul for the current org.' It then explains what a soul is, distinguishing this getter from the many memory_* siblings and clarifying the 'get' semantics.
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 conveys when the tool is appropriate by defining the target resource and scope ('private soul for the current org'). It also names memory_session_ensure as an alternate source of the same data, though it does not fully spell out when one should be preferred over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_soul_setAInspect
Replace this person's private soul for the current org.
Prefer compact structured markdown. Preferences written via
memory_remember(kind=preference) also absorb into the soul.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| body_md | Yes | Compressed soul markdown (identity, role, style, likes, dislikes, dos/don'ts, patterns). Keep short; server caps length. |
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. It does disclose the key behavior ('Replace' implies an overwriting mutation, 'private' implies sensitivity, 'for the current org' scopes it). However, it does not mention reversibility, permissions, side effects beyond the soul, or what happens to existing content not included in the new body.
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, front-loaded with the core purpose. The preference-absorption note is useful. Minor redundancy exists: 'Prefer compact structured markdown' largely repeats the schema's 'Compressed soul markdown... Keep short'.
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 100% schema coverage and an existing output schema, the description is largely complete. It explains the action, scope, and an interaction with memory_remember. Gaps are minor: no explicit routing to sibling tools and no disclosure of side-effect details like whether the previous soul is lost irreversibly.
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 100%, so the baseline is 3. The description adds only a stylistic preference for compact structured markdown, which overlaps with the schema's 'Keep short' guidance. It does not meaningfully add parameter meaning beyond the 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?
States a specific verb ('Replace'), resource ('this person's private soul'), and scope ('for the current org'). This clearly distinguishes it from sibling memory_soul_get and other memory setter tools without requiring schema inspection.
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 note about memory_remember(kind=preference) absorbing into the soul gives indirect context about an alternative mechanism, but there is no explicit when-to-use vs. alternatives such as memory_soul_get, nor any exclusions. Usage 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.
memory_state_getAInspect
Fetch JSON state scoped to the caller's org, bearer token, and repo.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Opaque state key, e.g. continual-learning/index | |
| repo | Yes | Workspace slug (absolute path with leading / removed and / replaced by -) |
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. It does usefully disclose the auth/scoping model (caller's org, bearer token, repo) which an agent needs, but it is silent on behavior when the key is absent (empty result vs. error) and on whether the call mutates anything.
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 sentence, front-loaded with the verb and never wasteful. Minor deduction for the escaped-backtick artifacts around ``repo`` that read as markup leakage rather than deliberate emphasis.
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 two-parameter getter with 100% schema coverage and an output schema that carries the return shape, the description covers the essential scoping and auth context. It falls short only on the missing-key/error path and on stating explicitly that the operation is read-only, which no annotation supplies.
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 100%, so both required parameters (key, repo) are already documented with examples and format rules. The description echoes ``repo`` but adds no syntax or meaning beyond the schema, so the baseline 3 applies.
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?
Specific verb ("Fetch") plus resource ("JSON state") and an explicit scope qualifier (org, bearer token, repo). An agent can tell it apart from memory_state_set (its write counterpart) and from generic memory_get, though the description never names a sibling explicitly.
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 by the name and the read-oriented verb: retrieve state previously written by memory_state_set. There is no explicit when-to-use, when-not-to-use, or named alternative guidance, so the agent must infer the read/write pairing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_state_setBInspect
Persist JSON state scoped to the caller's org, bearer token, and repo.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Opaque state key | |
| repo | Yes | Workspace slug | |
| value | Yes | JSON object to store |
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. It discloses the scoping model (org + bearer token + repo), which is useful, but omits mutation semantics: whether an existing key is overwritten, whether writes are idempotent, and any size or rate constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scoping constraint front-loaded and no filler. It is appropriately sized, though it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and parameters are fully covered by the schema. However, for a write tool with no annotations, the silent overwrite/idempotency behavior of persisting a key leaves a real 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 100% and all three parameters are documented, so the baseline is 3. The description only restates 'repo' scoping and adds no syntax, size, or key-naming detail beyond the 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?
States a specific verb ('Persist') and resource ('JSON state') plus the scoping dimensions (org, bearer token, repo). This clearly distinguishes it from the read-side sibling memory_state_get, though it doesn't name that sibling explicitly.
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 by the verb and scope: store per-repo JSON state. There is no explicit statement of when to prefer this over alternatives like memory_remember, memory_state_get, or memory_playbook_set, so the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_statusAInspect
Seat-scoped memory diagnostic (bind, session, capture, queues).
Read-only. Returns org + bound (alias session_bound),
active session id / resumed / age, profile present / age (no soul
body), last capture / last close timestamps if known, a recent recall
latency sample or null, and a redacted reason: ok |
unbound_multi_org | auth | capture | retrieval |
queue_degraded | unknown. bound is the MCP org-session
overlay, not GitHub: false on a normal /mcp session still writes
to the token's org.
Queue degraded uses the same cheap probe as health. Never returns
tokens or keys. Complements service-level health; does not mutate
memory.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional workspace slug. When set with a bound agent, peeks the conversation/active-session pointer for this repo. Omit to use the caller's most recent open session. |
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 well: it declares read-only behavior, says it never returns tokens or keys, explains redaction of `reason`, clarifies the `bound` overlay is not GitHub binding, and notes queue degradation uses the same cheap probe as `health`.
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 purpose is front-loaded and the description is dense with relevant operational detail. It is longer than strictly necessary because it enumerates return fields despite an output schema existing, but the information is structured and mostly 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?
Given an existing output schema and one optional parameter, the description is more than complete: it covers safety, return semantics, failure reasons, session binding nuances, and how it relates to `health`.
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 sole `repo` parameter has 100% schema description coverage, including its optionality and bound-agent behavior. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.
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 diagnostic purpose: seat-scoped memory status covering bind, session, capture, and queues. It distinguishes itself from the sibling `health` tool as service-level versus seat-scoped and explicitly says it does not mutate memory.
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 clear context by saying it complements service-level `health` and is read-only/non-mutating. However, it does not give an explicit 'use this when...' rule or name when to prefer `health` over `memory_status` in concrete terms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_entity_getCInspect
Fetch one strategic entity by type and id.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Entity UUID | |
| entity_type | Yes | objective, key_result, initiative, plan, or statement |
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 supplied, so the description carries the full disclosure burden. 'Fetch' implies a read, but it does not state read-only semantics, behavior when the id is not found, or any permission requirement, leaving the behavioral profile essentially undocumented.
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 short sentence with the key constraint ('one', 'by type and id') front-loaded and no wasted words. It is efficient, though its brevity is part of why the routing and behavioral gaps above exist.
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 need no explanation, and both parameters are fully documented in the schema. What is missing is the disambiguation between this generic entity getter and its typed siblings, which matters given the crowded catalog.
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 100%, with entity_type fully enumerated and entity_id documented as a UUID, so the schema does the heavy lifting. The description's 'by type and id' only restates that contract without adding format or constraint detail, making the baseline 3 appropriate.
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 and resource (fetch one strategic entity) plus the lookup keys (type and id), which is clearer than a bare name restatement. However, it does not differentiate itself from the type-specific siblings memory_strategic_statement_get and memory_strategic_plan_get, which cover overlapping ground.
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 when-to-use guidance is given. With near-duplicate siblings such as memory_strategic_statement_get, memory_strategic_plan_get, memory_entity_view, and memory_get in the catalog, the agent has no stated basis for choosing this generic getter over a typed one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_initiative_setCInspect
Propose a strategic initiative.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | Initiative title | |
| plan_id | Yes | Parent plan UUID | |
| objective_id | No | Aligned objective UUID | |
| key_result_id | No | Aligned key result UUID | |
| description_md | No | Optional description |
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 burden and largely fails it. It does not disclose that this is a mutation, whether it creates or upserts, whether an initiative enters a pending/approval state ('propose' hints at this but never says so), idempotency, or 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 front-loaded sentence with zero padding, so nothing is wasted. But it is under-specified rather than well-sized: the brevity comes at the cost of any actionable detail, not from crisp editing.
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 six-parameter mutation tool with no annotations and several near-identical siblings, an output schema absolution only covers return values. The description still omits lifecycle semantics, required-field intent, and sibling routing, leaving the agent materially under-informed.
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 100%, so all six parameters (plan_id, title, objective_id, key_result_id, description_md, agent) are already documented in the schema. The description adds no format, constraint, or relationship detail beyond what the schema provides, so the baseline 3 applies.
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 verb ('Propose') and a resource ('strategic initiative'), so the general action is identifiable. However, it never distinguishes this tool from close siblings like memory_strategic_initiative_update or memory_strategic_objective_set, and 'Propose' vs the name's 'set' leaves the create-vs-upsert semantics ambiguous.
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 when-to-use guidance, no prerequisites, and no mention of when to prefer this over memory_strategic_initiative_update (edit an existing initiative) or memory_strategic_plan_set. The agent must infer the routing entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_initiative_updateBInspect
Re-align an initiative to an objective / key result, or rename it. Audited.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | No | New title | |
| objective_id | No | Align to this objective UUID (same plan); empty string unaligns | |
| initiative_id | Yes | Initiative UUID | |
| key_result_id | No | Align to this key result UUID (implies its objective) |
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 at all, the description carries the full burden, and it does disclose one real behavioral trait: the operation is audited. It does not say whether re-aligning removes the initiative from its previous objective, what permissions are required, or whether the title overwrite is reversible, leaving meaningful mutation risk undocumented.
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 short sentences, zero padding, with the primary operation front-loaded and the audit note kept to a terse trailing fragment. Nothing is repeated from the schema or title.
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 need not be explained, and the 100%-covered schema handles parameter detail. But for a mutation tool with no annotations, the description omits the side-effect profile (does it unlink from the old objective? does an empty title clear it?), which is the one thing an agent cannot get from structured fields.
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 100% and the schema already documents the subtle cases (objective_id empty string unaligns, key_result_id implies its objective). The description only restates the align/rename intent at a high level, adding essentially nothing the schema does not already say, so baseline 3 applies.
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 set (re-align / rename) against a specific resource (initiative), so an agent knows exactly what mutation it performs. It stops short of explicitly distinguishing itself from siblings like memory_strategic_initiative_set, but the update semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states what the tool does but never states when to choose it over memory_strategic_initiative_set or memory_strategic_key_result_update. No prerequisites, no exclusions, no alternatives are named, so the agent must infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_key_result_setCInspect
Propose a key result under an objective.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | Key result title | |
| metric_unit | No | Unit, e.g. % | |
| objective_id | Yes | Parent objective UUID | |
| track_status | No | on_track, at_risk, off_track, or done | on_track |
| metric_target | No | Target value | |
| description_md | No | Optional description | |
| metric_current | No | Current value |
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 burden. It does not disclose whether this requires an existing objective, whether it creates or merely proposes for approval, what permissions are needed, or what happens on duplicate titles. 'Propose' hints at a non-final action but leaves the actual behavior unspecified.
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, front-loaded sentence with no wasted words. It is appropriately brief for a set operation, though its brevity contributes to the lack of behavioral and usage context elsewhere.
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 eight parameters, no annotations, and an output schema. The description does not compensate for the missing annotations by explaining behavioral traits such as approval flow, permissions, or side effects. While the schema documents parameters and the output schema covers returns, the definition is incomplete for a mutation tool with no annotation coverage.
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 100%, so the schema already documents all eight parameters. The description adds only the parent-child relationship ('under an objective') and no additional parameter semantics beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
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 (Propose) and resource (key result) with the parent scope (under an objective). It is distinguishable from most siblings by name and description, but it does not explicitly contrast with memory_strategic_key_result_update, which handles existing key results.
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 when-to-use guidance, no prerequisites, and no explicit alternatives. An agent must infer that this is for creating a new key result rather than updating an existing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_key_result_updateBInspect
Update a key result's value, target, track status or title. Audited.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | No | New title | |
| metric_unit | No | Unit, e.g. % | |
| track_status | No | on_track, at_risk, off_track, or done | |
| key_result_id | Yes | Key result UUID | |
| metric_target | No | New target value | |
| description_md | No | New description | |
| metric_current | No | New current value (progress) |
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 burden. It does disclose one genuinely useful trait not found in structured fields — that the operation is 'Audited' — but omits partial-update semantics (all fields optional), whether omitted fields are preserved, and permission requirements for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with zero filler. The 'Audited' clause earns its place as the only behavioral disclosure.
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 need no explanation, and the schema is fully documented. However, for an unattested mutation tool with eight parameters, the description should disclose partial-update behavior and permission/audit consequences, which it only partially does.
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 100%, so the schema already documents all eight parameters, including the enum-like track_status values. The description names four of the mutable fields but adds no syntax, format, or behavioral detail (e.g. how metric_current relates to metric_target) beyond what the schema provides.
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?
Specific verb ('Update') plus resource ('key result') and an enumeration of the mutable fields. An agent knows what it does, but the description never contrasts it with the closely-named sibling memory_strategic_key_result_set, leaving the create-vs-update distinction to be inferred.
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 prerequisites, and no mention of the obvious alternative (memory_strategic_key_result_set). Usage is only implied by the verb 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_objective_setBInspect
Propose an objective under a plan.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | Objective title | |
| plan_id | Yes | Parent plan UUID | |
| owner_id | No | Owner UUID | |
| owner_type | No | user or agent | |
| sort_order | No | Display order | |
| description_md | No | Optional description |
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 burden. It does not disclose whether 'Propose' creates a pending/approval-gated objective or an active one, what permissions are needed, whether it can overwrite existing objectives, or what the side effects are.
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?
It is a single, front-loaded sentence with no wasted words. It is arguably too terse to fully orient the agent, but structurally it is clean 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?
An output schema exists so return values need not be described. But for a mutation tool with zero annotations, the definition omits key context: the 'Propose' workflow, prerequisites, and how it relates to sibling objective tools. This leaves real gaps an agent must guess at.
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 100%, so the schema already documents all 7 parameters (plan_id, title, owner_id, owner_type, sort_order, description_md, agent). The description adds no additional parameter meaning, so the baseline 3 is appropriate.
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 ('Propose'), resource ('objective'), and scope ('under a plan'), so an agent can grasp the basic action. However, it does not differentiate this tool from close siblings like memory_strategic_objective_update or memory_strategic_plan_set, and the mismatch between 'set' (name) and 'Propose' leaves the exact semantics unclear.
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 'under a plan' implies the precondition (a plan must exist) and the context in which to use it. There is no explicit statement of when to use this versus objective_update, nor any when-not guidance or note about approval/gating.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_objective_status_listBInspect
List an objective's status updates, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| objective_id | Yes | Objective UUID |
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, and it does contribute one genuine behavioral fact not in the schema: results are returned newest-first. However, it never states that this is a safe read-only operation, says nothing about pagination behavior beyond the ordering, and gives no auth or scope notes.
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 short sentence with no filler, and the ordering constraint is front-loaded where an agent will see it immediately.
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 two-parameter list tool with an output schema (which handles return-value explanation), the description covers purpose and ordering adequately. The gaps are the undocumented limit parameter and lack of read-only/auth framing, which are minor given the tool's simplicity.
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 only 50%: objective_id is documented as an 'Objective UUID' but limit has no description at all. The description implies which objective is queried ('an objective's status updates') but says nothing about limit, the default of 20, or the 1-100 range, so it does not compensate for the coverage 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?
States a specific verb ('List') and resource ('an objective's status updates') plus an ordering guarantee ('newest first'), which clearly separates it from the mutating sibling memory_strategic_objective_status_post. It does not name that sibling explicitly, so sibling differentiation is implicit rather than stated.
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, when-not-to-use, or alternative-tool guidance. The agent must infer from the name alone that this is the read side of the status-update pair; no prerequisites or scoping conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_objective_status_postBInspect
Post a status update on an objective; the newest sets its health.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| state | Yes | on_track, at_risk, or off_track | |
| body_md | No | Markdown update body | |
| objective_id | Yes | Objective UUID |
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. It does disclose a meaningful behavioral trait — that the newest post wins and determines objective health — but says nothing about whether prior updates are retained, permission/auth requirements, or what the response contains. Useful but incomplete disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the core action front-loaded and the most important behavioral fact (newest wins) trailing. No wasted words, though the extreme brevity leaves coverage gaps rather than excess.
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 need not be explained, and all four parameters are schema-documented. The description still omits usage routing against the many memory_strategic_* siblings, leaving it only minimally complete for a mutation tool with no annotations.
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 100%, so objective_id, state, body_md, and agent are all documented in the schema itself. The description adds no parameter-level detail (e.g., that state drives health or what body_md contributes), so the baseline of 3 applies.
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 (post) and resource (status update on an objective), and the second clause explains the effect on objective health. It is distinguishable from memory_strategic_objective_status_list and memory_strategic_objective_update by the act of posting a new status, though it never names those siblings explicitly.
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 only implied: an agent can infer it should call this to record a new health status. There is no explicit when-to-use, when-not-to-use, or statement of how this differs from memory_strategic_objective_update or the *_status_list sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_objective_updateAInspect
Edit, close or reopen an objective (owner, target date, title). Audited.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | No | New title | |
| status | No | closed closes the objective; active reopens it | |
| owner_email | No | Owner (org member email); empty string clears | |
| target_date | No | Target date YYYY-MM-DD; empty string clears | |
| objective_id | Yes | Objective UUID | |
| description_md | No | New description |
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. 'Audited' is a genuine behavioral disclosure the schema does not contain, but permission requirements, reversibility of close, and partial-update semantics are absent (the schema only hints at clearing via empty strings).
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 short fragments, action front-loaded, zero filler. The 'Audited' tag is separated out and earns its place, though the parenthetical field list is somewhat redundant against the schema.
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 need no explanation, and the description covers the main operation modes plus the audit trait. For a single-object mutation tool it is nearly sufficient, missing only permission/authorization 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 100%, so every parameter is already documented, including the empty-string clearing and the active/closed enum semantics. The description's field list (owner, target date, title) is a subset and adds no syntax beyond the schema; baseline 3 applies.
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 set (edit, close, reopen) and resource (objective), and enumerates the mutable fields. It is distinguishable from memory_strategic_objective_set (create) by the 'edit/close/reopen' framing, though it never names a sibling explicitly.
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 'close or reopen' phrasing implicitly routes the agent to the status transition use case, and the parenthetical lists editable fields. However, it never states when to prefer this over memory_strategic_objective_set or how it relates to objective_status_post, leaving the alternative-selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_plan_closeBInspect
Close an OKR cycle. Idempotent; audited.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| plan_id | Yes | Plan (OKR cycle) UUID |
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 behavioral burden. 'Idempotent; audited' discloses two meaningful traits, but critical details like required permissions, side effects on related objectives/key results, and whether closure is reversible are omitted.
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 very short sentences with zero waste. The core action is front-loaded, followed immediately by key behavioral qualifiers. Every word 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?
Output schema exists and all parameters are described, so return values and parameter meanings need not be repeated. However, for a mutation tool with no annotations also missing usage context, the description is minimally adequate but leaves notable behavioral gaps.
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 100%, and both parameters are documented in the input schema. The description adds no extra meaning about parameter usage or format, so the baseline of 3 applies.
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 and resource: 'Close an OKR cycle.' The action is clear and distinct from sibling tools like memory_strategic_plan_get or memory_strategic_plan_set, though it does not explicitly name alternatives. It is not a tautology and an agent can identify the core operation.
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 when-to-use, when-not-to-use, prerequisites, or alternative tools are mentioned. The implied context is that this is used when an OKR cycle ends, but the description gives no explicit guidance. This matches the 'no guidance' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_plan_getBInspect
Fetch one strategic plan, optionally with the full OKR tree.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Plan UUID | |
| include_tree | No | Include objectives, key results, initiatives |
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 'Fetch' reasonably implies a read-only operation. The 'optionally with the full OKR tree' note hints at depth control, but it largely restates the include_tree parameter and discloses nothing about permissions, errors, or format.
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 tight sentence with the core action front-loaded and zero filler. Nothing could be trimmed without losing 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?
An output schema exists so return values need not be explained, and parameter coverage is complete. The only real gap is the absence of usage/routing guidance, which keeps it from a 5.
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 100%, so both parameters (plan_id and include_tree) are already documented. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
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 gives a specific verb (Fetch) and resource (one strategic plan), and the singular 'one' implicitly separates it from memory_strategic_plan_list. It stops short of naming the sibling it differs from, so an agent must infer the list/get boundary.
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 and no mention of alternatives such as memory_strategic_plan_list or the strategic entity/objective getters. The agent gets no explicit routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_plan_listBInspect
List OKR cycles (strategic plans) for the org.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| active_only | No | Only active plans |
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, yet it discloses almost nothing: no explanation of pagination, no mention that active_only defaults to true (so inactive plans are hidden unless the caller opts in), and no auth/scope requirements. 'For the org' is the only behavioral scoping hint.
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 front-loaded sentence with zero filler. Everything present is about the tool's core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the operation is simple. However, with no annotations and a hidden default filter (active_only=true), the description leaves the agent without enough context to know that inactive plans are excluded by default.
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 50%: active_only is documented in the schema, and limit is self-describing via its min/max/default constraints. The description itself adds no parameter meaning, so it neither compensates for the undocumented limit nor surfaces the active_only default behavior. Baseline 3 is appropriate given the schema does most of the work.
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 (List) and resource (OKR cycles / strategic plans) scoped to the org. It is distinguishable from plan_get, plan_set, and plan_close by virtue of being the listing operation, though it never explicitly names these siblings.
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 when-to-use guidance, no prerequisites, and no routing to alternatives such as memory_strategic_plan_get for a single plan or memory_strategic_objective_status_list for objectives. The agent must infer that this is the top-level enumeration tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_plan_setCInspect
Propose a new OKR cycle.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Cycle name, e.g. 2026 Q2 | |
| agent | No | Override agent identity | |
| period_end | Yes | Inclusive end date | |
| period_start | Yes | Inclusive start date |
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 burden. It says only that a cycle is proposed, without stating whether this creates or updates data, required permissions, side effects, or reversibility.
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?
It is a single short, front-loaded sentence with no wasted words. The size is appropriate for the core purpose statement.
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 need not be described. However, with no annotations and a mutation-like operation, the description omits important behavioral and usage context needed to call this confidently alongside sibling strategic-plan 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 100%, so the schema already explains all four parameters. The description adds no parameter meaning beyond what is structured 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 clear verb and resource: propose a new OKR cycle. It is understandable on its own, but it does not distinguish this tool from close/get/list siblings in the strategic-plan family.
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 when-to-use, when-not-to-use, or alternative guidance is provided. An agent receives no routing help among the many memory_strategic_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_statement_getBInspect
Fetch the active org statement for vision, mission, or purpose.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | vision, mission, or purpose |
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 has to carry behavioral weight; 'Fetch' and 'active' do convey a read-only operation scoped to the current statement rather than history. However, it says nothing about permissions, whether historical/superseded statements are addressable, or any other operational constraint.
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, front-loaded sentence with the action first and the discriminating detail ('active') before the kind list. No filler or redundant clauses.
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 need no explanation, and the single required enum parameter is fully covered. The only remaining gap is the absence of routing guidance against the many sibling memory readers, which is a minor omission for such 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 100% and the single enum parameter is fully documented, so the schema does the heavy lifting. The description only restates the three enum values ('vision, mission, or purpose') without adding format or selection semantics beyond the 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?
States a specific verb ('Fetch') and resource ('the active org statement') with the three allowed kinds named inline. It is clearly distinguishable from its sibling memory_strategic_statement_set, though it does not name other related readers like memory_strategic_plan_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'active' hints that only the current statement is returned, but there is no explicit guidance on when to call this versus memory_strategic_plan_get, memory_soul_get, or other strategic readers. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_strategic_statement_setCInspect
Propose a new version of vision, mission, or purpose.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | vision, mission, or purpose | |
| agent | No | Override agent identity | |
| content_md | Yes | Markdown body |
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 burden. It hints at versioning ('a new version') but never says what happens to the prior version, whether the statement is written directly or held as a draft awaiting approval, or what permissions are required for this mutation.
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 short sentence with the resource front-loaded and no filler. It is efficient, though its brevity is part of the reason other dimensions are under-served.
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 need not be explained, and the parameter surface is fully documented. Still, for a mutation tool with no annotations, the critical ambiguity of 'propose' versus 'set' (draft vs committed) is left unresolved for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents kind, agent, and content_md; the baseline is 3. The description's 'vision, mission, or purpose' merely echoes the enum values and adds no format or constraint detail beyond what the schema supplies.
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 (propose/set) and resource (vision, mission, purpose), which maps directly to the kind enum. However, it does not differentiate itself from adjacent strategic siblings like memory_strategic_plan_set or memory_strategic_objective_set, and the verb 'propose' sits awkwardly against the tool name 'set', leaving the exact effect slightly unclear.
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 versus memory_strategic_statement_get or the other strategic setters. No prerequisites, no mention of whether the proposal is committed immediately or awaits review.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_thinkAInspect
Synthesized answer with citations and gap analysis (GBrain think parity).
Runs durable recall (default scope excludes working), then composes a
cited prose answer plus explicit gaps. For named-entity or competitor
questions, call memory_recall with a short keyword anchor first —
synthesis quality depends on retrieval. Prefer memory_think when
you need prose + gaps after recall surfaced hits, or for open strategic
questions. Default sources are current truth; pass
include_superseded=true to include retired facts, or as_of= for
transaction-time point-in-time grounding.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Max source records to retrieve before synthesis | |
| repo | No | Workspace slug; boosts repo-scoped memories in retrieval | |
| as_of | No | ISO-8601 timestamp: ground the answer in what was current at that instant (same filter and rules as memory_recall as_of). Omit for live current truth. A future or unparseable value is a 422 invalid_body on as_of. | |
| query | Yes | Question to answer from team memory | |
| github | No | GitHub owner/repo; boosts github-tagged memories | |
| token_budget | No | Approx token budget for source packing | |
| include_superseded | No | When true, synthesize from current truth plus superseded/merged history. Default is current truth only. |
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 and largely succeeds: it discloses that durable recall's default scope excludes working memory, that default sources are current truth only, and that synthesis quality depends on retrieval. It does not cover auth/permission requirements, cost or latency implications, or idempotency, so it is not fully complete.
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?
Purpose is front-loaded before the workflow and parameter guidance, and the structure is easy to scan. There is mild redundancy with the schema's descriptions of include_superseded and as_of, and jargon like 'GBrain think parity' adds little for an 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?
An output schema exists, so return values need not be explained, and the description still covers the retrieval-then-synthesis workflow, scope defaults, and temporal options for a 7-parameter tool. It is slightly thin on operational concerns (permissions, expense) but complete enough to invoke 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 100%, so all seven parameters are already documented. The description's mention of include_superseded and as_of largely restates the schema's own text ('include retired facts', 'point-in-time grounding') rather than adding new semantics, so the baseline 3 is appropriate.
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 opening line states a specific verb+resource+output ('Synthesized answer with citations and gap analysis') and immediately scopes it ('runs durable recall... then composes a cited prose answer plus explicit gaps'). It also differentiates itself from the sibling memory_recall by naming it and the condition that selects it, so an agent can distinguish the two without opening either schema.
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?
Explicit routing guidance: 'call memory_recall with a short keyword anchor first' for named-entity or competitor questions, and 'prefer memory_think when you need prose + gaps after recall surfaced hits, or for open strategic questions.' This names the alternative and the exact conditions for choosing each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_tools_catalogAInspect
Discover teamshared MCP tools for the current turn.
Returns protocol (every-turn loop), chooser (need → tool),
never (hard constraints), and grouped tools with when /
avoid / copy-paste example. Pass need= when choosing a
tool mid-conversation. Also returns tool_recipe_shapes,
aliases (procedure_* → playbook_*), and mcp_list (the live
tools/list tier gate and how to advertise extended / alias tools).
| Name | Required | Description | Default |
|---|---|---|---|
| need | No | Conversation router: short intent (e.g. 'share a file', 'live slack', 'create a task'). Returns matching chooser rows plus those tools' when/avoid/example. Omit to browse. | |
| tier | No | Optional filter: core, extended, or human | |
| scope | No | memory, work, or all tool groups | all |
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 disclosure burden. It does so by detailing what is returned, including the need-to-tool chooser mapping, hard constraints, the live tools/list tier gate, and alias normalization. It does not explicitly say 'read-only,' but 'Discover... Returns' makes the non-mutating query nature reasonably clear.
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 short paragraphs with the one-line purpose front-loaded, followed by a compact inventory of return fields and a usage cue. Every sentence contributes information, with no filler or redundant restatement of 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 an output schema exists, the description need not explain all return values, and it covers purpose, invocation mode, and key output structures well. Minor gaps are unexplained terms such as tool_recipe_shapes and 'advertise extended / alias tools,' but these are left for the output schema to clarify.
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 100%, so the input schema already fully explains need, tier, and scope. The tool description adds only a light usage note about need= and does not meaningfully extend the schema's parameter semantics, keeping this at the baseline 3.
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?
Opens with a specific verb and resource: 'Discover teamshared MCP tools for the current turn,' then enumerates concrete returned categories (protocol, chooser, never, grouped tools with when/avoid/example). This clearly differentiates it from the many sibling memory_*/work_* tools, since it is the catalog/discovery tool among 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?
Provides an explicit usage trigger: 'Pass need= when choosing a tool mid-conversation,' which tells an agent when to supply the key parameter. It does not name exclusions or alternative tools, but the sibling list contains no direct rival for this catalog function, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_write_policy_setAInspect
Set which durable memory writes wait for a person's review. Needs org:admin.
People only, like org_automation_set: an agent seat (even one acting
for an admin) is refused with human_required, and under
decider=console anything but a console browser session gets
console_required. Audited as org.automation.set. Takes effect within
about 30 seconds. The current value is memory_writes in
glian_status.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | review (default): hold an unattended agent run's memory writes, and any agent write the injection screener flags, as memory_write reviews until a person accepts them. auto: store every write stamped with its writer class (unattended ones still render quoted) |
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 and does so: authorization level, the human-vs-agent seat restriction with its specific error code, the console_required condition, the audit event name (org.automation.set), the ~30 second propagation delay, and where to read the current value (memory_writes in glian_status). That is unusually complete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and the credential requirement, and every sentence adds a distinct operational fact (restriction, error codes, audit, latency, status location). The mid-sentence line breaks and code-quoting are slightly noisy but no content is wasted.
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 need not be described. Combined with the full authorization, eligibility, audit and latency disclosure, an agent has everything needed to call this correctly or know it must hand off to a human.
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 100% and the single enum parameter's review/auto semantics are fully documented in the schema itself. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
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: setting which durable memory writes require human review. It also situates itself relative to the analogous sibling org_automation_set, so an agent can distinguish it from the many other memory_* policy setters without opening schemas.
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?
Gives concrete context: requires org:admin, is human-only (agent seats are refused with human_required), and under decider=console only a console browser session is accepted. It explains preconditions well but does not frame this against alternative tools or say when a caller would prefer it over, e.g., org_automation_set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_inboxBInspect
List your conversations, newest activity first, with unread counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | 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 behavioral burden. It usefully discloses sort order (newest activity first) and that unread counts are included, but it does not mention pagination behavior or limit semantics; "List" implies read-only but the safety profile is not explicitly stated.
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: verb, resource, ordering, and key returned metadata are all stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema, the description covers purpose, ordering, and unread counts. However, with no annotations and no schema descriptions, it leaves the limit parameter and any usage distinction from message_thread 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?
There is one optional limit parameter with 0% schema description coverage, and the description never mentions limit, its default of 30, or its maximum of 100. It adds no meaning beyond the raw schema for the only 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 specific verb, "List", and resource, "your conversations", and adds useful scope detail: newest activity first with unread counts. It does not explicitly distinguish itself from siblings like message_thread, so it stops short of a 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?
It implies listing conversations but gives no explicit when-to-use guidance, no exclusions, and no comparison to message_thread or message_send. The agent must infer that this is the inbox-listing tool from the name and sentence alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_sendAInspect
Send a message to a teammate or another agent.
A person finds it in their inbox and bell. An agent is woken to read and answer it (unless its record turns that off). Reply with thread_id.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The message (plain text, up to 8000 characters) | |
| to_id | No | The person's user id or the agent record id. Omit when replying | |
| to_kind | No | Who it is for: a person or an agent. Omit when replying | |
| work_id | No | The task this is about; the message is also posted there | |
| thread_id | No | Reply on this conversation (goes to the other side of it) |
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 load, and it does disclose the important side effect: the message lands in a person's inbox and bell, while an agent is *woken* to read and answer unless its record disables that. This wake-up consequence is exactly the kind of impact an agent needs before calling. Auth requirements, rate limits, and thread-creation semantics are still unstated.
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?
Four short sentences, no filler, and the recipient/delivery distinction is front-loaded before the reply hint. Every sentence contributes a distinct fact an agent would otherwise have to guess.
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?
Output schema exists and all five parameters are fully described in the schema, so the description only needs to cover delivery semantics and reply behavior — both are present. Nothing needed to invoke it correctly 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 100%, so the schema already documents body length, to_id, to_kind, work_id, and thread_id. The description only adds the reply pattern via "Reply with thread_id," a marginal restatement of the schema's "Reply on this conversation" — baseline 3 is appropriate when the schema does the heavy lifting.
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?
Names a specific verb and resource ("Send a message") and scopes the recipients to "a teammate or another agent," which distinguishes it from read-side siblings like message_inbox and message_thread. It does not distinguish itself from work_comment_add, which can also carry a message to a task, so a small ambiguity remains.
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 closing line "Reply with thread_id" is a genuine usage instruction for the reply case, and the two delivery modes hint at recipient selection. But no alternative tool is named and no when-not-to-use condition is given, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_threadAInspect
Read one conversation you are part of, oldest message first.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | Conversation id from message_inbox |
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 must carry the behavioral load; it does disclose an access constraint ('you are part of') and a deterministic ordering ('oldest message first'), which are real behavioral facts. It is silent on pagination/limits, whether reading marks messages as read, and how long threads are truncated.
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 with zero waste; the scope and ordering guarantee are front-loaded so an agent can act after a single read.
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 need no explanation, and the single param is fully documented in the schema. However, for a read tool with no annotations, missing pagination or size-bound behavior leaves a meaningful gap for an agent planning retrieval.
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 100% and the single parameter's schema description already explains the id's origin ('Conversation id from message_inbox'). The description adds no additional meaning about the id format or behavior beyond that, so the baseline 3 is appropriate.
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 (Read) and resource (one conversation), plus the ordering guarantee 'oldest message first'. This is clearly distinct from the sibling message_inbox (list of threads) and message_send (write), though the description never names those alternatives explicitly.
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 only implied: you read a thread you are part of, and the schema property description ties thread_id back to message_inbox, which hints at the workflow. There is no explicit when-to-use/when-not statement or comparison with message_inbox or message_send.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
object_searchAInspect
Find objects of any type by name or text, ranked on one list (#937).
Same search, ranking and cursor as the console ⌘K palette and GET /v1/search. Each hit: kind, id, title, subtitle, href, score (0-1, the merge order), why, raw_score, object_kind, status, owner, updated_at. skipped_by_kind says which types a filter ruled out; degraded is true when a type failed or was denied. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | The object's own kind, case-insensitive: work item type (task, milestone, approval), project, plan / objective / key_result / initiative / statement, an ontology kind (Person, Company, ...), file / folder, or a memory kind (fact, preference, ...). Types that cannot match are skipped. | |
| limit | No | Hits per page | |
| owner | No | Who created it: the created_by label (a memory's author). Exact match. Objectives are skipped. | |
| query | No | Words to find by name or text. May carry filter tokens (type:work kind:task status:todo owner:<label> linked:project:<id>), the console Explore grammar. May be empty when a filter is set. | |
| types | No | Object types to search: work, project, objective, entity, file, memory. Omit for all. | |
| cursor | No | next_cursor from the previous page, with the same query and filters. Opaque: do not parse or build it. | |
| linked | No | Only objects linked to <kind>:<id-or-slug> either way, e.g. project:<uuid> or entity:acme. Memory is skipped. | |
| status | No | Work status (todo, in_progress, done, ...), project status (backlog, active, completed, archived) or entity status. Other types are skipped. |
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 and does well: it declares 'Read-only', explains the score (0-1, merge order), discloses degraded=true on type failure/denial, skipped_by_kind on filtered-out types, and that the cursor is opaque. It omits auth requirements and any rate/volume limits, which keeps it short of a 5.
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?
Front-loaded with the core verb and resource in the first sentence, then detail. Some waste: the enumerated hit fields (kind, id, title, subtitle, href, score...) duplicate the output schema and could be trimmed.
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 an 8-parameter federated search with a 100%-covered schema and an output schema, the description covers the remaining gaps an agent needs: read-only nature, ranking semantics, cursor reuse, degraded and skipped_by_kind signals. Nothing essential to correct invocation 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 100% (8 params, all documented), so the baseline is 3. The description's only added parameter value is reiterating that ranking/cursor match the console and /v1/search, which is marginal beyond what the schema already says about query tokens, cursor, and skip behavior.
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 and resource ('Find objects of any type by name or text') plus the scope of the result set ('ranked on one list'), which distinguishes it from the per-type siblings (work_list, file_list, project_list, memory_recall). It never names those alternatives explicitly, so the cross-type vs per-type distinction is left to inference.
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 context is only implied: 'any type', the console palettes, and GET /v1/search tell an agent this is the broad federated search, but there is no explicit when-to-use / when-not-to-use statement or named alternative. An agent must infer that it should prefer this over the typed list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_automation_getAInspect
Read the org's automation level: what waits for a person and who decides.
Returns the level (full_automation / balanced / gated), what it sets
every area to, the overrides on top, and each area's effective value:
memory_writes, schema_proposals, entity_proposals, contradictions,
routine_changes (auto | review; whether the manager's
agent_routine_set waits for a person's Approve), secret_first_use
(auto | review; whether an agent's first spend of a vault secret
pauses its run for a person), wiki_sources (org |
review | all; which memory scopes the curator and the dream report
read: org memory only by default, review holds a page built partly
from private memory for a person, all is every scope), share_scope
(targeted | review | org_wide; who reads a memory once it is shared
with a team, project, user or agent: its audience and author, or every
member; an org_wide org also gets share_scope_impact.would_narrow, the
shared memories a switch to targeted would hide), init_constraints
(include | omit; whether agents get the org's standing rules in the
instructions they receive when they connect, quoted and cut at about 2 KB;
the console calls these "Include org rules" and "Leave org rules out"), decider
(console | person | permission), proposer_permission (memory:create |
org:admin) and the tool-call gates destructive_actions /
publish_actions / spend_actions (review | auto). deciders gives
the rule each review kind is decided under (balanced keeps
skill_rewrite, schema_link_type and command at permission;
gated_command is a queued command that would run a destructive,
publish, spend or routine call). Needs memory:read.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 and largely does so: it discloses the auth requirement (memory:read), that this is a read operation, and enumerates what the read resolves (levels, overrides, effective per-area values). It does not state cache/rate-limit or freshness behavior, but the core behavioral profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is an excellent front-loaded summary, but the body becomes a dense run-on packed with nested parentheticals and inline enum glossaries. Much of that detail is already carried by the output schema, so the sentences stop earning their 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 needn't be enumerated, and the description goes beyond anyway. Combined with the stated memory:read prerequisite, an agent has enough to call the tool correctly; only alternative-tool routing is absent.
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 tool takes zero parameters, so the baseline is 4. The schema and description agree there is nothing to pass, and no parameter semantics are needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource ('Read the org's automation level') and immediately clarifies the domain scope ('what waits for a person and who decides'). It is clearly the read counterpart to the sibling org_automation_set, though it never names that sibling explicitly.
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 purpose implies usage but there is no explicit when-to-use, when-not, or pointer to org_automation_set for changing values. The only actionable guidance is the trailing prerequisite 'Needs memory:read', which is useful but not a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_automation_setAInspect
Set the org's automation level and per-area overrides. Needs org:admin.
People only: an agent seat (even one acting for an admin) gets human_required; under decider=console anything but a console browser session gets console_required. Automation removes a review step, never a permission check. Audited as org.automation.set. Takes effect at once here and within about 30 seconds in the workers.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | full_automation: nothing waits for review and anyone holding the permission may decide. balanced (default): today's rules. gated: every proposal waits and only a person in a console browser session decides. No level turns off the destructive, publish or spend pauses | |
| overrides | No | Per-area values on top of the level, e.g. {"decider": "console"}. Areas: memory_writes, schema_proposals, entity_proposals, contradictions, routine_changes, secret_first_use (auto|review); wiki_sources (org|review|all: the scopes the curator and the dream report read); share_scope (targeted|review|org_wide: who reads a shared memory); distill_scope (source|org: where distilled session facts land); init_constraints (include|omit: the org's rules in the instructions agents get when they connect); decider (console|person|permission); proposer_permission (memory:create|org:admin); destructive_actions, publish_actions, spend_actions (review|auto, the only way to stop those pauses). "default" drops an override | |
| reset_overrides | No | Drop every override not named in overrides |
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 and does so well: it discloses the org:admin permission requirement, the audit event (org.automation.set), propagation timing (immediate locally, ~30s to workers), and the important semantic that automation 'removes a review step, never a permission check.' The agent-seat and decider=console edge cases are behavior an agent could not derive from the schema.
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 purpose is front-loaded in a single sentence, followed by dense but relevant operational notes. The 'People only' passage is terse and slightly cryptic, but nearly every sentence earns its place for a governance-critical mutation; only minor tightening is possible.
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 mutation tool with an output schema (so return format is covered elsewhere), the description supplies exactly the missing pieces: permissions, audit trail, propagation latency, and the safety semantics of what automation does and does not bypass. Nothing an agent needs to invoke it correctly is absent.
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 100% and the schema itself exhaustively documents level, overrides (with the full area list), and reset_overrides. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
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: 'Set the org's automation level and per-area overrides.' An agent can immediately tell this is the write-side counterpart to org_automation_get. However, it never clarifies its boundary against other policy-setting siblings such as review_policy_set or memory_write_policy_set, so sibling differentiation is only implied by the naming pair.
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 org-wide governance context and the org:admin requirement, but gives no explicit when-to-use guidance and no named alternatives. It does not tell the agent when to prefer this over review_policy_set, memory_write_policy_set, or the per-agent agent_routine_set, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_bindAInspect
Bind this MCP conversation or workspace to an authorized org slug.
Subsequent memory/work/file/context calls on this streamable-HTTP session resolve under that org. Other MCP sessions are unchanged. Membership is fail-closed. Does not change the OAuth token default. Path-bound /o/{slug}/mcp mounts cannot be overridden.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Org slug this account belongs to (live slug or alias). | |
| scope | No | conversation (this MCP session only) or workspace (account + workspace= slug). Default conversation. | conversation |
| workspace | No | Workspace / repo slug. Required when scope=workspace. Optional extra key when scope=conversation. |
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 and does so thoroughly. It discloses that the binding is session-scoped, leaves other sessions unchanged, is fail-closed, does not change the OAuth token default, and cannot override path-bound mounts—all valuable behavioral context beyond the schema.
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 five dense sentences with no wasted words. The core purpose is front-loaded, and every subsequent sentence adds distinct information about scope, failure behavior, or constraints.
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 full schema coverage, an output schema, and a description that covers side effects, scope, failure semantics, and limits, the definition is complete for an agent to invoke the tool correctly. 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?
Schema description coverage is 100%, so the schema already documents slug, scope, and workspace. The description adds no parameter-level meaning beyond the phrase 'authorized org slug', so the baseline 3 applies.
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 ('Bind') and resource ('this MCP conversation or workspace to an authorized org slug'), making the tool's purpose unambiguous. It is clearly distinguishable from siblings like org_unbind and org_list based on the binding action and the session-scope detail.
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 on when the binding takes effect ('Subsequent memory/work/file/context calls... resolve under that org') and includes an exclusion ('Path-bound /o/{slug}/mcp mounts cannot be overridden'). However, it does not explicitly mention alternatives such as org_unbind or org_list, 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.
org_context_getAInspect
Current org plus bind precedence for this MCP session.
Layers: path (/o/{slug}/mcp) > conversation (Mcp-Session-Id) > workspace (account + repo slug) > OAuth / tsk_ token default. Same snapshot as org_list.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Optional workspace / repo slug. When set, include that workspace bind in the snapshot. |
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 meaningful behavior: the layered precedence order (path > conversation > workspace > OAuth/token default) and that the result is a snapshot equivalent to org_list. It also references authentication context via 'OAuth / tsk_ token default'. It does not explicitly state read-only/no side effects, but the 'get' name and 'snapshot' language strongly imply a safe read 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 compact and front-loaded: the core purpose is stated first, followed by a concise layered breakdown and a useful equivalence to org_list. Every sentence contributes meaningful information without fluff or repetition of the schema.
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 one optional parameter, an output schema, and a focused purpose, the description covers the essential context: what is returned, how precedence works, and its relationship to org_list. It could be more explicit about when to use it versus org_list, but for a read-only context lookup the provided information is largely sufficient.
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 100%, so the baseline is 3. The description adds value by explaining that 'workspace' corresponds to a binding layer composed of account + repo slug, and by placing it in the precedence hierarchy. This goes beyond the schema's generic 'Optional workspace / repo slug' and helps an agent understand when and why to set the 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 clearly identifies the tool as returning the current org and bind precedence for the MCP session. It names the resource ('current org', 'bind precedence') and references sibling org_list with 'Same snapshot as org_list', which helps situate it. It lacks an explicit verb phrase, relying on the tool name, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to inspect the current org context and binding precedence for the session. It also references org_list by saying the snapshot is the same, which hints at a relationship but does not explicitly state when to choose this tool over org_list or other org tools. The usage context is implied rather than stated with clear exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_listAInspect
List memberships, current org, and bind layers for this MCP session.
Does not switch orgs. Use org_bind to bind this conversation or a workspace. tsk_ keys see only their seat org.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Optional workspace / repo slug. When set, include that workspace bind in the snapshot. |
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 does well by disclosing side-effect-free behavior ('Does not switch orgs') and a meaningful access limitation ('tsk_ keys see only their seat org'). While it does not exhaustively describe authentication or formatting behavior, it covers the most important semantic traits for safe invocation.
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 tight and front-loaded: the first sentence immediately answers what the tool returns, and the following two sentences add only high-value caveats and routing guidance. Every sentence earns its place, with no filler or redundant 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?
For a low-complexity list tool with one fully documented optional parameter and an output schema, the description is complete. It covers the operation's scope, the key side-effect boundary, the alternative tool, and an important access restriction. An agent has enough context to invoke org_list correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single optional workspace parameter at 100% coverage, so the description does not need to add parameter-level detail. The description's mention of 'bind layers' aligns with the schema's 'include that workspace bind in the snapshot,' but it does not go beyond what the schema already states. This is the appropriate baseline when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'List memberships, current org, and bind layers for this MCP session.' It distinguishes itself from sibling tools like org_bind and org_unbind by immediately noting 'Does not switch orgs,' so an agent knows exactly what org_list does and does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use an alternative: 'Use org_bind to bind this conversation or a workspace.' It also sets a clear boundary with 'Does not switch orgs' and provides a useful scoping constraint for certain key types: 'tsk_ keys see only their seat org.' This gives the agent actionable routing guidance beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
org_unbindAInspect
Clear a conversation or workspace org bind for this MCP session.
Later calls fall back to the next precedence layer. Does not change path-bound /o/{slug}/mcp mounts or the OAuth token default.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | conversation, workspace, or all. Default conversation. Token default is never cleared. | conversation |
| workspace | No | Workspace / repo slug to clear when scope=workspace or all. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses the key behavior: clearing a bind, the effect on subsequent calls (fallback to next precedence), and what is NOT affected (path-bound mounts and OAuth token default). This is substantial and goes beyond a simple 'clears a bind.' It does not mention side effects like reversal or permissions, but the core behavior is well-transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The primary action is front-loaded, and the second sentence adds essential clarifications about precedence and exclusions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two optional parameters, full schema coverage, and an output schema present, the description is complete. It explains the effect on precedence and what is not changed, giving an agent all necessary context to invoke it correctly without requiring additional 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 100%, so both parameters (scope and workspace) already have detailed descriptions. The tool description adds no extra parameter-specific syntax or format details, but it does reference 'conversation or workspace' which aligns with scope. Since the schema covers the parameters, baseline 3 is appropriate.
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 ('Clear a conversation or workspace org bind') and the scope ('for this MCP session'). It is specific about the resource and distinguishes from sibling tools like org_bind (which would set) and org_context_get (which reads) by focusing on the clearing action.
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 for when to use the tool: to remove an existing bind so later calls fall back to the next precedence layer. It also states exclusions (path-bound mounts, OAuth token default) which helps avoid misuse. However, it does not explicitly contrast with org_bind or org_context_get, but the purpose is implied strongly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_advanceAInspect
Advance a Process run after the current step is finished.
Illegal when the run is completed/cancelled, finished_step is not
the current step, or the process is unknown. A template step that
requires evidence refuses with evidence_missing until it is
attached (evidence_attach).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| run_id | Yes | Process run UUID | |
| finished_step | Yes | Step the accountable seat just finished (must match current_step) | |
| evidence_override | No | Signed-in org admins only: why to advance although the step's required evidence is missing. Logged as evidence.override. |
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 does well: it discloses refusal conditions, the evidence gate, and the logged evidence.override side effect. It falls short of describing the post-advance effects (e.g., whether a step event is emitted or the next step is activated), which matters for a state-machine mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the action first, then preconditions, then the evidence exception. No filler and no repetition of the schema.
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 need not be explained, and failure modes are well covered. The one gap is the absence of any statement about downstream effects of a successful advance in a multi-step run workflow.
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 100%, so all four parameters are already documented in the schema, including evidence_override's admin-only constraint. The description adds no syntax or format detail beyond naming evidence_attach, so the baseline 3 is appropriate.
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 (Advance) and resource (a Process run) with a precise trigger condition ('after the current step is finished'). An agent can distinguish this from siblings like process_run_complete or process_run_step_fail based on the vocabulary of 'advance' vs 'complete'/'fail'.
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?
Explicitly enumerates the when-not cases (run completed/cancelled, finished_step mismatch, unknown process) and the evidence gate, and names the alternative action (evidence_attach) needed before retrying. This is exactly the routing information an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_completeAInspect
Close a Process run with outcome criteria and result.
Does not require finishing the last step, but a template run still
needs the evidence of its current and remaining steps
(evidence_missing). Emits process.completed on run:{id}. A
run that already has an outcome is refused.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| run_id | Yes | Process run UUID | |
| outcome_result | Yes | What actually happened (met / missed / notes) | |
| outcome_criteria | Yes | What success looks like for this case (frozen on close) | |
| evidence_override | No | Signed-in org admins only: why to close although required evidence is missing. Logged as evidence.override. |
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. It discloses the evidence gate (evidence_missing), the emitted event (process.completed on run:{id}), and the refusal condition for runs that already have an outcome. It doesn't mention permission requirements beyond the schema's evidence_override hint, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by concise behavioral notes. It is efficient with no filler, though the paragraph break mid-sentence ('but a template run still needs...') slightly interrupts flow.
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 an output schema exists, no return-value explanation is needed. The description covers the key edge cases (no need to finish the last step, evidence gate, refusal on already-completed runs, emitted event). It is nearly complete, missing only explicit permission notes and sibling routing.
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 100%, so the schema already documents all five parameters. The description adds context about outcome_criteria being frozen on close and the evidence gate relevant to evidence_override, but most parameter meaning comes from the schema itself. Baseline 3 is appropriate.
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: 'Close a Process run with outcome criteria and result.' It is clearly distinguishable from siblings like process_run_fail, process_run_reopen, and process_run_advance, which handle different lifecycle transitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete preconditions: it doesn't require finishing the last step, but a template run needs evidence of its current and remaining steps. It also states that a run that already has an outcome is refused. It doesn't explicitly compare to process_run_fail or process_run_reopen as alternatives, so it falls 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.
process_run_createAInspect
Create a Process run from a catalog process or a launchable playbook.
Board Pickup (process or playbook_slug=board-pickup) starts at
Scan. Any playbook with tool_recipe.process_steps or a skill
sequence can start a run without a hardcoded catalog entry. The run
freezes playbook/skill versions + steps, current step, status, and
stream_id=run:{id}. Human/gate steps open a Work item and link it.
Not a Camunda / Zeebe / LangGraph workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| due_at | No | Optional due date-time for the instance | |
| process | No | Optional process slug or name (board-pickup / Board Pickup). Omit when playbook_slug names a launchable playbook. | |
| work_id | No | Optional work UUID (writes WorkItem --case_of--> current ProcessStep) | |
| project_id | No | Optional project UUID to bind this run (writes Project --runs--> Process) | |
| owner_agent | No | Optional owner label for the instance | |
| playbook_slug | No | Playbook to launch as a run. tool_recipe.process_steps storage the walk when present; otherwise the skill sequence is used. A playbook with a tool_recipe.process block, or a seed template slug such as claim, opens a long-running instance. Enough on its own — no catalog process required. | |
| subject_entity_id | No | Optional ontology entity UUID the instance is about (a policyholder, a candidate). One entity can have many instances. |
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 and does substantial work: it discloses that the run freezes playbook/skill versions, steps, current step and status, that stream_id is set to run:{id}, and that human/gate steps open and link a Work item. Missing are permission requirements, idempotency or duplicate-run behavior, and failure modes, which keeps this below a 5.
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 purpose is front-loaded in the first sentence and the remaining lines are dense, information-bearing statements about launching, freezing state, and Work item linking. Some jargon compounds (tool_recipe.process_steps, stream_id=run:{id}) and arbitrary line wrapping slightly hurt readability but nothing is 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?
An output schema exists, so return values need not be described, and the description covers the create semantics, two sourcing paths, and the frozen-state side effects well. Given eight all-optional parameters and a long-running instance lifecycle, an agent would still lack guidance on what happens on invalid slugs or repeated creation, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight optional parameters, and the baseline is 3. The description reinforces the process-vs-playbook_slug either/or ('Omit when playbook_slug names a launchable playbook', 'Enough on its own') and mentions the board-pickup slug, but that rule is already present in the schema text, so it adds little new 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 opening sentence gives a specific verb and resource ('Create a Process run') and names the two sourcing modes (catalog process or launchable playbook). The closing note 'Not a Camunda / Zeebe / LangGraph workflow' explicitly disambiguates it from external workflow engines, though it does not directly contrast with nearby siblings like agent_run_start or process_run_advance.
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 explains that 'Board Pickup' starts at Scan and that any playbook with tool_recipe.process_steps or a skill sequence can start a run without a catalog entry, which implies when this tool applies. However, it never states when to choose process_run_create over process_run_advance, agent_run_start, or process_template, and offers no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_eventsAInspect
List the event stream for a Process run (#343 primary event stream).
Returns append-only stream_events for run:{id} in timeline
order. The run is the event stream; this is the raw log.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| run_id | Yes | Process run UUID |
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 disclosure burden. It meaningfully reveals append-only semantics, timeline ordering, and that the output is the raw log rather than a derived view. This is genuine behavioral context beyond what the schema or output schema would imply, though it does not mention pagination 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 short and front-loaded with the core purpose. The second sentence adds useful conceptual context ('the run is the event stream') but the parenthetical '#343 primary event stream' is slightly cryptic and could be clearer.
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 list operation with an output schema and only one required parameter, the description plus schema provides enough to call the tool correctly. It captures the essential identity of the tool and the read-only append-only nature, though it would benefit from explicit guidance vs sibling event 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 only 33%, and the description adds no parameter detail. It does not clarify run_id format beyond the schema's 'Process run UUID', and limit/offset are not mentioned at all when they could have been briefly 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?
Description states a specific verb ('List'), a specific resource ('the event stream for a Process run'), and clarifies it is the primary/raw event stream. This meaningfully distinguishes it from generic siblings like event_list or process_run_get, even without naming 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?
The intended use is implied: call this to read the raw, append-only event log for a Process run. However, it does not explicitly state when to prefer this over alternatives such as event_list or process_run_get, and it gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_failAInspect
End an active Process run as failed (terminal). Use cancel for a run that is dropped.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| reason | Yes | Why the run failed; kept on the run's event and the audit row | |
| run_id | Yes | Process run UUID |
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 behavioral burden. It does disclose one meaningful trait beyond the schema: the run ends in a terminal state, so no further advancement is possible without a reopen. It says nothing about permissions, irreversibility, what happens to linked work, or failure modes, and the 'terminal' claim is left unqualified even though process_run_reopen exists as a sibling.
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 short sentences with zero filler; the primary action and its terminal semantics are front-loaded, and the disambiguation clause follows. Every clause 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 need not be described. The description covers the state transition and one alternative, which is close to sufficient for a single-purpose state-mutation tool, though a caller would still be guessing about preconditions (run must be active) and the effect on linked work.
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 100%, and the schema already explains run_id, reason (kept on the event and audit row), and the agent attribution override, so the baseline of 3 applies. The description adds no parameter-level detail such as format, required run state, or how reason is surfaced downstream.
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 ('End'), resource ('Process run'), and the resulting state ('failed', marked terminal), which separates it from the success-terminal sibling process_run_complete. The differentiation from siblings is partial: it names an alternative as 'cancel', but no sibling is literally named cancel (the closest is agent_run_cancel, which targets agent runs), so the routing hint is slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for choosing this tool ('End an active Process run as failed') and names the condition that selects an alternative ('Use cancel for a run that is dropped'). It does not, however, state the prerequisite that the run must currently be active or contrast with process_run_complete/process_run_reopen by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_fan_outAInspect
Start child instances for a fan_out step and let their join finish it.
Appends step.fanned_out; each child close appends child.result and
re-evaluates the join (all fails on the first failure, any completes
on the first success, quorum needs k of n). step.joined lands once
per (step, attempt); results after it are child.late_result. A
completed join advances the step; a failed one goes through the retry
and escalation path. budget_exceeded refuses before any child
starts. An agent seat is refused while the org reviews spend.
| Name | Required | Description | Default |
|---|---|---|---|
| join | No | all | any | quorum; the step policy's join when unset | |
| step | Yes | The run's current step; its actor must be fan_out | |
| agent | No | Override agent attribution label | |
| items | Yes | One entry per child run: {key, label?, subject_entity_id?, template?, playbook_slug?}. key is unique within the fan-out; the child template defaults to the step policy's child_template | |
| quorum | No | For join=quorum: how many children must complete | |
| run_id | Yes | Process run UUID (the parent instance) | |
| estimated_item_usd | No | Estimated spend per child for the budget check (USD) |
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 and discharges it: it names the events appended (step.fanned_out, child.result, step.joined, child.late_result), the join semantics per policy, that step.joined lands once per (step, attempt), that a failed join routes through retry/escalation, and that budget_exceeded refuses before any child starts or an agent seat is refused. This is unusually rich side-effect and failure disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and then organized around the event/join lifecycle; nearly every sentence carries behavioral information. Slightly dense with backtick-formatted event names, but no filler sentences.
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 complex, 7-parameter orchestration tool with no annotations and an existing output schema, the description covers side effects, join outcomes, late results, refusal conditions, and escalation. Return values correctly deferred to the output schema, and nothing an agent needs to invoke it correctly 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 100%, so the baseline is 3. The description goes beyond the schema by spelling out what each join value means operationally (all fails on first failure, any completes on first success, quorum needs k of n), which the schema only names as 'all | any | quorum'.
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 (Start) and resource (child instances) scoped to a fan_out step, plus the mechanism by which the step is finished (the join). An agent can distinguish it from process_run_advance, process_run_create, or process_run_complete without opening the schema.
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 rather than stated: the tool is for a step whose actor is fan_out, and the join policy dictates completion. However, it never names an alternative (e.g., process_run_advance for a non-fan_out step) or states when not to call it, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_getAInspect
Fetch one Process run (snapshot, current step, standing, work, stream_id).
standing is a projection over run:{id} events (true / changed /
next / owner / blocked / since / due / timeout). It is not a writable
column — draft with process_run_standing_draft and commit with
process_run_standing_commit. Pass source=events to fold the
run object from the log alone (no process_runs read).
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | Process run UUID | |
| source | No | row (default) reads process_runs; events reconstructs the run from stream_events on run:{id} only | |
| context | No | Also return a capped context pack: stage and step guidance, the subject, evidence gaps, the recent timeline and cost so far. Use it to resume a long-running instance. | |
| context_max_chars | No | Cap for the context pack (default 6000) |
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 and delivers: it explains standing is a read-only projection over run:{id} events rather than a writable column, and that source=events folds from the log without touching process_runs. Auth/permission behavior is not covered, which is a minor 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?
Front-loads the purpose in the first clause, then adds the standing caveat and source note. Efficient, though the standing bullet list (true/changed/next/...) is somewhat dense for the return-value detail an output schema already carries.
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?
Output schema exists, so listing return fields is mild redundancy, but the description still supplies the semantic layer an agent needs (read-only standing, event-folding source, context pack for resuming). Complete enough for a 4-param read tool with full schema coverage.
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 100%, so all four parameters are already documented. The description restates the value of source=events ("no process_runs read") and clarifies the standing field, adding only marginal meaning beyond the schema, consistent with the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ("Fetch one Process run") and enumerates the payload shape (snapshot, current step, standing, work, stream_id). The singular "one" implicitly distinguishes it from process_run_list, though it does not name that sibling outright.
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?
Gives a useful when-not-to-use rule for the standing field (draft/commit instead of writing here), but offers no explicit guidance on choosing this over process_run_list, process_run_events, or the context flag toggle. Usage 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.
process_run_link_workAInspect
Link a work item to a Process run (persisted work_id; emits process.work_linked).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| run_id | Yes | Process run UUID | |
| work_id | Yes | Work item UUID to hang off this run |
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 must disclose side effects. It mentions 'persisted work_id' indicating a write operation and 'emits process.work_linked' for event emission. This provides some behavioral transparency, but it omits details like idempotency, failure modes, permission requirements, or what happens if the link already exists. Given the absence of annotations, a 3 is appropriate – it offers minimal but non-misleading behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the action and key effects. It front-loads the verb and resources, with zero filler. Every word delivers information, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (linking two entities) and the presence of an output schema, the description covers the essential purpose and outcome adequately. While it doesn't detail edge-case behavior like idempotency or duplicate links, the operation is straightforward and the output schema likely provides return details. Minor gaps exist but are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a clear description in the input schema (run_id as 'Process run UUID', work_id as 'Work item UUID to hang off this run', agent attribution). The tool description adds no further parameter semantics beyond what the schema already provides, so it meets the baseline of 3 for high schema 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 clearly states a specific action: 'Link a work item to a Process run'. It names the two resources involved and the resulting effect (persisted work_id, event emitted). This distinguishes it from the sibling process_run_unlink_work without confusion and avoids any 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?
The description implies the use case (when you need to associate a work item with a run) but does not explicitly mention alternatives or conditions. The sibling unlink tool is never referenced, and no guidance is given on when not to use this tool or prerequisites. Adequate but lacks proactive routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_listAInspect
List Process runs in this org. Each row includes stream_id and work_id.
Pass source=events to fold every run from the append-only event
log — the primary event stream — without touching process_runs.
The template, stage, subject and activity filters read process_runs
and are ignored with source=events.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| stage | No | Filter by template stage slug | |
| offset | No | ||
| source | No | 'row' (default) reads process_runs; 'events' reconstructs the list from stream_events alone (#343 cutover) | |
| status | No | Filter: active, completed, cancelled, failed | |
| process | No | Filter by process slug (board-pickup) | |
| work_id | No | Filter by the linked work item (UUID) | |
| activity | No | Filter active runs: running, or waiting (on a human step) | |
| template | No | Filter by template slug (claim); 'none' lists runs with no template | |
| project_id | No | Filter by the project the run belongs to (UUID) | |
| parent_run_id | No | Filter: the fan-out children of this run UUID | |
| subject_entity_id | No | Filter by subject entity UUID |
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 and does disclose a non-obvious behavioral trait: source=events reconstructs runs from the append-only event log without touching process_runs, and that the template/stage/subject/activity filters are silently ignored in that mode. That filter-suppression warning is exactly the kind of gotcha an agent needs. It omits pagination/limit behavior, but the important caveat is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the primary purpose, then a second short paragraph for the source-mode caveat. Every sentence carries information and nothing is padded, though the prose is somewhat dense and could separate the filter-ignored warning more sharply.
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 12-parameter, zero-required list tool with an output schema present, the description covers the main behavioral trap and the row contents; return shape needn't be restated. It stops short of mentioning pagination semantics for limit/offset, which is the only notable remaining 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 coverage is high (83%), so the baseline is 3, but the description adds meaning the schema does not: it explains what source=events does at the storage level and, critically, that four of the filters become no-ops when that mode is selected. That interaction between parameters is real added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("List Process runs in this org") and adds scope detail (each row includes stream_id and work_id), which distinguishes it from process_run_get and process_run_events. It does not explicitly name those siblings, so it falls short of a 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?
It gives one concrete routing rule — pass source=events to read from the event log instead of process_runs — which is genuine usage guidance. However, it offers no guidance on when to prefer this tool over process_run_get, process_run_events, or agent_run_list, and no exclusions for the default path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_reopenAInspect
Return a failed, cancelled or completed Process run to active (org admin only).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| reason | Yes | Why the run is reopened; kept on its event | |
| run_id | Yes | Process run UUID |
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, and it does disclose the important auth constraint ('org admin only') plus the state mutation. However, it omits other behavioral traits: whether the reopen is reversible, side effects on run events, or whether in-flight work is resumed. Adds real value but leaves 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?
A single front-loaded sentence with the action and eligibility states first, and the permission note parenthetically. Zero waste, nothing to trim.
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 need no explanation, and the description covers the state transition and permission requirement. The main residual gap is that a mutation tool with no annotations could say more about reversibility and event 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 100%, so run_id, reason, and agent are already documented in the schema. The description adds no additional parameter meaning (e.g., format of run_id or how reason is surfaced), so baseline 3 applies.
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 ('Return ... to active') and resource ('Process run'), and enumerates the source states (failed, cancelled, completed) it operates on. This cleanly distinguishes it from process_run_fail, process_run_complete, and process_run_advance without needing their schemas.
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?
Gives clear eligibility context: it applies to runs in failed, cancelled, or completed states, and flags that it is org-admin only. It does not explicitly name an alternative or state when-not to use it, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_standing_commitAInspect
Commit standing on a run stream (append-only event).
Appends standing.committed. Omit every field to promote the latest
draft. Partial fields overlay the projection; they do not PATCH a row.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ISO due timestamp for the next action | |
| next | No | Next action (visible on the run) | |
| agent | No | Override agent attribution label | |
| owner | No | Who owns the next action | |
| since | No | ISO timestamp when this standing started | |
| run_id | Yes | Process run UUID | |
| blocked | No | What is blocking, if anything | |
| changed | No | What just changed | |
| timeout | No | ISO timeout for the current wait | |
| what_is_true | No | What is currently true on this run |
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 well: it discloses that this is an append-only event, that it appends standing.committed, and that partial fields overlay rather than PATCH. It does not cover error cases or idempotency, but the core side-effect semantics are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the core operation is front-loaded and each sentence adds useful information about event type, promotion behavior, and overlay semantics.
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 high parameter count and no annotations, the description is reasonably complete: it covers the operation, the event appended, and the two main invocation modes. It could mention prerequisites such as an existing draft or contrast with process_run_standing_draft, but the output schema exists and the core call contract is clear.
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 already covers all 10 parameters, so the baseline is 3. The description adds meaningful group-level semantics: omitting every field promotes the latest draft, and partial fields overlay the projection. This clarifies how the parameters collectively behave beyond their individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Commit standing') and a specific resource ('run stream'), and identifies the exact event appended ('standing.committed'). It is clear enough to be distinguished from generic event tools, though it does not explicitly differentiate from the sibling process_run_standing_draft.
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 concrete usage guidance: omit every field to promote the latest draft, and partial fields overlay the projection rather than patching a row. It provides clear context for how to invoke the tool, though it does not explicitly state when to prefer this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_standing_draftAInspect
Draft standing fields on a run stream (does not become live).
Appends standing.drafted on run:{id}. Read live standing from
process_run_get — standing is not a separately mutated field.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ISO due timestamp for the next action | |
| next | No | Next action (visible on the run) | |
| agent | No | Override agent attribution label | |
| owner | No | Who owns the next action | |
| since | No | ISO timestamp when this standing started | |
| run_id | Yes | Process run UUID | |
| blocked | No | What is blocking, if anything | |
| changed | No | What just changed | |
| timeout | No | ISO timeout for the current wait | |
| what_is_true | No | What is currently true on this run |
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 must carry the behavioral burden. It discloses that the operation is non-destructive (only drafts), that it appends an event named 'standing.drafted', and that the live state is read via process_run_get. This is transparent about the effect. It does not mention permissions or rate limits, but those are not critical for typical use; the core behavior is well-covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the essential purpose and the key differentiator (does not become live). Every clause adds value: the event name, the pointer to process_run_get, and the clarification about standing mutation. Zero waste and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, return values are covered. The description explains the effect (drafting, appending event) and how to read live standing. It could have explicitly named process_run_standing_commit as the counterpart to make live, but the 'does not become live' phrasing strongly implies its existence. Minor omission, but overall sufficient for an agent to use 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?
The input schema covers 100% of parameters with clear descriptions for each (due, next, agent, etc.). The tool description adds no additional meaning beyond the schema—it does not explain how parameters relate to 'standing fields' or provide usage hints. Per the baseline rule, when schema coverage is high, a score of 3 is appropriate even with no parameter info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Draft standing fields on a run stream' with the critical qualifier '(does not become live)'. It specifies the resource (run stream) and the exact action (appends an event), and explicitly contrasts it with reading live standing via process_run_get, effectively distinguishing it from siblings like process_run_standing_commit. This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use this tool: to draft (not make live) standing fields, and tells the agent to use process_run_get to read live standing. It also clarifies that standing is not a separately mutated field, implying this is the appropriate mutation path. This directly informs tool selection and refers to an alternative, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_step_failAInspect
Report a failed attempt of the current step of a Process instance.
Under the step's max_attempts a retry is scheduled on a deadline timer
(outcome: retry_scheduled); at the limit the step is escalated
(outcome: escalated) and a Work item is opened for a person to retry,
take over or close the run. A step with no policy escalates at once.
| Name | Required | Description | Default |
|---|---|---|---|
| step | Yes | The run's current step that just failed | |
| agent | No | Override agent attribution label | |
| reason | Yes | Why the attempt failed; kept on the timeline | |
| run_id | Yes | Process run UUID | |
| attempt | No | The attempt number you saw fail; a repeat or stale report is refused |
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 and does well: it discloses the retry/escalation branching ('retry_scheduled' vs 'escalated'), that a Work item is opened for a human, and the default-escalation case for steps with no policy. It does not cover auth requirements or how the report affects the timeline beyond outcomes.
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?
Purpose is front-loaded in the first sentence, with outcome semantics following. It is dense but every clause earns its place; the parenthetical outcome tokens are useful, not decorative.
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 need not be explained, and all parameters are schema-documented. The absence of annotations is largely offset by the description's outcome disclosure, though it stops short of covering permissions or concurrency behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including the staleness guard on 'attempt'. The description adds no parameter-level detail, so the baseline 3 applies.
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 and resource: 'Report a failed attempt of the current step of a Process instance.' The step-level scope ('current step') is explicit enough to distinguish it from the sibling process_run_fail, which operates on the run as a whole.
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 strongly implies when to call it (a step attempt just failed), but gives no explicit when-not or named alternatives relative to process_run_fail, process_run_advance, or process_run_complete. Usage must be inferred from the narrative rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_run_unlink_workAInspect
Clear the work item link on a Process run (emits process.work_unlinked).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent attribution label | |
| run_id | Yes | Process run UUID |
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. It does disclose one behavioral trait: the tool emits process.work_unlinked. However, it omits other relevant behavior such as whether the operation is idempotent, what happens if no link exists, or any permission requirements. The mention of the event is useful but insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. It conveys the core action and a key side effect in minimal words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters and an output schema present, so the description doesn't need to explain return values. However, it lacks any caveats about edge cases (e.g., no link present) or operational context. For a basic mutation, this is adequate but not rich; a mention of failure conditions would improve completeness.
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 100%, with both parameters (agent and run_id) already documented in the input schema. The description adds no additional parameter details, so it meets the baseline for fully covered schemas.
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 ('Clear the work item link') on a specific resource ('Process run'), and explicitly notes the emitted event. This clearly distinguishes it from the sibling process_run_link_work, which performs the opposite action, even though the sibling is not named.
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. It does not mention conditions, prerequisites, or exclusions. The only contextual clue is the event name, but no explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_templateAInspect
The org's process template registry (#1180).
list shows every template an instance can start from: the org's own
active versions over the six seeds (Claim, Matter, Deal, Hire, Vendor
onboarding, Month-end close). get reads one with its version;
pass it as expected_version on set, which appends a new version
(org admin) and may override a seed. archive retires the org's head
(status=retired); a new run of an overridden seed uses the seed
again. restore appends an active copy of that retired head. An org
holds at most 100 templates. Running instances keep the snapshot they
were opened from.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Template slug (get, set, archive, restore). Lowercase words joined by single hyphens, at most 60 characters, e.g. claim | |
| agent | No | Override agent attribution label | |
| action | Yes | get | set | list | archive | restore | |
| version | No | A specific version to read (get); default the head | |
| definition | No | The template to write (set): singular, plural, subject_kind, subject_phrase, stages [{name, slug?, steps [{name, slug?, actor agent|human|fan_out, requires_evidence [], guidance, policy {max_attempts, retry_delay_seconds}}]}], evidence_checklist [], outcome_schema {}; the shape process_template get returns. At most 64000 bytes of JSON | |
| include_retired | No | get: when the org has no active row, return its retired head (status=retired) instead of the built-in it overrides | |
| expected_version | No | Compare-and-set (set, archive, restore): the version you read. A stale number answers reason=version_conflict and writes nothing. Omit it on set to append. Pass 0 to create a slug the org has never saved (a seed's head is its own version, not 0). Required for archive and restore. |
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 and does well: it discloses the org-admin requirement for set, the 100-template quota, that archive sets status=retired and that restore appends an active copy, that a new run of an overridden seed reverts to the seed, and that running instances keep their snapshot. It leaves permission requirements for archive/restore and any failure modes other than the version conflict (documented in the schema) unstated.
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?
Front-loaded with the resource identity, then an action-by-action tour in terse, information-dense clauses. Nearly every sentence carries distinct semantics (versioning, override, retirement, quota, snapshot), though the run-on style with quoted literals could be harder to scan than a structured list.
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 need no explanation, and the description still covers the lifecycle an agent needs: seed vs org versions, versioning/conflict flow, retirement/reversal, quota, and run snapshot isolation. Nothing required to call a 7-parameter registry tool correctly appears 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 100%, so the baseline is 3, but the description adds workflow meaning rather than restating field docs: it ties version ('reads one with its version') to expected_version ('pass it as expected_version on set') into a read-then-compare-and-set cycle. It does not add syntax detail for slug, definition, or include_retired beyond the 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 definition names the exact resource (the org's process template registry) and enumerates the five actions it multiplexes: list, get, set, archive, restore. It implicitly separates itself from the sibling process_run_* family by framing everything as the template registry rather than runs, and the seed-vs-org-version scope is explicit.
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?
Each action's context is stated: 'list' to see start points, 'get' to read one version, 'set' to append a new version, 'archive' to retire the head, 'restore' to re-activate a retired head. It also flags that set is org-admin and that expected_version is required for archive/restore. It does not, however, explicitly contrast with neighboring tools such as process_run_create when an agent might be unsure whether to edit a template or start a run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_wakeAInspect
Deadline timers on a Process instance. set adds one (max 20 pending per run), cancel drops one, list shows a run's timers. A due timer appends timer.fired to the run's timeline; closing the run cancels its pending timers.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Why the timer exists (set); shown on the timeline | |
| agent | No | Override agent attribution label | |
| state | No | Filter for list: pending | claimed | fired | cancelled | |
| action | Yes | set | cancel | list | |
| reason | No | Why it is cancelled (cancel) | |
| run_id | No | Process run UUID (set and list) | |
| fire_at | No | ISO time the timer fires (set); UTC if no offset | |
| timer_id | No | Timer UUID (cancel) |
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 does well: it discloses a hard limit (max 20 pending per run), the side effect of a due timer (appends timer.fired to the timeline), and the lifecycle coupling (closing the run cancels pending timers). It omits auth/permission requirements and 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?
Three tightly packed sentences, front-loaded with the resource and action list, then the behavioral constraints. No filler; every clause carries distinct information.
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 need not be described, and the description covers actions, limits, and side effects adequately for a multi-action tool. It stops short of permissions or failure modes, which for a timer mutation tool would be the remaining useful additions.
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 100%, so the schema already documents every parameter including the action enum and the state filter values. The description adds only the max-20 constraint and lifecycle notes, not per-parameter syntax beyond the schema, so the baseline 3 is correct.
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?
Names the specific resource (deadline timers on a Process instance) and enumerates the three operations (set/cancel/list) with one-line definitions. An agent can immediately tell this apart from process_run_* siblings, which manage runs rather than timers.
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?
Explains what each action does and implies the selection criteria (set to add, cancel to drop, list to inspect a run's timers). It does not state explicit when-not conditions or name an alternative tool for overlapping needs, but the action semantics give clear operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_archiveCInspect
Archive or restore a project.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| archived | No | True to archive, False to restore | |
| project_id | Yes | Project UUID |
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 entire behavioral burden. 'Or restore' usefully signals the operation is reversible/toggle-like, but the description omits permissions required, what happens to members and work items in the project, and whether archived projects disappear from project_list.
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 front-loaded sentence with zero waste, but it is arguably under-specified rather than optimally concise for a mutation tool with no annotations and no title to supplement it.
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 need not be explained, and the schema fully documents the three parameters. What remains missing is behavioral context (permissions, side effects) for a state-changing tool with zero annotations.
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 100%: the 'archived' boolean is already documented as 'True to archive, False to restore' and 'project_id' as a project UUID. The description adds no parameter detail beyond that, so the baseline of 3 applies.
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 pair and resource: 'Archive or restore a project.' An agent can immediately tell what this operates on. It does not, however, differentiate itself from near-neighbors like project_update or file_archive, so it is clear but not sibling-distinguishing.
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 (e.g., project_update for other state changes), and no prerequisites or permission context. An agent must infer everything about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_createBInspect
Create a project (Asana-style task container).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name | |
| agent | No | Override agent identity | |
| color | No | Optional color label | |
| status | No | Lifecycle: backlog or active (default active) | |
| team_id | No | Owning team UUID | |
| priority | No | urgent, high, normal, or low | |
| start_date | No | Start date YYYY-MM-DD | |
| owner_email | No | Lead (owner) member email | |
| target_date | No | Target date YYYY-MM-DD | |
| default_view | No | list, board, timeline, or calendar | list |
| initiative_id | No | Strategic initiative UUID for roll-up | |
| description_md | No | Optional markdown body |
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 must carry the burden of behavioral disclosure. It only says 'Create a project' and does not mention side effects, required ownership, idempotency, permission needs, or what the created resource looks like. The name alone already implies creation.
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 short sentence with no filler. The clarifying parenthetical adds useful context without repeating schema information, and the key action 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 12-parameter creation tool with an output schema and no annotations, the one-line description is thin on behavioral and usage context. However, the schema is self-documenting for parameters and defaults, so the core invocation details are present; only the higher-level lifecycle 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 100%, so the schema documents all 12 parameters and their defaults. The description adds no parameter-level meaning beyond the parenthetical 'Asana-style task container,' which is a baseline contribution.
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 and resource ('Create a project') and clarifies what a project is ('Asana-style task container'), which distinguishes this creation tool from sibling read/update tools like project_get, project_list, and project_status_post. The resource and operation are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this tool over alternatives such as work_create for tasks or project_list for finding existing projects. The phrase 'Asana-style task container' hints at the domain, but the description never states conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_getAInspect
Fetch a project with its sections, latest status, attached files, and optionally its tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID | |
| include_items | No | Include the project's tasks (board view) |
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 full burden. The verb 'Fetch' clearly implies a read-only operation, and the description lists what is returned. However, it does not disclose additional behavioral traits such as error behavior for invalid UUIDs, authorization requirements, rate limits, or pagination. For a simple read tool this is adequate, but not rich.
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, tightly written sentence front-loads the verb and resource, then lists inclusions in a natural order. Every word earns its place; there is no fluff, repetition, or irrelevant 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 tool with two parameters and an output schema, the description adequately covers the primary behavior. It does not need to describe return values because an output schema exists. Minor omissions like error handling or performance characteristics are not critical for correct invocation, and the sibling list provides enough surrounding context for tool selection.
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 100% for both parameters, so the baseline is 3. The description adds value by specifying exactly what is always returned (sections, latest status, attached files) and that tasks are optional, reinforcing the role of include_items. This context goes beyond the schema's terse 'Include the project's tasks (board view)'.
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 begins with a specific verb 'Fetch' and a clear resource 'a project', then enumerates the full payload: sections, latest status, attached files, and optionally tasks. This distinguishes it from project_list (which lists projects) and work_get (single work item) without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the tool's scope: it returns a project with its related entities, so an agent knows to select it when needing project detail. It also hints at the include_items toggle by saying 'optionally its tasks', but it does not explicitly mention alternatives like project_list or exclusions (e.g., when to prefer a lighter list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_listCInspect
List projects with health, progress (done/total), lead and member count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | Only this lifecycle: backlog, active, completed, archived | |
| team_id | No | Filter by team UUID | |
| initiative_id | No | Filter by initiative UUID | |
| include_archived | No | Include archived projects |
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 must carry the full burden of behavioral disclosure. It does not mention default limits (limit=100), default exclusions (include_archived=false), or that results can be filtered by status/team/initiative. These are significant behavioral traits that are only discoverable via the input schema, but the description adds no context beyond a bare listing of output fields.
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, clear sentence that front-loads the verb and resource. It contains no fluff or redundancy. Every word contributes to understanding the tool's purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists (so return values are covered), the description fails to mention important behavioral aspects like pagination (limit), default filtering, and the fact that archiving is excluded by default. These are critical for an agent to know when invoking the tool effectively. The description is too minimal to be considered complete for a list tool with multiple optional filters.
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 80% (4 of 5 parameters have descriptions). The description does not add any semantic information about parameters; it only lists output fields. Since the schema already covers most parameters well, the description adds little value. Baseline of 3 is appropriate given the high schema 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 clearly states what the tool does: list projects, and specifies key output attributes (health, progress, lead, member count). This is distinct from sibling tools like project_get (which fetches a single project) or work_list (which lists work items). However, it doesn't explicitly mention that it supports filtering, so it's not as specific as it could be, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like project_get or work_list. There is no mention of 'use this when you need all projects' or any exclusions. An agent must infer from the name and schema, which is insufficient for optimal decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_member_addCInspect
Add a person or agent to a project's members.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role label, e.g. member | member |
| No | Member email (omit to add yourself) | ||
| agent_id | No | Agent UUID to add instead | |
| project_id | Yes | Project UUID |
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. It says nothing about idempotency (what happens if the person is already a member), whether the target is notified, or what permissions are needed to add someone – all meaningful for a mutation tool. The output schema covers return values, but the mutation's side effects remain undisclosed.
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 efficient sentence with the verb and resource front-loaded and zero filler. It is appropriately sized, though it is arguably too terse given the absent behavioral 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?
The output schema handles return values and the schema documents all four parameters, so the main gaps are behavioral: permissions, duplicate handling, and when to prefer this over sibling tools. For a mutation tool with no annotations, the description is minimally adequate but 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 100%, so every parameter is already documented in the schema, including the useful 'omit to add yourself' and 'Agent UUID to add instead' notes. The description adds no syntax or constraint detail beyond what the schema provides, so the baseline 3 applies.
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 (add) and resource (project members) and covers both the person (email) and agent (agent_id) paths, which lets an agent distinguish it from project_member_remove and project_member_list. It does not name siblings explicitly, so it falls short of a 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 use this tool versus project_member_remove, project_member_list, or work_add_to_project. No prerequisites such as required permissions or admin role are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_member_listBInspect
List a project's members (people and agents).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID |
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 behavioral burden. It adds one genuinely useful detail (members include both people and agents), but says nothing about permissions required, pagination, ordering, or scope of visibility. For a low-risk read tool this partial disclosure is adequate but thin.
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 front-loaded sentence with zero waste. It is appropriately sized, though the parenthetical detail could have been folded into a sentence that also carried usage or scope information.
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 need not be described. However, with no annotations and no usage guidance, the description leaves the agent to infer read-only safety and relationship to the member_add/remove siblings, which leaves a small but real 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 100% and there is only one parameter, so the schema already documents project_id as a Project UUID. The description adds no format, defaulting, or filtering semantics beyond that, which is the expected baseline here.
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 ('List') and resource ('a project's members'), and the parenthetical '(people and agents)' clarifies the member domain. It is clearly distinguishable from project_member_add/remove in practice, but never names or contrasts with those siblings explicitly.
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 versus alternatives such as project_member_add, project_member_remove, or other project_* listing tools. The read-only intent is only implied by the verb 'List'; no context, prerequisites, 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.
project_member_removeCInspect
Remove a person or agent from a project's members.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Member email (omit to remove yourself) | ||
| agent_id | No | Agent UUID to remove instead | |
| project_id | Yes | Project UUID |
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 burden, and it discloses almost nothing: whether removal is reversible, what permissions are needed, what happens to work items assigned to the removed member, or whether self-removal has different effects. 'Remove' implies mutation but the consequences are unstated.
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 short sentence with the verb and resource front-loaded and zero filler. It is efficient, though its brevity leaves no room for any routing or prerequisite 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?
An output schema exists, so return values need not be described, and all three parameters are documented in the schema. What is missing for a destructive membership operation with no annotations is permission/prerequisite context and effect disclosure, leaving the definition minimally viable.
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 100% and the schema already explains the email/self-removal case and agent_id. The description only echoes the 'person or agent' split, adding no syntax, mutual-exclusion, or selection guidance beyond the 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?
States a specific verb and resource ('Remove ... from a project's members') and covers both target types (person or agent). An agent can distinguish it from project_member_add/project_member_list by name and description, though the description never names those siblings explicitly.
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 when-to-use guidance, no prerequisites, and no mention of the counterpart tools (project_member_add, project_member_list). Nothing tells the agent whether elevated permissions are required or when removal is the right operation versus updating a membership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_section_addCInspect
Add an ordered section to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Section name (list group / board column) | |
| agent | No | Override agent identity | |
| project_id | Yes | Project UUID |
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 burden. The word "ordered" hints at positional semantics, but the description does not say whether the new section appends at the end, whether ordering can be controlled, what permissions are required, or whether the operation is idempotent. Substantial gaps for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no waste and the core action front-loaded. It is terse to the point of under-specification rather than padded, so it earns credit for structure but not a top mark.
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?
Output schema exists, so return values need not be explained, and 100% schema coverage handles parameters. However, for an unannotated mutation tool, the description omits ordering behavior, permissions, and prerequisites, leaving it only minimally adequate.
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 100%, so name, project_id, and agent are already documented in the schema. The description adds only the word "ordered" beyond the schema, contributing no syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.
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?
Clear verb + resource + scope: "Add an ordered section to a project." An agent can distinguish this from project_section_list (which reads) by the verb, though the description never names that sibling explicitly. Purpose is unambiguous but lacks explicit sibling 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?
No when-to-use guidance, no prerequisites (e.g., project must exist / caller must be a member), and no mention of the sibling project_section_list or where a new section is placed. The agent is left to infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_section_listBInspect
List a project's sections in order.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project UUID |
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 'List' does convey a non-destructive read. However, it says nothing about pagination, result limits, permission requirements, or behavior for an unknown project_id, which are the behavioral traits an agent would need.
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 six-word sentence with the scope and the ordering guarantee front-loaded. Nothing is wasted and nothing is buried.
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 read with a full output schema, the description covers what the tool is and does. The return shape is handled by the output schema, so only edge cases like pagination or invalid IDs remain 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 coverage is 100% and the single project_id parameter is already documented as a Project UUID. The description adds no further meaning about the parameter, so the baseline of 3 applies.
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 and resource ('List a project's sections') and adds the ordering guarantee. It is clear on its own, but it never distinguishes itself from the sibling project_section_add or explains that it returns existing sections rather than creating 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?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as project_get or project_section_add. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_status_listBInspect
List a project's status updates (health history), newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | next_cursor from the previous page | |
| project_id | Yes | Project UUID |
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 behavioral burden, and it does disclose one genuinely useful trait: results are ordered newest first. However, it says nothing about pagination behavior even though a cursor parameter exists, nor about whether results are scoped to the caller's visible projects.
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 zero filler; the resource and its ordering are front-loaded so an agent gets the essential fact immediately.
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 shape need not be explained, and the schema documents the cursor contract. The only real gap is the absence of any pagination note tying limit/cursor together into a paging workflow.
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 67%: cursor and project_id are documented in-schema, but limit is not. The description adds no parameter meaning beyond noting the newest-first ordering, which only loosely relates to limit/cursor. With middling coverage and a self-evident limit param, this is a baseline 3.
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 (List) and resource (a project's status updates), and clarifies the resource's meaning with '(health history)' plus the sort order. It does not explicitly name the sibling project_status_post as the write counterpart, but the list-vs-post distinction is self-evident from the 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 never says when to reach for this tool versus alternatives, nor does it mention prerequisites such as needing an existing project_id or any permission to read a project's health history. Usage is only inferable from the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_status_postAInspect
Post a project status update (on-track / at-risk / off-track banner).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| status | No | Alias for state_label | |
| body_md | No | Status note (markdown ok) | |
| project_id | Yes | Project UUID | |
| state_label | No | on_track, at_risk, or off_track |
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 burden. It only conveys a mutating 'Post' action and banner values; it does not disclose whether existing status is overwritten, what permissions are required, visibility implications, or any side effects beyond the banner.
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, front-loaded sentence with the verb and resource first. It is appropriately sized with no redundant information.
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 and all parameters are documented in the input schema, so return values and parameter details don't need to be repeated. However, the description lacks explicit usage context and behavioral side effects, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no parameter-specific meaning beyond the status banner context, which is already partially captured by the enum 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 states a specific verb ('Post') and resource ('project status update'), and explicitly enumerates the status banner values (on-track / at-risk / off-track). It is unambiguous and clearly distinct from sibling tools like project_create or work_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use instructions or alternatives are provided, but the tool's purpose is self-evident among the sibling list since no other tool posts status updates. The usage context is implied rather than stated, with no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_updateCInspect
Update project metadata, lifecycle, priority, dates and lead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| agent | No | Override agent identity | |
| color | No | Color label | |
| status | No | Lifecycle: backlog, active, completed, or archived | |
| priority | No | urgent, high, normal, low; empty string clears | |
| project_id | Yes | Project UUID | |
| start_date | No | Start date YYYY-MM-DD; empty string clears | |
| owner_email | No | Lead (owner) member email; empty string clears | |
| target_date | No | Target date YYYY-MM-DD; empty string clears | |
| default_view | No | list/board/timeline/calendar | |
| initiative_id | No | Strategic initiative UUID | |
| description_md | No | New markdown body |
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 burden. It implies mutation but never states partial-update semantics — specifically whether an omitted field is left untouched or whether null/empty-string clears it (the schema mentions 'empty string clears' for only some fields). It also says nothing about permissions, reversibility, or side effects of a lifecycle 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?
A single front-loaded sentence with no filler, and the verb+resource leads. The trailing field list is mildly redundant against a 100%-covered schema but is cheap and orients the reader quickly.
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 and fully-described parameters reduce what the description must carry, so it is close to adequate. Still, for a 12-parameter mutation tool with zero annotations, the absence of partial-update semantics and of any tie-breaker versus project_archive leaves gaps an agent must guess at.
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 100%, so each of the 12 parameters is already documented in the schema, including clearing conventions and date format. The description's field-group summary adds framing but no syntax or meaning beyond what the schema provides, so the baseline 3 applies.
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 ('Update project') and enumerates the affected field groups: metadata, lifecycle, priority, dates, lead. That is enough to distinguish it from project_create, project_get and project_list. However it does not differentiate from project_archive, despite status 'archived' overlapping with that sibling's job.
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 when-to-use guidance, no prerequisites, and no mention of alternatives. The overlap with project_archive (since 'archived' is an accepted status value here) is a real routing ambiguity the description never resolves.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_gated_approvalAInspect
Create an item_type=approval child and block the parent.
Does not send, publish, spend, delete, or grant. Human or manager marks the child done, then performs the gated action. Agent seats must call this with gate=publish instead of file_publish / storage_publish, or gate=destructive instead of memory_forget.
| Name | Required | Description | Default |
|---|---|---|---|
| gate | Yes | Named gate: external_send, spend, destructive, taste, publish. Does not perform the action. | |
| agent | No | Override agent identity | |
| title | Yes | Approval child title | |
| parent_id | Yes | Parent work item UUID to block | |
| description_md | Yes | Proposed action + draft pointer (handoff packet) |
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. It discloses that the tool blocks the parent, does not perform the action, and requires a human or manager to mark the child done before the action occurs. This is comprehensive behavioral disclosure for a gating 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 two short paragraphs: the first states purpose and non-actions, the second gives usage guidance. Every sentence is purposeful, front-loaded with the core function, and contains no fluff.
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 complex gating tool with 5 parameters and an output schema, the description covers purpose, usage, non-behavior, and routing. It explains the approval workflow sufficiently for an agent to call it correctly 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 coverage is 100%, so baseline is 3. The description adds value by explaining the 'gate' parameter's practical usage (e.g., gate=publish instead of file_publish), which enriches the schema description. It doesn't detail other parameters but they are already well-covered in the 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 clearly states it creates an approval child and blocks the parent, and explicitly lists actions it does NOT perform (send, publish, spend, delete, grant). It distinguishes itself from siblings like file_publish, storage_publish, and memory_forget by specifying when to use this tool instead.
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?
Explicitly states when to use: 'Agent seats must call this with gate=publish instead of file_publish / storage_publish, or gate=destructive instead of memory_forget.' This provides direct routing guidance against named alternatives, leaving no ambiguity about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_decideAInspect
Accept, reject or skip one pending review. Needs memory:approve.
Decides once: a review that is no longer pending returns
ok=false, reason=conflict with its current status. On a
hitl_tool review, accept/reject is agent_run_hitl_decide
approve/reject on the paused run (human seats only). Accepting a
gated_action runs the held chat tool call as you (a person, not
an agent key); the person whose chat proposed it may decide it too.
Accepting object_create / rekind / merge applies the
ontology change (rekind and merge also need org:admin); accepting a
contradiction retires the older fact. Reject writes nothing.
Who may decide any review is the org's decider rule
(org_automation_get deciders): a person by default (an agent key
or a delegated seat gets reason=human_required), only a console
browser session under decider=console
(reason=console_required), or any holder of the permission under
decider=permission (a paused tool call, and a queued command that
would run one, still needs a person). Under the balanced level
skill_rewrite, schema_link_type (also org:admin) and
command reviews keep their permission-only rule.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Why, recorded on the audit row | |
| decision | Yes | accept, reject or skip | |
| review_id | Yes | Review UUID from review_list |
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 and does so: required permissions (memory:approve, org:admin), idempotence/conflict behavior, per-type accept semantics (runs held tool call as a person, applies ontology change, retires older fact), that reject writes nothing, and the full decider-rule matrix with human_required/console_required reasons.
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?
Front-loaded with action and permission, and every clause carries substantive behavioral information rather than filler. It is dense and clause-heavy, making it harder to scan than it needs to be, but little of it is expendable for a tool with this much branching behavior.
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, yet the description still usefully documents the failure shape (ok=false, reason=conflict/human_required/console_required). Combined with full permission, decider-rule, and per-type semantics coverage, an agent has everything needed to invoke 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 100%, so the baseline is 3. The description adds genuine meaning beyond the enum by explaining what each decision value actually does per review type, though it says nothing about the optional 'note' parameter beyond what the schema already states.
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 opening sentence states a specific verb triad (accept/reject/skip) plus the exact resource (one pending review) and its precondition (needs memory:approve). It is immediately distinguishable from siblings like review_list (enumeration) and review_policy_set (configuration).
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 richly explains the consequences of each decision per review type and the error path when the review is no longer pending (ok=false, reason=conflict). It references review_list for sourcing the review_id, but never explicitly frames when to choose this over adjacent tools such as agent_run_hitl_decide, which it mentions only as a downstream effect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_listAInspect
List the org's review queue: human decisions waiting on someone.
Newest first. Each row has kind, target_ref, payload,
diff, confidence and status. Page with next_cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Filter by review kind, e.g. skill_rewrite, merge, hitl_tool | |
| limit | No | ||
| cursor | No | next_cursor from the previous page | |
| status | No | pending (default), accepted, rejected, skipped or expired. Pass null for every status | pending |
| source_glian | No | Filter by the glian (background worker) that proposed it |
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 burden, and it delivers ordering ('Newest first') and pagination behavior ('Page with next_cursor') that the schema does not express. It omits permission/auth requirements for viewing the queue, which is the main remaining 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?
Three tight sentences with zero waste: purpose first, ordering second, row shape and pagination last. Nothing is padded and the most important scoping 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?
An output schema exists, so the enumerated row fields are partly redundant, but ordering and pagination are genuine additions. For a 5-parameter, zero-required list tool with a documented output schema, this is nearly complete; only auth/permission context is absent.
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 80%, so most parameters self-document (kind, status, source_glian, cursor). The description adds only the pagination mechanic via next_cursor, but that is a meaningful link to the cursor parameter beyond the schema's plain default.
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 and resource ('List the org's review queue') and clarifies the queue holds 'human decisions waiting on someone', which implicitly separates it from the mutating sibling review_decide. It does not name that sibling explicitly, so the differentiation is inferred rather than stated.
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 only implied: reading the queue follows naturally from the purpose. There is no explicit when-to-use vs. review_decide/review_policy_set guidance, no prerequisites, and no statement about who should call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_policy_setAInspect
Set one of the org's review policies. Needs org:admin.
People only, like org_automation_set: an agent seat (even one acting for an admin) is refused with human_required, and under decider=console anything but a console browser session gets console_required. Audited as org.automation.set. Takes effect within about 30 seconds; glian_status reports every policy under review_policies. Held memory writes have their own tool, memory_write_policy_set.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | auto (default): apply as before. review: land it in the review queue until a person accepts it (a person in the console still writes directly) | |
| policy | Yes | schema_proposals: link types the distiller/curator propose. entity_proposals: typed entities, rekinds and merges an agent or glian proposes. contradictions: a fact that contradicts an active one on the same subject |
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 and does so richly: it discloses the auth requirement (org:admin), the agent-seat refusal (human_required), the console requirement (console_required), the audit event (org.automation.set), and the ~30-second propagation delay. This is exactly the behavioral context an agent needs before invoking a mutating policy 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?
Front-loads purpose and auth, then layers constraints, timing, and the sibling pointer. Every sentence earns its place, though the dense run-on middle sentence slightly reduces scannability.
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 need not be explained. The description covers permissions, failure modes, audit trail, propagation timing, verification path (glian_status), and the sibling alternative, leaving no material gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both enums are fully documented in the schema, so the schema does the heavy lifting. The description adds no additional per-parameter meaning beyond noting glian_status reports 'every policy under review_policies', which maps loosely to the policy enum. Baseline 3 is appropriate.
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 and resource ('Set one of the org's review policies') and explicitly disambiguates from the closest sibling by noting that held memory writes have their own tool, memory_write_policy_set. An agent can distinguish it from memory_write_policy_set and org_automation_set without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides strong selection context: it is people-only, requires org:admin, refuses agent seats with human_required, and needs a console browser session under decider=console. It also routes memory-write policies to a sibling. It lacks a crisp 'use this instead of X when Y' statement, but the conditions are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_describeAInspect
Describe one vault entry as metadata, with its status (ok,
revoked, expired, needs_rekeying, unconfigured). Never a
value: spend a secret through a brokered tool. secret_get does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which vault: user, agent, or org | agent |
| name | Yes | Secret name in the vault | |
| owner_id | No | Another owner's vault; same rules as secret_list |
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 does real work: it enumerates the possible statuses (ok, revoked, expired, needs_rekeying, unconfigured) and discloses that it never returns a value. It omits permission/auth requirements for the owner_id scoping, but the behavioral core is well disclosed.
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, purpose front-loaded, with the status enumeration and the value-exclusion guard each earning their place. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be re-explained, and the description still usefully names the status set. It is largely complete for a read-only describe tool, with only minor gaps around vault permission nuances for owner_id.
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 100%, so all three parameters are already documented in the schema. The description does not add syntax or format detail beyond what the schema provides, so the baseline 3 is appropriate.
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: 'Describe one vault entry as metadata', and scopes it precisely with the status field. It also distinguishes itself from the nonexistent secret_get, so an agent knows exactly what this tool is and is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear exclusion: 'Never a value: spend a secret through a brokered tool', which routes the agent away from misuse and to the correct mechanism. It does not explicitly contrast with the sibling secret_list, but the when/when-not guidance is present and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_listAInspect
List one vault's entries as metadata: name, keyed fingerprint, key id,
version, status, timestamps. Never a value. Your own vault needs
secret:use; another's or the org vault needs secret:manage and
refuses agent seats. There is no secret_get.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which vault: user (an account's), agent (a seat's), or org | agent |
| owner_id | No | Another owner's vault (needs secret:manage and a person). Omit for your own: your account's user vault, or your agent vault (the agent record's when this run is bound to one, else your seat's) |
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 and does well: it declares the metadata-only contract ('Never a value'), the scope prerequisites for each vault kind, and the hard refusal for agent seats on foreign/org vaults. It omits pagination, result limits, and ordering behavior for large vaults, keeping it short of a 5.
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?
Four dense sentences, front-loaded with what it lists and what it returns, followed by access rules and the clarifying absence of a get tool. No filler; every sentence carries distinct information.
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 need not be re-explained, and the description covers scope, metadata-only behavior, and permission/refusal semantics. It leaves out operational details like pagination or ordering, a minor gap for a list 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 coverage is 100%, so baseline is 3, but the description adds value by correlating parameter choice (own vs another's vs org vault) with the differing permission requirements and the agent-seat refusal. That meaning goes beyond the schema's field-level text.
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 (List) and resource (one vault's entries) and enumerates the exact metadata returned (name, keyed fingerprint, key id, version, status, timestamps). The scope is unambiguous, and 'Never a value' plus 'There is no secret_get' cleanly delimits it from a value-fetch operation.
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?
Gives clear conditional guidance tied to the owning relationship and required scopes: your own vault needs ``secret:use``, whereas another's or the org vault needs ``secret:manage`` and refuses agent seats. It stops short of naming the sibling ``secret_describe`` or stating when to prefer each, so the alternative selection is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_archiveAInspect
Soft-archive a Storage file or an empty Storage folder.
Same as console Archive on /app/storage: the row's status
flips to archived, lists and attachments hide it, bucket bytes and
join rows stay. Folders must be empty — a folder with active children
is refused with folder_not_empty (move or archive its children
first; archive never cascades). Returns {file_id, archived: true},
or archived: false with reason="not_found" for an unknown or
already-archived id. Needs memory:delete, as console archive does.
Not a purge: there is no hard delete of Storage objects. Shared-file
documents use file_archive.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | Storage object or folder UUID to archive |
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 supplied, so the description carries the full burden and does so: it discloses the exact state change (status flips to archived, lists and attachments hide it, bucket bytes and join rows stay), the failure mode folder_not_empty, the required permission memory:delete, and that the operation is reversible in spirit because no bytes are purged.
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 lead sentence front-loads verb and resource; subsequent sentences each add a distinct fact (state change, folder constraint, return shape, permission, non-purge, sibling pointer) with no repetition. Length is justified by the density of new information.
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 mutation with no annotations, the definition covers everything an agent needs: effect, constraint, error surfaces, permission requirement and sibling routing. Return values are stated even though an output schema exists, which is mild redundancy rather than a 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 coverage is 100% and the single parameter is already described as a 'Storage object or folder UUID', so the baseline is 3. The description adds meaning by spelling out the divergent behaviour of that same id depending on whether it names a file or a folder, and by defining the not_found outcome for an unknown or already-archived id.
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?
Opens with a specific verb+resource+scope ('Soft-archive a Storage file or an empty Storage folder') and explicitly distinguishes itself from the purge case and from the sibling file_archive. An agent can tell it apart from storage_unlink, storage_move and file_archive without opening any schema.
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?
States the preconditions (folder must be empty, archive never cascades), the remediation path (move or archive children first), the negative case (not a purge; no hard delete of Storage objects) and the explicit alternative for shared-file documents (file_archive). When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_attachAInspect
Attach an existing Storage object to a work item and/or project.
Idempotent on (org, work|project, storage_object). Does not copy
bytes. Canonical artifact attach for blobs and documents.
Transcripts stay on file_* / work_item_files.kind=transcript.
Pass at least one of work_id / project_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| file_id | Yes | Storage object UUID to attach | |
| work_id | No | Work item UUID to attach to (kind=artifact) | |
| project_id | No | Project UUID to attach to (kind=artifact) |
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 still discloses the two behaviors an agent most needs: the operation is idempotent on (org, work|project, storage_object) and it does not copy bytes, so it links by reference. It stops short of permissions or post-attach visibility, but the destructive/idempotency profile is far better covered than a bare 'attach' would be.
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?
Four short sentences, front-loaded with the core action and followed by the key constraints. Every line carries usable information, though 'Canonical artifact attach for blobs and documents' is somewhat redundant with the first sentence.
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 needn't be explained, and the description covers the attach precondition, idempotency, and non-copying behavior. Remaining gaps (permission requirements, error cases) are minor for a link-style mutation.
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 100% so the baseline is 3, but the description adds a genuine constraint the schema omits: although only file_id is required, at least one of work_id/project_id must be supplied. It also clarifies the resulting kind=artifact semantics for the target parameters.
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 and resource ('Attach an existing Storage object to a work item and/or project') and explicitly scopes it as the canonical artifact attach for blobs and documents, so an agent can separate it from file_* and evidence_* siblings.
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?
Gives a concrete precondition ('Pass at least one of work_id / project_id') and an explicit exclusion ('Transcripts stay on file_* / work_item_files.kind=transcript'). It doesn't name other adjacent siblings such as storage_unlink or evidence_attach, but the when-not guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_folder_createAInspect
Create a Storage folder (metadata only; no bucket bytes).
Folders are storage_objects rows with kind=folder. Root is
parent_id IS NULL. Archive refuses a folder that still has active
children — empty it first.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | Folder name | |
| parent_id | No | Parent folder UUID (omit or empty = org root) |
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 supplied, so the description carries the full burden. It does valuable work by disclosing the data model (folders are storage_objects rows with kind=folder), the root representation, and the archive constraint, but it says nothing about permissions/agent identity effects, duplicate-name behavior, or error outcomes for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler; the metadata-only scope comes first and the operational constraint (empty before archive) comes last. Minor formatting awkwardness from the hard line break inside the parent_id sentence.
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 an output schema present, return values need not be described, and the description covers the conceptual model and the main downstream constraint. For a simple 3-parameter create tool the remaining gap is duplicate/conflict handling, which is minor.
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 100%, so all three parameters are already documented, including "omit or empty = org root" for parent_id. The description's "Root is parent_id IS NULL" restates that rather than adding new semantics, so baseline 3 applies.
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 and resource ("Create a Storage folder") and immediately bounds scope with "metadata only; no bucket bytes", which separates it from byte-upload siblings like storage_upload_request. It never names an alternative tool explicitly, so it stops short of full sibling 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?
Implied usage only: it tells you that archive will refuse a folder with active children and that omitting parent_id puts the folder at root, which shapes when/how to call it. It gives no explicit when-to-use-vs-alternative routing against the many other storage_* and file_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_getAInspect
Fetch Storage metadata and a download pointer (not the blob body).
Returns download_url for an authenticated GET of the bytes. When
published and the bucket publisher is configured, also includes a
fresh signed_url (presigned bucket GET; primary for agents) plus
signed_url_expires_in / signed_url_expires_at. Durable
share_url / public_url still point at /d/{share_token}
(Storage's public raw-bytes route; distinct from shared-file
/s/{slug}). Includes work_ids / project_ids for current
attachments.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | Storage object UUID |
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 and does well on return behavior: it discloses that only metadata plus a pointer is returned, that download_url needs an authenticated GET, that signed_url is conditional on publication and bucket publisher configuration, and that it carries an expiry. It does not state that the call itself is a read-only operation, nor what happens on missing/unauthorized file_id.
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?
Front-loaded with the most important caveat (metadata and pointer, not bytes), then details the return shapes in descending priority. Some parenthetical nesting and backticked identifiers add visual noise, but every sentence conveys usable information.
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?
Returns are covered by an output schema, yet the description still usefully explains the semantics of download_url, signed_url, and share_url and their relationships. For a one-parameter read tool this is close to complete; only the read-only nature and failure modes are unstated.
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?
A single required parameter with 100% schema coverage ('Storage object UUID'), so the schema already fully documents it. The description adds no extra constraint or format detail about file_id, which is acceptable given the coverage but is not value-add.
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 opening line states a specific verb and resource and immediately scopes the behavior: 'Fetch Storage metadata and a download pointer (not the blob body).' It also distinguishes the returned URL shapes from Storage's shared-file '/s/{slug}' route, though it never names a sibling tool (e.g. file_get or storage_list) to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is indirect: 'signed_url ... primary for agents' tells the agent which returned URL to prefer, and the parenthetical rules out fetching bytes here. There is no explicit statement of when to call this versus file_get or when to call storage_list first to obtain a file_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_listAInspect
List active Storage objects in the caller's org, newest first.
Each row is metadata plus download_url (bearer GET /v1/storage/{id}/content).
Published objects also include a fresh signed_url (presigned bucket GET,
primary for agents) plus signed_url_expires_in /
signed_url_expires_at, and durable share_url / public_url
(/d/{share_token}, console/human fallback).
/d/{token} is Storage's public raw-bytes route.
Pass work_id or project_id to list attachments (project_id
wins if both are set; folder filters are ignored on those joins).
Pass parent_id / folder_id to list one folder (root = org
root). Omit both to list every active object. Folders sort first.
Archived objects stay joined but are omitted.
work_id / project_id list every Storage join (blobs and
document-capable objects). Transcripts stay on file_list(work_id=).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Optional case-insensitive title substring | |
| work_id | No | Only Storage objects attached to this work item UUID | |
| folder_id | No | Alias of parent_id | |
| parent_id | No | Folder UUID to list, or 'root' / empty for the org root. Omit to list everything. | |
| project_id | No | Only Storage objects attached to this project UUID |
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 so well: archived objects are omitted, folders sort first, joins bypass folder filters, and signed_url is fresh/presigned and 'primary for agents' with an expiry. It stops short of stating pagination behavior (what to do past limit=200) or any permission/org-scoping constraints, which for a read tool is the main remaining 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?
Purpose and scoping are front-loaded, but the middle block enumerating download_url, signed_url, signed_url_expires_in/at, share_url, public_url and the ``/d/{share_token}`` route is dense return-value detail that a declared output schema already covers. Those sentences crowd out more decision-relevant facts such as pagination.
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 6-parameter, zero-required list tool with an output schema, the description covers filtering modes, sorting, omission of archived rows, and URL semantics thoroughly. The notable omission is how to page beyond the 200-row ceiling (no cursor/offset mentioned in description or schema), which matters for an 'omit both to list every active object' 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 coverage is 83%, so baseline is 3; the description exceeds that by explaining interactions the schema cannot express — project_id overriding work_id, folder filters being ignored on attachment joins, 'root' meaning org root, and omitting both folder params meaning everything. The limit and query parameters are left to the schema, which is adequate at this 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?
Opens with a specific verb, resource and scope: 'List active Storage objects in the caller's org, newest first'. It also disambiguates from the nearest sibling at the end ('Transcripts stay on file_list(work_id=)'), so an agent can pick between storage_list and file_list without opening either schema.
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?
Gives explicit routing rules for each mode: work_id/project_id for attachments, parent_id/folder_id (or 'root') for a single folder, omit both to list everything, and file_list for transcripts. It even resolves the precedence case (project_id wins if both are set) and notes that folder filters are ignored on joins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_moveAInspect
Move a Storage file or folder into another folder (or to root).
Refuses cycles (a folder cannot become its own descendant) and non-folder destinations.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| file_id | Yes | Storage object or folder UUID to move | |
| parent_id | No | Destination folder UUID, or empty / 'root' for the org root |
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, and it does add real value by disclosing two guard rails: cycle prevention and rejection of non-folder destinations. It stays silent on permission requirements, behavior on name collisions in the destination folder, and whether the move is atomic or reversible — important traits for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the core action is front-loaded and the refusal constraints follow immediately. Every clause 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?
The presence of an output schema means return values need not be explained, and parameters are fully covered by the schema, so the remaining burden is behavioral. The description covers two validation rules but omits permission/auth requirements and conflict handling when the destination already contains an item of the same name, leaving meaningful gaps for a mutation 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 100%, so file_id and parent_id are already documented, including the 'root'/empty convention for the destination. The description's "(or to root)" merely echoes what the schema already states and adds no format or edge-case detail beyond it.
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 gives a specific verb and resource ("Move a Storage file or folder") plus the destination scope ("into another folder (or to root)"), which is far more precise than the bare name. It does not explicitly differentiate itself from nearby siblings such as storage_attach or storage_unlink, though the move semantics are self-evident from the wording.
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 only implied by the operation itself; there is no explicit statement of when to choose storage_move over storage_attach, storage_unlink, or work_move, nor any prerequisites (ownership, permissions) that must hold before calling. The refusal conditions describe failure modes rather than when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_publishAInspect
Publish a Storage object and return a presigned bucket GET URL.
Idempotent: returns the existing token if already published. Does not
re-upload bytes (they already live in the bucket). Agents should use
signed_url (TTL TEAMSHARED_STORAGE_SIGNED_URL_TTL_SECONDS,
default 3600s) plus signed_url_expires_in /
signed_url_expires_at. share_url / public_url remain the
durable /d/{share_token} fallback for console/humans — not
/s/{slug} (shared-file HTML). Fails closed if the object-storage
bucket is unconfigured (cannot mint a signed URL).
Agent seats (org tsk_ / agent_run) are refused — call
request_gated_approval(gate="publish") instead. Console humans
(ts_session) still publish. After the approval child is done, a
human seat calls this tool (same completion path as file_publish).
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | Storage object UUID to publish |
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 supplied, the description carries the full burden and does so: it discloses idempotent behavior (returns existing token), that bytes are not re-uploaded, the signed-URL TTL env var and default 3600s, and that the call fails closed when the object-storage bucket is unconfigured. It also states the authorization boundary (agent seats refused), which is exactly the kind of behavior an agent cannot infer from the schema.
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?
Purpose and return value are front-loaded, then idempotency, then the agent-vs-human routing rule, which is good ordering. It is dense with backticked implementation identifiers and parenthetical asides (share_token routes, seat prefixes), so a few phrases could be tightened without losing 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 single-parameter publish tool with an output schema, the description covers everything an agent needs: what it returns, idempotency, which URL field to use and its TTL, failure mode when storage is unconfigured, and the approval path for agent seats. No material gap remains for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (file_id) with 100% schema description coverage, so the schema already defines it as the storage object UUID to publish. The description adds practical meaning by clarifying the object already lives in the bucket and publishing does not re-upload bytes, which is useful semantic context beyond the schema's type description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Publish a Storage object') plus the return value ('presigned bucket GET URL'). It is clearly differentiated from the nearest sibling by noting the 'same completion path as file_publish' and by contrasting storage-publish URLs with the /s/{slug} shared-file HTML route.
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?
Explicit routing: agent seats (org tsk_ / agent_run) are refused and must call request_gated_approval(gate="publish") instead, while console humans (ts_session) publish directly, and a human seat calls this tool after the approval child completes. It also tells the agent which URL field to prefer (signed_url with its TTL) versus the durable share_url fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_unlinkAInspect
Unlink a Storage object from a work item and/or project.
Deletes the join row only. The Storage object stays (and remains on any
other attachments). Pass at least one of work_id / project_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| file_id | Yes | Storage object UUID to unlink | |
| work_id | No | Work item UUID to unlink from | |
| project_id | No | Project UUID to unlink from |
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 disclosure burden and does well: it states exactly what is destroyed (the join row only) and what survives (the Storage object and its other attachments), which is the key risk information for a destructive-sounding call. It omits auth requirements and whether repeated calls are idempotent, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the critical 'what is not deleted' clarification, then the parameter constraint. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple 4-parameter unlink with a full schema and an output schema, and the description covers scope, side effects, and the argument constraint. What remains unsaid (behavior when both work_id and project_id are passed, response shape) is either minor or covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds a genuine constraint not encoded in the schema: at least one of work_id or project_id must be supplied even though only file_id is required. That meaningfully improves 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 names a specific verb (unlink) and resource (Storage object) plus the two target types (work item / project). This is clearly distinguishable from storage_attach and work_remove_from_project, which operate on different relationships.
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 states the operational precondition 'Pass at least one of work_id / project_id' and clarifies scope: only the join row is removed. It does not name sibling alternatives or say when to use storage_attach versus this tool, but the context of use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_unpublishAInspect
Revoke public access to a Storage object (visibility back to private).
The share token is retained for audit; GET /d/{share_token} returns
404. Bucket bytes stay (they are the private store, not a CDN mirror).
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | Storage object UUID to unpublish |
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 and does real work: it discloses that the share token is retained for audit, that GET /d/{share_token} now returns 404, and that bucket bytes are preserved rather than deleted. These are precisely the side effects an agent needs before invoking a visibility mutation; only permission requirements and idempotency are left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and state transition, followed by targeted consequences. The parenthetical about bucket bytes not being a CDN mirror is slightly incidental but earns its place by preventing a wrong assumption about data loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple one-parameter mutation and an output schema exists, so return-value explanation is not needed. The description covers the key effects (404 on the share URL, bytes retained); only authorization and repeat-call behavior are missing, which leaves it slightly short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single file_id parameter is documented in the schema as the object UUID to unpublish. The description adds no format, constraint, or selection guidance beyond that, so the baseline of 3 is appropriate.
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 gives a specific verb+resource ("Revoke public access to a Storage object") and clarifies the resulting state ("visibility back to private"). It does not explicitly name the inverse sibling storage_publish or the parallel file_unpublish, so the differentiation is implicit rather than stated.
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 — call this when an object should no longer be publicly reachable. There is no explicit "use X instead" routing to storage_publish or file_unpublish, and no stated prerequisites such as required permissions or whether the call is idempotent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_upload_requestAInspect
Mint a one-time uploader script for a private Storage blob (any file type).
Storage is the org's binary store: bytes go to the Railway bucket, metadata
to storage_objects. Objects stay private until a human seat calls
storage_publish (agent seats must request_gated_approval(gate=publish)).
Document MIME types (Markdown, HTML, plain text, diagram JSON/YAML)
are stored as blobs; versioned edit / /s/ publish still use
file_upload_request.
Pass work_id and/or project_id to attach after ingest
(kind=artifact; transcripts stay on shared files).
Pass parent_id to place the file in a folder. Batch uploads are
multiple grants (one file each) — console multi-select uses sequential
ingest, not a multi-file grant.
Returns upload_url, upload_token, max_bytes, and a
self-deleting Python script. Token is single-use and expires in ~10 min.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| title | Yes | Storage object title | |
| work_id | No | Attach the uploaded Storage object to this work item UUID | |
| filename | No | Optional local filename (script default path + MIME sniff) | |
| parent_id | No | Folder UUID to land the file in (omit or empty = org root). One grant per file. | |
| project_id | No | Attach the uploaded Storage object to this project UUID (kind=artifact) | |
| content_type | No | Optional MIME type hint stored on the grant | |
| upload_base_url | No | Optional server origin (e.g. https://teamshared.com). Defaults to settings.public_url. |
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 and does so: objects remain private until publish, publishing is gated for agent seats, the token is single-use and expires in ~10 minutes, and the returned script is self-deleting. It also discloses the batch semantics (one grant per file) that would otherwise cause failed calls.
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?
Front-loaded and dense with no filler sentences for an operation this complex. A few constructions are compressed to the point of being cryptic, notably 'versioned edit / /s/ publish still use file_upload_request', which costs some readability.
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, yet the description still names the key return fields (upload_url, upload_token, max_bytes, script) and their lifetimes. Privacy model, gating path, attachment semantics, and folder placement are all covered for an 8-parameter mutation-adjacent 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 coverage is 100%, so the baseline is 3; the description adds real meaning on top by explaining that work_id/project_id attach after ingest as kind=artifact, that transcripts must stay on shared files, and that parent_id controls folder placement with one grant per file. It does not add much on agent, filename, content_type, or upload_base_url beyond the schema text.
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?
Opens with a specific verb and resource: 'Mint a one-time uploader script for a private Storage blob (any file type).' It also contrasts itself with the closest sibling, stating that versioned edit and /s/ publish still use file_upload_request, so an agent can distinguish the two without opening either schema.
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?
Explicit routing is given: agents must call request_gated_approval(gate=publish) while human seats call storage_publish; documents/transcripts stay on file_upload_request; batch uploads are multiple single-file grants, not one multi-file grant. It names the alternatives and the conditions that select them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
versionAInspect
Report server + memory-rule version and whether the rule needs updating.
Returns {server_version, rule_version, installed_rule_version, rule_path, rule_update, update_available}. rule_path is the
canonical rule in the teamshared Cursor plugin; Cursor loads it from
there. When update_available is true (the installed rule is missing
or behind), tell the user to update the teamshared plugin. Never write a
local .cursor/rules/teamshared.mdc copy. rule_markdown is also
returned for clients without the plugin, which may put it in their
instructions slot (e.g. AGENTS.md). See the rule's "Staying current".
| Name | Required | Description | Default |
|---|---|---|---|
| installed_rule_version | No | The `version` from your installed teamshared rule's frontmatter (Cursor: the teamshared plugin's rules/teamshared.mdc). Omit if your rule has no version marker. |
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 and does meaningfully more than a bare read: it explains the canonical rule location, the required user-facing action when update_available is true, an explicit prohibition on writing a local copy, and the fallback role of rule_markdown for clients without the plugin. It stops short of explicitly labeling the call as a safe read-only 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?
Purpose is front-loaded, then return keys, then action guidance, then the critical 'never write a local copy' warning. The only mild redundancy is enumerating return keys, which the output schema already covers.
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 the description need not restate returns, yet it does and also supplies post-call decision logic and a safety prohibition. For a single optional-parameter diagnostic tool this is nearly complete; the only gap is the absence of an explicit invocation trigger.
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 100%, so the sole parameter (installed_rule_version) is fully documented in the schema, including its origin and the omit-if-absent case. The description adds no further syntax or format detail beyond that, so the baseline of 3 is appropriate.
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 ('Report') and two resources (server version and memory-rule version) plus the derived question of whether an update is needed. An agent immediately understands this is a diagnostic/version-read tool distinct from any sibling, since no other tool covers version reporting.
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 gives procedural guidance for interpreting results (if update_available, tell the user to update the teamshared plugin) and warns never to write a local rule copy, but it never states when an agent should call this tool versus not calling it. Usage is implied rather than framed as when/when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_add_to_projectBInspect
Add a task to a project (tasks can belong to multiple projects).
Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| work_id | Yes | Work item UUID | |
| project_id | Yes | Project UUID | |
| section_id | No | Optional section UUID |
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. It discloses that the result includes 'org' and 'bound' (some output context), and notes multi-project membership, but it does not reveal permissions, idempotency, side effects, or error behavior. For a mutation tool, this is a significant transparency 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?
The description is very concise—two sentences with no fluff. The main action is front-loaded. The second sentence about the result is cryptic but not verbose. It earns a high score for efficiency, though the cryptic result note could be clearer.
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 an output schema present, return values need not be explained. However, the tool has four parameters (two optional) and no annotations; the description does not explain when to use section_id or agent override, nor does it address idempotency or failure modes. For a mutation tool in a rich context, this is 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?
All four parameters have schema descriptions (coverage 100%), so the schema already documents them. The tool description adds no extra meaning about parameters like agent override or section_id. The baseline 3 is appropriate because the schema covers the 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 opens with a clear verb and resource: 'Add a task to a project.' It also adds the key semantic that tasks can belong to multiple projects, which differentiates it from the sibling work_remove_from_project. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (add a task to a project) and the multi-project note hints at when it's applicable, but it does not explicitly contrast with the sibling work_remove_from_project or state when not to use it. The guidance is implied rather than explicit, so it falls short of a clear when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_closeAInspect
Mark a work item done or cancelled. Result includes org + bound.
If the item's playbook sets artifact_required, closing done is
refused (handoff_required) until the item has an attached artifact
or a comment with a pointer (file:<id>, storage:<id>, a PR URL).
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| work_id | Yes | Work item UUID | |
| work_status | No | done or cancelled | done |
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 supplied, the description carries the full burden and does a fair job: it discloses the playbook-driven refusal, the error code, the accepted pointer formats (file:, storage:, PR URL), and that the result carries org + bound. It omits reversibility (whether a closed item can be reopened) and any permission/auth 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?
Two tight paragraphs, front-loaded with the action and followed by the constraint; nothing is wasted. The reST double-backtick markup adds a little visual noise for an agent reader but does not obscure 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 three-parameter mutation tool with an output schema covering return values, the description supplies the one non-obvious behavior — the artifact precondition and its failure mode. Remaining gaps (reopen semantics, authorization) are secondary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is a 3. The description earns an extra point by resolving an ambiguity in the schema: work_status enumerates seven values, but the text states only done or cancelled apply here, which an agent could not infer from the enum alone. The agent identity override parameter is still unaddressed.
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 and resource ('Mark a work item done or cancelled') and narrows the terminal states, which is more than a restatement of the name. It does not, however, distinguish itself from the sibling work_update, which an agent could plausibly reach for to change status.
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 artifact gate is explained well — done is refused with handoff_required until an artifact or pointer comment exists — which is genuine precondition guidance. But there is no explicit statement of when to choose work_close over work_update, nor when to prefer cancelled over done.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_comment_addCInspect
Add a comment to a work item. Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text (markdown ok) | |
| agent | No | Override agent identity | |
| work_id | Yes | Work item UUID |
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 hints at the result format ('org' + 'bound') but does not explain what these mean, nor does it mention permissions, idempotency, or side effects. The verb 'Add' implies a mutation, but the description does not explicitly confirm write behavior or its consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact—two sentences—with no filler. The first sentence clearly states the action. The second sentence about result is concise but cryptic, slightly reducing clarity without adding bulk. Overall, it is efficient, though the result note could be phrased more meaningfully.
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 operation (3 params, 2 required) with 100% schema coverage, so the description need not elaborate on parameters. An output schema exists (not shown but flagged), which likely explains return fields, reducing the need for description detail. However, the cryptic 'org' and 'bound' reference is a gap—if the output schema does not clarify it, agents may be confused. The description is adequate for a low-complexity tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters (work_id, body, agent) with descriptions. The tool description adds no parameter-specific information; it only mentions 'org' and 'bound' in the result, which is not about parameters. Per the baseline, a 3 is appropriate given full schema 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 states a clear action: 'Add a comment to a work item.' It specifies the verb (add) and resource (work item), which is unambiguous. However, it does not differentiate from sibling tools like work_comment_list, and the cryptic 'Result includes ``org`` + ``bound``' adds confusion rather than clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The natural sibling is work_comment_list, but the description never mentions it, nor any conditions, prerequisites, or exclusions. An agent is left to infer that this tool is for adding, not listing, comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_comment_listAInspect
List comments on a work item (oldest first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| work_id | Yes | Work item UUID |
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 disclosure burden. It states the read-only nature ('List') and the ordering ('oldest first'), which is useful. It does not disclose pagination/limit behavior or whether the listing is flat or hierarchical, though the output schema and limit parameter partially cover operational details.
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, names the resource, and adds the key ordering detail. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one required parameter and an output schema, the description plus schema is nearly sufficient. It identifies the target resource, the ordering, and the only required input. A small gap is the lack of any mention of pagination behavior beyond the schema's limit field.
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 50%: work_id is described as 'Work item UUID', while limit only has type/range/default constraints. The description adds little beyond the schema, tying the action to 'a work item', but the limit parameter's purpose is reasonably inferable from its name and constraints. No severe 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 uses a specific verb and resource: 'List comments on a work item'. It also adds the meaningful ordering detail '(oldest first)', and it is clearly distinguishable from siblings like work_comment_add (creating comments) and work_list (listing work items).
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 obvious: call this when you need the comments attached to a work item. However, the description gives no explicit when/when-not guidance and does not point to alternatives such as work_comment_add for adding comments or work_get for retrieving the work item itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_createAInspect
Create a work item. Created active immediately for humans and agents (no approval queue).
Creating-agent path: omitted priority → skill task-priority-assessment;
omitted due_at → skill task-time-required. The distiller does not fill
these. Console blanks default to priority=normal only. Result includes
org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional workspace slug tag | |
| tags | No | Optional tags | |
| agent | No | Override agent identity | |
| title | Yes | Short task title | |
| due_at | No | Optional due datetime. If omitted, fetch skill task-time-required and pass the computed due_at | |
| github | No | Optional owner/repo tag | |
| part_of | No | Ontology entity this beat belongs to (campaign Project name) | |
| priority | No | urgent, high, normal, low. If the user/packet did not name one, fetch skill task-priority-assessment first — do not silently take the normal default | normal |
| start_at | No | Optional start datetime | |
| item_type | No | task, milestone, or approval | task |
| parent_id | No | Parent task UUID (makes this a subtask) | |
| project_id | No | Add the task to this project UUID | |
| section_id | No | Place in this project section UUID | |
| assignee_id | No | Assignee UUID | |
| description | No | Alias for description_md | |
| work_status | No | Initial workflow status | todo |
| assignee_type | No | Assignee type (user) | |
| initiative_id | No | Optional strategic initiative UUID | |
| playbook_slug | No | Named playbook to inject when agent_run_start(work_id=) spawns (e.g. teamshared-manager). Unset = no inject | |
| assignee_email | No | Assign to org member by email | |
| description_md | No | Optional markdown body | |
| assigned_to_entity | No | Ontology Person or Agent name (graph assigned_to; not assignee_email) |
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 and does disclose meaningful traits: the item is active immediately with no approval queue, the distiller will not auto-fill omitted priority/due_at, and console blanks default only to priority=normal. It omits permissions/auth requirements and any notification side effects, keeping it short of a 5.
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?
Front-loads the core purpose in the first sentence and is compact for a 22-parameter tool. The multi-line 'Creating-agent path' block is efficient, though the stray markdown around ``org`` + ``bound`` is slightly rough.
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 22-param creation tool with an output schema (so return values need no explanation) and no annotations, the description covers the critical behavioral nuances an agent needs: activation, no approval queue, and skill fallbacks for omitted fields. The unmentioned optional parameters are adequately covered by the 100%-coverage schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the param descriptions already instruct fetching the priority/time skills, so the schema does the heavy lifting. The description adds a small nuance about distiller and console default behavior, but does not materially explain the many optional parameters (project_id, section_id, assignee_*, etc.).
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 ('Create a work item') and immediately clarifies the activation semantics ('created active immediately... no approval queue'). It distinguishes the resource from siblings like work_update, work_close, and project_create, though it never names an alternative tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides procedural guidance for the creating-agent path (omitted priority → skill task-priority-assessment; omitted due_at → skill task-time-required), which is useful. However, it gives no when-to-use/when-not-to-use routing versus sibling tools such as project_create or process_run_create, leaving tool selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_dependencies_listAInspect
List what a task is blocked by and what it blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Work item UUID |
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 burden; 'List' implies a non-mutating read, which is the main behavioral fact an agent needs. It adds nothing about pagination, scope limits, or visibility/permission requirements, which is defensible for a trivial read but leaves 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?
One short sentence, front-loaded with the verb and the bidirectional output scope; no filler or restatement of 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?
With an output schema present, the return shape need not be described, and the single parameter is fully documented, so the definition is nearly sufficient. The only shortfall is absent guidance on when this call is preferable to related work_* inspection 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 coverage is 100% with a single documented work_id (UUID), so the schema already carries the load. The phrase 'a task' weakly reinforces that work_id identifies the task, but adds no format or constraint beyond the 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?
States a specific verb (List) and resource (dependencies of a task) with the bidirectional scope spelled out — 'what a task is blocked by and what it blocks.' This clearly separates it from work_dependency_add/work_dependency_remove, though it does not name a sibling explicitly.
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 only implied: the word 'List' and the directional framing suggest a read-only inspection call, but there is no statement of when to reach for this versus work_get, work_subtasks_list, or work_list, and no preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_dependency_addAInspect
Add a dependency: blocker must finish before blocked can proceed.
Pass blocker_id + blocked_id, or equivalently
work_id (blocked) + depends_on_id (blocker). Cycles are
refused — a task cannot become its own (transitive) blocker
(error=cycle / error=self_edge). Result includes
org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| work_id | No | Alias for blocked_id (the task that waits) | |
| blocked_id | No | Task that is blocked | |
| blocker_id | No | Task that must finish first | |
| depends_on_id | No | Alias for blocker_id (the task it waits on) |
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 and does add real behavioral context: it discloses that cycles are refused, that self/transitive edges are rejected, names the error codes (cycle/self_edge), and notes the result fields (org, bound). It stops short of stating auth/permission requirements or rate limits, so it is strong but not exhaustive.
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?
Front-loaded with the core semantic ('blocker must finish before blocked'), then parameters, then validation and result. Every sentence earns its place, though the heavy inline-code formatting makes the middle sentence slightly dense.
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-param tool with an output schema present, the description covers purpose, parameter equivalence, failure modes, and (briefly) result shape. Return-value detail is rightly left to the output schema; the main remaining gap is usage/precondition guidance versus sibling 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 coverage is 100%, so the baseline is 3, but the description adds genuine value by clarifying the aliasing that the schema only lists flatly: it makes explicit that blocker_id+blocked_id and work_id+depends_on_id are equivalent pairings and reinforces which ID is the blocker vs the blocked task.
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 ('Add a dependency') and immediately defines the semantic model (blocker must finish before blocked). The verb distinguishes it from work_dependency_remove and work_dependencies_list among siblings, so an agent can select it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description thoroughly explains how to invoke the tool (two equivalent parameter formulations) but never states when to prefer it over alternatives or any preconditions/exclusions beyond the cycle rule. Usage is implied by the clear purpose rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_dependency_removeCInspect
Remove a task dependency. Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | No | Alias for blocked_id (the task that waits) | |
| blocked_id | No | Blocked task UUID | |
| blocker_id | No | Blocker task UUID | |
| depends_on_id | No | Alias for blocker_id (the task it waits on) |
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. It states the operation is a removal but says nothing about permissions, whether removing a non-existent dependency errors or no-ops, or the effect on linked work. The only behavioral note is the return fields, which duplicates the existing output schema.
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 short sentences, front-loaded with the action and with no padding. The second sentence about return fields is low-value given an output schema exists, which keeps it just short of a 5.
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 tool with no annotations, four all-optional parameters, and two alias pairs, the description should clarify which parameter combination identifies the dependency to remove. It does not, leaving the agent to guess the required pairing from the schema alone.
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 100%, so the schema already documents all four parameters and the alias relationships (work_id=blocked_id, depends_on_id=blocker_id). The description adds no parameter meaning beyond that, so the baseline 3 applies.
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 (remove) and resource (task dependency), so an agent instantly knows this is the inverse of work_dependency_add. However, it never explicitly names the sibling it undoes, so the differentiation is implied rather than stated.
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 prerequisite (does the dependency have to exist?), and no mention of alternatives such as work_dependency_add or work_dependencies_list. The agent must infer everything.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_follower_addBInspect
Add a follower/collaborator to a task by member email.
Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| work_id | Yes | Work item UUID | |
| follower_email | No | Member email to add |
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 burden. It mentions 'Result includes org + bound,' but does not disclose permissions, side effects, duplicate-handling, idempotency, or what 'bound' means, which are important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose and then a brief output note. Every sentence earns its place, and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has a 100% covered schema plus an output schema, so return values need not be explained in detail. However, with no annotations, the description is still missing behavioral context such as permissions or side effects, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters, including follower_email as 'Member email to add.' The description's 'by member email' reinforces follower_email but adds no syntax, format, or constraint detail beyond the 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?
States a specific verb ('Add') and resource ('follower/collaborator to a task'), with the key mechanism ('by member email'). This clearly distinguishes it from the sibling operations work_follower_remove and work_followers_list.
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 says what the tool does but gives no explicit when-to-use guidance, no prerequisites, and no alternatives. It does not explain when to add a follower versus using project_member_add or another membership tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_follower_removeCInspect
Remove a follower from a task by member email.
Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Work item UUID | |
| follower_email | No | Member email to remove |
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 for a mutation tool, yet it discloses no permission requirements, reversibility, or behavior when the address is not currently a follower. The cryptic 'Result includes org + bound' is the only behavioral hint and is too opaque to be actionable.
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 short sentences, front-loaded with the action, no filler. The trailing 'Result includes ``org`` + ``bound``' sentence is oddly formatted and vague, which keeps it from a 5.
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 needn't be explained, yet the description partially and confusingly gestures at them. It also fails to reconcile 'by member email' with a follower_email parameter that is optional and defaults to null, leaving a real gap for a mutation tool with zero annotations.
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 100%, so both parameters are already documented and 3 is the baseline. The description's phrase 'by member email' loosely echoes follower_email but adds no format, null-handling, or work_id semantics beyond the 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?
States a specific verb and resource ('Remove a follower from a task') plus the mechanism ('by member email'), which cleanly separates it from work_follower_add and work_followers_list. It never names an alternative explicitly, so it falls short of full sibling 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?
There is no when-to-use guidance, no prerequisites, and no mention of related siblings. The operation is self-evident from the name, but the description contributes nothing about context, preconditions, or what triggers this call versus managing followers another way.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_followers_listCInspect
List followers/collaborators on a task.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Work item UUID |
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 burden. It never says the operation is read-only, whether it requires access to the work item, whether results are paginated, or whether 'followers' and 'collaborators' are the same set — a real ambiguity given project_member_list exists as a separate concept.
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 short sentence with the resource front-loaded and no filler. It is efficient, though the terseness is part of why usage and behavioral context are missing.
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 need not be explained, and the one required parameter is fully documented in the schema. What is missing is any usage routing against the add/remove siblings and any statement that this is a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single work_id parameter ('Work item UUID'), so the schema already does the work. The description adds no format, scope, or constraint detail beyond it, which is the baseline-3 case.
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 ('List') and resource ('followers/collaborators on a task'), which is enough to separate it from work_follower_add and work_follower_remove by name alone. It does not explicitly name those siblings, but the naming pattern plus the verb makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus work_follower_add/remove, project_member_list, or work_get. The only usage signal is the verb 'List', which is implied rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_getAInspect
Fetch one work item by id, including its cost rollup.
cost sums linked agent runs and process runs: input and output
tokens, USD (an estimate is flagged, never stored as a silent $0),
agent wall-clock time, and human review time kept separate.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Work item UUID |
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, and it does disclose real behavioral semantics: the cost rollup aggregates agent and process runs, sums tokens and USD, flags estimates rather than silently storing $0, and keeps agent wall-clock and human review time separate. It does not cover error behavior for a missing id 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?
The core purpose is front-loaded in the first sentence, with the second paragraph devoted to the cost semantics. That second paragraph is somewhat long for a field whose shape is also covered by the output schema, but it is not wasted text.
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 single-parameter read-by-id tool with an output schema and full schema description coverage, the definition is essentially complete. The only omission is any note on failure mode when the id does not resolve.
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 100% and the single parameter is fully described as 'Work item UUID.' The description's 'by id' merely restates the schema, adding no format or constraint detail beyond it, so the baseline 3 applies.
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 and resource: 'Fetch one work item by id.' The word 'one' and 'by id' implicitly distinguishes it from work_list, but no sibling is named explicitly, so the differentiation is inferred rather than stated.
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 when-to-use guidance, no prerequisites, and does not point to work_list as the discovery path or to work_update/work_close as follow-ups. Usage is only implied by the phrase 'by id'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_listCInspect
List org work items (shared task queue for humans and agents).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Only items carrying this label | |
| mine | No | Only items assigned to the caller (human or agent) | |
| sort | No | Sort key | updated_at |
| limit | No | ||
| offset | No | Pagination offset | |
| compact | No | Omit description_md and actor objects. Keep id, title, work_status, due_at, priority, assignee_label and project names. Console chat turns this on when the argument is omitted | |
| has_due | No | True: only dated items; False: only undated | |
| assignee | No | Filter by user email, agent name, actor id, or 'unassigned'. Names that match nobody return no items | |
| due_from | No | Inclusive start of due_at window (UTC) | |
| sort_dir | No | asc or desc | desc |
| due_until | No | Exclusive end of due_at window (UTC) | |
| item_type | No | Filter: task, milestone, or approval | |
| project_id | No | Filter to work linked to this project UUID | |
| work_status | No | Filter by workflow status | |
| closed_since | No | Also include items closed at or after this instant (UTC) | |
| initiative_id | No | Filter to tasks linked to a strategic initiative UUID | |
| work_statuses | No | Match any of these statuses (e.g. todo, in_progress, blocked) | |
| exclude_closed | No | Omit done/cancelled items (default true) | |
| include_cancelled | No | False drops cancelled items (default true) |
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, yet it discloses nothing about the behavior that matters most here: closed items are excluded by default (exclude_closed=true), cancelled items are still included, pagination defaults to 50/200 cap, and compact mode trims fields. The parenthetical 'shared task queue for humans and agents' adds conceptual context but no operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, which is good, but for a 19-parameter listing tool with non-obvious default exclusions the brevity reads as under-specification rather than disciplined concision.
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 output schema covers return values and the input schema is richly described, but the description omits the behavioural default that most affects results: done/cancelled filtering is governed by exclude_closed (true) and include_cancelled (true), which is easy to misread. For a tool with 19 params and no annotations, the description should do more.
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 95%, so nearly every one of the 19 parameters is already self-documenting (assignee matching rules, due window inclusivity/exclusivity, compact field list). The description adds nothing about parameters, so it sits at the baseline 3 where the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List org work items') and adds a clarifying gloss (shared task queue for humans and agents), which is more informative than the bare tool name. It doesn't explicitly differentiate itself from near-neighbours like project_list, process_run_list, or review_list, so it falls short of a 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 use this tool versus alternatives (e.g. work_get for a single item, project_list for project views), and no mention of prerequisites or typical call patterns. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_moveBInspect
Move a task to a section and/or reorder it within a project.
Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Override agent identity | |
| work_id | Yes | Work item UUID | |
| project_id | Yes | Project UUID | |
| section_id | No | Target section UUID | |
| sort_order | No | Fractional rank within section |
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 core operation but does not mention side effects, permissions, reversibility, or what happens when optional parameters like section_id or sort_order are omitted. The cryptic 'Result includes org + bound' adds little clarity.
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 concise and front-loaded, with the primary action stated in the first sentence. The second sentence about 'org + bound' is cryptic but not verbose; overall, the description is appropriately sized with no wasted words.
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 a complete input schema and an output schema present, the description does not need to explain return values. However, the lack of annotations and absence of usage guidance or behavioral caveats leave some gaps for a mutation tool, especially regarding when to choose this over sibling 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 100%, so the input schema already documents all parameters. The description adds minimal semantic value beyond mentioning 'section' and 'reorder,' which map to section_id and sort_order, but it does not compensate or extend the schema's parameter explanations.
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 ('Move a task to a section and/or reorder it within a project') with a specific verb and resource. It distinguishes the tool from siblings like work_add_to_project and work_remove_from_project by its focus on moving/reordering, though it does not explicitly name 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 a task needs to be moved to a section or reordered within a project. However, it provides no explicit guidance about when not to use it or which sibling tools might be better suited for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_remove_from_projectBInspect
Remove a task from a project. Result includes org + bound.
removed is false when the task was not in that project.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Work item UUID | |
| project_id | Yes | Project UUID |
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 at all, the description carries the full behavioral burden. It does disclose a genuinely useful trait — the non-error outcome where 'removed' is false if the task was not in the project — but says nothing about authorization needs, side effects, or whether the task itself is altered beyond the project association.
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 short sentences with the core action front-loaded and no wasted wording. The residual RST-style double-backtick markup is slightly noisy but does not obscure 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?
An output schema exists, so the description is not obliged to explain return values (though it usefully clarifies the 'removed' flag semantics). For a mutation tool with zero annotation coverage, however, it omits permissions, idempotency, and the relationship to work_add_to_project, leaving real gaps.
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 100% and both UUID parameters are documented in the schema, so the description owes nothing extra. It adds no syntax, format, or validation detail beyond what the schema already supplies, which is the expected baseline.
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 and resource ('Remove a task from a project') so the operation is unambiguous. It does not, however, name or differentiate itself from the obvious inverse sibling work_add_to_project, leaving the routing implicit.
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 guidance, no prerequisites (e.g. required permissions or whether the project must exist), and no mention of the alternative work_add_to_project for the reverse operation. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_subtasks_listBInspect
List subtasks of a work item. Create subtasks via work_create with parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Parent work item UUID |
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 burden, and it discloses almost nothing: no ordering, pagination, or whether closed/archived subtasks are included, and no permission notes. For a no-annotation list tool this leaves real behavioral gaps, though the presence of an output schema softens the return-format omission.
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 short sentences, zero filler, with the core operation stated first and the creation cross-reference second. Every clause 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?
The output schema means return values need not be explained, and the single required parameter is covered, so the core is adequate. Still, for a list tool with no annotations, the description omits collection semantics (ordering, pagination, inclusion of closed subtasks), leaving it minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single work_id parameter is already documented as 'Parent work item UUID'. The description restates this relationship ('subtasks of a work item') but adds no format, scoping, or filtering nuance beyond the schema, so the baseline 3 for a fully documented single-param schema applies.
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 gives a specific verb and resource ('List subtasks of a work item'), so an agent immediately knows this returns the child items of a parent work item rather than the parent itself. It does not explicitly contrast with nearby listing siblings such as work_get, work_list, or work_dependencies_list, so it stops short of full sibling 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 second sentence routes the agent to the correct tool for the inverse operation ('Create subtasks via work_create with parent_id'), which is useful cross-tool guidance. However, there is no explicit when-to-use/when-not guidance relative to alternatives like work_get or work_dependencies_list, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_updateCInspect
Update a work item (status, assignee, priority, parent, due_at, etc.).
Result includes org + bound.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Workspace slug tag | |
| tags | No | Replace tags | |
| agent | No | Override agent identity | |
| title | No | New title | |
| due_at | No | Due datetime. Omit to leave unchanged; use clear_due to unset | |
| github | No | owner/repo tag | |
| work_id | Yes | Work item UUID | |
| priority | No | urgent, high, normal, low | |
| clear_due | No | Clear due_at. Omit due_at to leave the date unchanged | |
| parent_id | No | Parent task UUID (reparent as subtask) | |
| assignee_id | No | Assignee UUID | |
| work_status | No | Workflow status | |
| assignee_type | No | Assignee type (user) | |
| initiative_id | No | Strategic initiative UUID | |
| playbook_slug | No | Named playbook injected on agent_run_start(work_id=). Empty string clears. Omit to leave unchanged | |
| assignee_email | No | Assign to user by email | |
| blocked_reason | No | Why blocked (when status=blocked) | |
| description_md | No | New markdown body |
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 burden for a mutation with 18 parameters. It says nothing about partial-update semantics, required permissions, irreversibility, or empty-string/clear conventions; the only disclosure is a cryptic 'Result includes ``org`` + ``bound``' that is not explained.
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 short sentences, front-loaded with the action and affected fields. The trailing 'Result includes ``org`` + ``bound``' sentence is terse but cryptic and largely redundant given the output schema exists.
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 need not be described, and the schema fully documents the 18 parameters. However, a no-annotation mutation tool with reparenting, status transitions, and field-clearing behavior should at minimum signal update semantics or routing to work_move/work_close.
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 100%, so the schema already documents every parameter, including the important 'Omit to leave unchanged' and 'use clear_due to unset' semantics. The description's field list merely mirrors the schema, so the baseline 3 is appropriate.
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 and resource ('Update a work item') and enumerates representative updatable fields (status, assignee, priority, parent, due_at). It does not distinguish itself from near-siblings like work_move (parent/project changes) or work_close (terminal status), but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. For a tool whose field list overlaps work_move (parent_id), work_close (work_status=done/cancelled), and work_add_to_project (initiative/project), the description never says which sibling to prefer or under what conditions.
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.
3 tool updates
- Changed
evidence_attach2 fields changed- changed
Input schema / properties / kind / descriptionPrevious value: -"file, drive, url, pr, comment, or text"New value: +"file, storage, url, pr, comment, or text" - changed
Input schema / properties / pointer / descriptionPrevious value: -"Pointer: file:<uuid>, drive:<uuid>, pr:<url>, or https://…"New value: +"Pointer: file:<uuid>, storage:<uuid>, pr:<url>, or https://…"
- Changed
evidence_require1 field changed- changed
Input schema / properties / kind / descriptionPrevious value: -"Expected kind: file, drive, url, pr, comment, or text"New value: +"Expected kind: file, storage, url, pr, comment, or text"
- Changed
process_run_create1 field changed- changed
Input schema / properties / playbook_slug / descriptionPrevious value: -"Playbook to launch as a run. tool_recipe.process_steps drive the walk when present; otherwise the skill sequence is used. A playbook with a tool_recipe.process block, or a seed template slug such as claim, opens a long-running instance. Enough on its own — no catalog process required."New value: +"Playbook to launch as a run. tool_recipe.process_steps storage the walk when present; otherwise the skill sequence is used. A playbook with a tool_recipe.process block, or a seed template slug such as claim, opens a long-running instance. Enough on its own — no catalog process required."
3 tool updates
- Added
message_inbox - Added
message_send - Added
message_thread
2 tool updates
- Changed
agent_create1 field changed- added
Input schema / properties / github_grantAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "This agent's GitHub grant (#1379): {repos: [owner/repo, ...], read, write, destructive}, each level off, auto or ask. Repos must be ones the org's GitHub App serves. Omit to keep the org default. Only a person can set it" +}
- Changed
agent_update2 fields changed- added
Input schema / properties / clear_github_grantAdded value: +{ + "default": false, + "description": "Remove the GitHub grant so the agent follows the org default again. Do not also pass github_grant.", + "type": "boolean" +} - added
Input schema / properties / github_grantAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Replace the agent's GitHub grant (#1379): {repos: [owner/repo, ...], read, write, destructive}, each level off, auto or ask. To revoke, set the levels to off. Only a person can set it" +}
1 tool update
- Added
storage_archive
1 tool update
- Changed
github_delete3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Branch name, git ref, or omit when target is repo"New value: +"Branch name or git ref" - changed
Input schema / properties / target / descriptionPrevious value: -"branch, ref, or repo. repo is the run's bound repository"New value: +"branch or ref. The bound repository cannot be deleted" - changed
Input schema / properties / target / enumPrevious value: -[ - "branch", - "ref", - "repo" -]New value: +[ + "branch", + "ref" +]
6 tool updates
- Added
github_close - Added
github_comment - Added
github_delete - Added
github_merge - Added
github_open_pr - Added
github_push
9 tool updates
- Added
github_code_search - Added
github_file_get - Added
github_issue_get - Added
github_issue_list - Added
github_pr_checks - Added
github_pr_get - Added
github_pr_list - Added
github_repo_get - Added
github_tree
3 tool updates
- Changed
agent_run_child1 field changed- changed
Input schema / properties / github / descriptionPrevious value: -"Optional owner/repo checkout; defaults to this run's repo"New value: +"Optional owner/repo checkout; defaults to this run's repo. An explicit, inherited, or code-tagged org-default slug the App does not serve is refused (github_repo_not_bound). A failed installation read refuses a named slug (github_binding_unavailable)"
- Changed
agent_run_start2 fields changed- changed
Input schema / properties / auto_create_pr / descriptionPrevious value: -"Hint to open a PR when a coding worker finishes (default true)"New value: +"Hint to open a PR when a coding worker finishes. Defaults to true when the run checks out a repo, and stays unset when it does not" - changed
Input schema / properties / github / descriptionPrevious value: -"owner/repo — optional checkout for the worker. Omit for a no-repo run"New value: +"owner/repo checkout. Omit on a work item tagged code to use the org's only connected repo (github_repo_list); omit otherwise for a no-repo run. A slug the App does not serve is refused once an installation exists. A failed installation read refuses a named slug (github_binding_unavailable)"
- Added
github_repo_list
1 tool update
- Changed
work_list1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Omit description_md and actor objects. Keep id, title, work_status, due_at, priority, assignee_label and project names. Console chat turns this on when the argument is omitted", + "type": "boolean" +}
1 tool update
- Changed
event_append3 fields changed- changed
Input schema / properties / actor / descriptionPrevious value: -"Optional actor override: human:… / agent:… / computer:…"New value: +"Ignored: the actor is always the caller" - changed
Input schema / properties / on_behalf_of / descriptionPrevious value: -"Optional delegated actor (same dialect as actor)"New value: +"Ignored: set from the caller" - changed
Input schema / properties / type / descriptionPrevious value: -"Dotted event type, e.g. human.update, agent.run.started, or process.run.created"New value: +"Dotted event type, e.g. human.update or agent.run.started. run.*, step.*, process.*, evidence.* and secret.* are server-only"
2 tool updates
- Changed
agent_run_start2 fields changed- changed
Input schema / properties / parent_run_id / descriptionPrevious value: -"Parent agent run UUID when this is a nested child run; defaults to the run that invoked this tool"New value: +"Parent agent run UUID when this is a nested child run. From inside a run, that run is the parent. With no calling run, the id must be a run in this org" - changed
Input schema / properties / tools / descriptionPrevious value: -"Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default."New value: +"Tool name/prefix patterns this run may bind (e.g. ['work_*','memory_recall']). Narrows the box allowlist; never widens it. Omit for the deployment default. From inside a run, the list cannot exceed that run's tools."
- Changed
memory_agent_set1 field changed- changed
Input schema / properties / agent / descriptionPrevious value: -"Override agent attribution label"New value: +"Override the attribution label. Does not choose which profile is written."
3 tool updates
- Changed
agent_create1 field changed- added
Input schema / properties / mcp_serversAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "External MCP servers this agent's runs may call (#1264): objects with name, url (https), optional tools (allowlist), secret (vault secret name, never a token) and enabled. Offered only when the run's tool allowlist grants them (all, mcp, or ext_<name>__*)" +}
- Changed
agent_run_start1 field changed- added
Input schema / properties / runtimeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Every value starts a TeamShared Cloud Agent on the in-box worker. Omit it, or pass cloud or teamshared. cursor, cursor_cloud, and cursor-cloud are refused with runtime_disabled while TEAMSHARED_CURSOR_CLOUD_RUNTIME_ENABLED is off; with the flag on those names still run on the same TeamShared worker." +}
- Changed
agent_update1 field changed- added
Input schema / properties / mcp_serversAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Replace the agent's external MCP servers (#1264); [] clears. Objects with name, url (https), optional tools (allowlist), secret (vault secret name, never a token) and enabled. Offered only when the run's tool allowlist grants them (all, mcp, or ext_<name>__*)" +}
3 tool updates
- Changed
agent_create2 fields changed- added
Input schema / properties / budget_periodAdded value: +{ + "anyOf": [ + { + "enum": [ + "day", + "week", + "month" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "UTC window the cap resets on: day, week (Monday) or month" +} - added
Input schema / properties / budget_usdAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Spend cap in USD for this agent (decimal, \"0\" blocks every new run). Set it with budget_period, or omit both for no cap." +}
- Changed
agent_run_start1 field changed- changed
Input schema / properties / agent_slug / descriptionPrevious value: -"Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused."New value: +"Agent record to run as (agent-<label> or <label>; see agent_list). The run inherits the record's model and tools: an explicit model= wins, an explicit tools= can only narrow the agent's. Unknown, paused or archived agents are refused. A record that has spent its budget_usd cap for the current period is refused with agent_budget_exceeded; a run already going is left to finish."
- Changed
agent_update3 fields changed- added
Input schema / properties / budget_periodAdded value: +{ + "anyOf": [ + { + "enum": [ + "day", + "week", + "month" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "day, week (Monday) or month, UTC. Omit to leave it." +} - added
Input schema / properties / budget_usdAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "New spend cap in USD. Omit to leave it. \"0\" blocks every new run. Set with budget_period when the agent has no cap yet." +} - added
Input schema / properties / clear_budgetAdded value: +{ + "default": false, + "description": "Remove the spend cap. Do not also pass budget_usd or budget_period.", + "type": "boolean" +}
80 tool updates
- Added
agent_create - Added
agent_get - Added
agent_list - Added
agent_routine_list - Added
agent_routine_set - Added
agent_run_child - Added
agent_run_trace_get - Added
agent_update - Removed
call_tool - Added
context_retrieve - Added
file_archive - Added
file_unpublish - Added
file_version_delete - Added
glian_run_now - Added
glian_set_paused - Added
glian_status - Added
memory_action_apply - Added
memory_action_log_list - Added
memory_capture_inventory - Added
memory_distill_scorecard - Added
memory_episodes_list - Added
memory_forget - Added
memory_forget_procedure - Added
memory_forget_skill - Added
memory_graph_relate - Added
memory_graph_related - Added
memory_ontology_kind_meta_set - Added
memory_ontology_kind_stats - Added
memory_ontology_link_type_set - Added
memory_ontology_list - Added
memory_ontology_merge_entities - Added
memory_ontology_object_kind_set - Added
memory_ontology_propose_entity - Added
memory_ontology_rekind_entity - Added
memory_ontology_schema_policy_set - Added
memory_session_get - Added
memory_state_get - Added
memory_state_set - Added
memory_strategic_entity_get - Added
memory_strategic_initiative_set - Added
memory_strategic_initiative_update - Added
memory_strategic_key_result_set - Added
memory_strategic_key_result_update - Added
memory_strategic_objective_set - Added
memory_strategic_objective_status_list - Added
memory_strategic_objective_status_post - Added
memory_strategic_objective_update - Added
memory_strategic_plan_close - Added
memory_strategic_plan_get - Added
memory_strategic_plan_list - Added
memory_strategic_plan_set - Added
memory_strategic_statement_get - Added
memory_strategic_statement_set - Added
memory_unshare - Added
memory_write_policy_set - Added
org_automation_get - Added
org_automation_set - Added
project_archive - Added
project_member_add - Added
project_member_list - Added
project_member_remove - Added
project_section_add - Added
project_section_list - Added
project_status_list - Added
project_update - Added
review_decide - Added
review_list - Added
review_policy_set - Removed
search_tools - Added
secret_describe - Added
secret_list - Added
storage_unlink - Added
storage_unpublish - Added
work_dependencies_list - Added
work_dependency_add - Added
work_dependency_remove - Added
work_follower_add - Added
work_follower_remove - Added
work_followers_list - Added
work_subtasks_list
1 tool update
- Changed
process_run_create2 fields changed- changed
Input schema / properties / playbook_slug / descriptionPrevious value: -"Playbook to launch as a run. tool_recipe.process_steps drive the walk when present; otherwise the skill sequence is used. Enough on its own — no catalog process required."New value: +"Playbook to launch as a run. tool_recipe.process_steps drive the walk when present; otherwise the skill sequence is used. A playbook with a tool_recipe.process block, or a seed template slug such as claim, opens a long-running instance. Enough on its own — no catalog process required." - removed
Input schema / properties / templateRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Open an instance from a process template (e.g. claim). The template is frozen into the run, which starts in its first stage. Replaces process / playbook_slug." -}
2 tool updates
- Changed
process_run_list2 fields changed- added
Input schema / properties / project_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Filter by the project the run belongs to (UUID)" +} - added
Input schema / properties / work_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Filter by the linked work item (UUID)" +}
- Added
process_template
Related MCP Connectors
Shared memory for AI coding agents. Save once, reuse from Cursor, Claude Code, Codex.
One shared brain for your AI coding agents: team memory, agent Q&A, tasks, and file claims.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Shared project memory for coding agents: decisions, lessons, guardrails and tasks per repository.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceShared memory for AI coding agents. Save once, reuse from Cursor, Claude Code, Codex.MIT
- AlicenseNot gradedqualityCmaintenanceGives multiple AI coding agents a shared, persistent memory by indexing your code and documentation into a vector database with AST-aware chunking and hybrid semantic/keyword search. Agents can search across projects and store, update, or forget decisions, conventions and lessons learned, all self-hosted with local embeddings.MIT
- AlicenseNot gradedqualityCmaintenancePersistent shared memory for AI coding agents that turns a folder of markdown files into searchable memory across sessions, repos, and machines.12 npmFunctional Source , Version 1.1, MIT Future
- AlicenseAqualityDmaintenancePersistent shared memory for AI coding agents. Stores facts as entity/key/value triples with hybrid semantic search, task checkpoints, and conflict resolution — shared across Claude Code, Codex CLI, and GitHub Copilot.16235 npm5AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.