Orbit
Server Details
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
- Status
- Healthy
- Uptime
- 11.3% over 21 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Noveum/orbit
- GitHub Stars
- 30
TDQS
Scored across 92 tools
Several tools have overlapping purposes, most notably list_milestones vs list_project_milestones, list_notifications vs list_inbox_conversations, and list_attachments vs list_issue_attachments. Descriptions help in some cases, but with 92 tools an agent is likely to pick the wrong one for milestone listing, inbox reads, or attachment retrieval.
The overwhelming majority of tools follow a clear verb_noun pattern such as create_issue, update_issue, archive_doc, and list_projects. The main inconsistency is the cycle/sprint vocabulary mismatch (create_cycle vs delete_sprint) plus a few noun-noun exceptions like cycle_progress and project_progress, but these are minor deviations in an otherwise predictable set.
At 92 tools, the surface is extremely large and far beyond the 3-15 tool sweet spot. Even a comprehensive product would struggle to justify this many entry points, and agents face a high selection burden.
The tool set covers the major lifecycles well: issues, sprints, projects, docs, teams, members, views, milestones, labels, attachments, notifications, and GitHub associations all have create/read/update/archive/delete operations where appropriate. Notable minor gaps include no unarchive_project and no delete_attachment, but agents can generally work around these.
Available Tools
92 toolsactive_cycleGet the active sprintARead-onlyIdempotentInspect
Return the sprint this workspace is currently running, or null when none is open.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds the null return behavior, which is a useful behavioral detail beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the 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 concise sentence that is front-loaded with the action and resource. 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?
For a zero-parameter getter with annotations covering safety, the description is fully complete. It specifies what is returned and the null case, and there is no missing information an agent would need 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?
There are zero parameters, so the description has nothing to explain. The baseline for 0 params is 4, and the description correctly omits any parameter discussion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('return') and resource ('sprint'), and clarifies it refers to the currently running sprint, distinguishing it from sibling tools like list_cycles. It also mentions the null case, which further pins down the behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear from the purpose: if you need the current sprint, use this. However, it does not explicitly mention alternatives or exclusion conditions, such as 'for all sprints use list_cycles'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_commentComment on an issueAInspect
Post a markdown comment on an issue, optionally as a reply to another comment.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Markdown body of the comment. | |
| issue | Yes | An issue identifier like "ENG-42", or an issue id. | |
| replyTo | No | Id of the comment being replied to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent, non-destructive action Themes. The description adds that the body is markdown and that replyTo makes it a reply, but it does not disclose any additional behavioral traits such as permissions, duplicate-creation behavior, or side effects beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loading the core action and then the optional reply behavior. 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?
For a low-complexity create operation with complete schema coverage, useful annotations, and no output schema, the description covers the essential behavior and optional reply case. No critical operational detail appears to be 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, issue, and replyTo. The description restates the markdown nature of the body and the reply behavior, which aligns with the schema but adds little new meaning 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 uses a specific verb ('Post') and resource ('markdown comment on an issue'), and optionally clarifies the reply behavior. This clearly distinguishes it from siblings like comment_on_doc (which targets docs) and edit_comment/delete_comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: posting a markdown comment on an issue, optionally as a reply. It does not explicitly name alternatives or exclusions, but the resource distinction from comment_on_doc is evident from the wording and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_team_memberAdd somebody to a teamAInspect
Put a workspace member on a team so they see its issues and sprints.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | Team key like "ENG", team name, or team id. | |
| person | Yes | Person name, handle, email, id, or "me". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations by explaining the consequence of the action: the member gains access to the team's issues and sprints. It does not detail error cases or side effects, but the annotation flags already cover mutability, idempotence, and destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. The action is stated first and the outcome is appended 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 two-parameter mutation tool with fully documented schema parameters, the description is sufficiently complete. It names the operation and its practical effect; only explicit return-value behavior or permission requirements 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 description coverage is 100%, with clear descriptions for both 'team' and 'person' including accepted formats. The tool description does not add parameter-level detail beyond what the schema already 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?
The description uses a specific verb and resource: 'Put a workspace member on a team' and explains the intended effect 'so they see its issues and sprints.' This clearly distinguishes the action from sibling tools like remove_team_member or invite_member.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: the person is already a workspace member and the goal is granting them team-level visibility. It does not explicitly list when-not-to-use it or point to invite_member as the alternative, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_docArchive a documentADestructiveInspect
Archive a document so it leaves the sidebar and the default listings. The content is kept.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark the operation destructive (destructiveHint=true), and the description adds an important clarification that content is kept, thereby softening the destructive signal and describing the side effect of leaving the sidebar/listings. It doesn't mention reversibility or permissions, but the added context is meaningful.
Agents need to know what a tool does to the 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 no filler: the action is stated first, followed by the two key effects (removal from UI listings and content retention).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 clear schema, the description covers the operation's outcome and non-destructive nature. It doesn't describe the return value or how to undo, but these are not necessary for a correct invocation of this simple 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?
The schema already documents the single parameter clearly as a document ID or exact title, with 100% coverage. The description adds no additional parameter semantics, 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 ('Archive'), names the resource ('a document'), and states observable effects: it leaves the sidebar and default listings while content is kept. This clearly distinguishes archive_doc from delete_doc and aligns with unarchive_doc as the inverse 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?
It gives clear context for when to use the tool: when the goal is to remove a document from the sidebar and default listings without deleting its content. It stops short of explicitly naming alternatives such as delete_doc or unarchive_doc, but the behavioral cues make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_issueArchive an issueADestructiveInspect
Archive an issue so it leaves the board and the default lists. Use delete_issue to remove it for good.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | An issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive, and the description adds useful context about what archiving does to the issue: it leaves the board and default lists. It does not mention reversibility via unarchive_issue, but the core behavioral effect is 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 short sentences with no wasted words. The core behavior is stated first, and the alternative tool is mentioned second, making it easy to scan and 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 one-parameter tool with no output schema, the description fully covers what the agent needs to know: what archiving does, how it differs from deleting, and what input is required. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete documentation for the single 'issue' parameter with a clear example. Since schema description coverage is 100%, the description does not need to add parameter-level detail, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the action: 'Archive an issue so it leaves the board and the default lists.' It names a specific verb and resource entity, and immediately differentiates itself from delete_issue, which is the key sibling to distinguish against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the effect of archiving and points to delete_issue as the alternative when permanent removal is intended. This gives the agent a direct decision rule for choosing between archive and delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_projectArchive a projectADestructiveInspect
Archive a project so it leaves the active lists. Its issues are kept.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description adds meaningful context by specifying that issues are kept and the project only leaves active lists. This clarifies the actual scope of the destructive operation beyond the raw annotation.
Agents need to know what a tool does to the 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 deliver the essential information with no filler. The key behavioral guarantee ('leaves the active lists', 'issues are kept') is front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one simple parameter, no output schema, and adequate annotations, the description covers the essential call-time knowledge: what it does and what it preserves. It does not discuss reversibility or side effects on other project resources, but that is a minor gap 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?
The schema already fully documents the single parameter with a clear description ('Project name, slug or id.'). The tool description adds no additional parameter-level detail, so the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Archive a project'), the resource, and the concrete effect: it leaves the active lists while keeping issues. This distinguishes it from delete_project (which would destroy) and from archive_doc/archive_issue, which target different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 want the project out of active lists but still want its issues retained. However, it does not explicitly tell the agent when to choose this over delete_project or update_project, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_fileAttach a fileAInspect
Upload a file and attach it to an issue, a comment, a doc or a project. Returns a url you can put in markdown, for example .
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The file bytes, base64 encoded, up to 4MB decoded. | |
| fileName | Yes | Name to store the file under. | |
| parentId | Yes | Id of the issue, comment, doc or project. Issue identifiers are not accepted. | |
| parentType | Yes | What the file hangs off. | |
| contentType | Yes | Mime type, for example "image/png". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (mutation) and destructiveHint=false, so the safety profile is known. The description adds the return URL behavior and its markdown usage, which is a useful behavioral note, but it doesn't disclose permissions, reversibility, or side effects. No contradiction with annotations.
Agents need to know what a tool does to the 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 sentence plus a return-format note, front-loaded with the verb and target types. Every word earns its place, with no filler or redundancy. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with 100% schema coverage and no output schema, the description provides the essential purpose and return format. It doesn't cover edge cases (e.g., ID restrictions), but those are in the schema. Given annotations, this is adequately complete 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 coverage is 100%, with each parameter having a description. The tool description only reiterates the parent types from the enum and does not add meaning beyond the schema. Baseline 3 is appropriate since the schema carries the 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 ('upload and attach') with a clear resource ('file') and target types ('issue, comment, doc or project'). It also specifies the return output (a markdown URL), making its purpose unambiguous and distinct from sibling tools like list_attachments or read_attachment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by stating the action, but it does not explicitly contrast with alternatives or provide when-to-use/when-not-to-use guidance. For instance, it doesn't differentiate when to attach vs. list or read attachments. The intent is clear but relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comment_on_docComment on a documentBInspect
Add a Markdown comment to a document.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. | |
| body | Yes | Markdown body. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is not read-only, not idempotent, and not destructive. The description adds the 'Markdown' detail and makes the mutating nature explicit with 'Add,' which is consistent with the annotations. No deeper behavioral context, such as whether the comment is appended or how the comment is stored, is provided.
Agents need to know what a tool does to the 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 conveys the verb, target, and content format with no wasted words. It is appropriately concise for the simplicity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 write operation, the description combined with the rich schema and annotations is nearly complete. It tells the agent what to do and the schema fully defines the parameters; the main missing piece is routing guidance among related comment tools, which is captured separately 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?
Input schema documentation coverage is 100%, with both 'doc' and 'body' described. The description adds no parameter-specific meaning beyond what the schema already 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?
The description states a specific verb ('Add'), a resource ('a document'), and the format ('Markdown comment'), making the tool's function clear. It distinguishes itself from sibling tools like add_comment by specifying the target is a document, though it does not explicitly name or contrast 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?
There is no guidance on when to use this tool versus alternatives such as add_comment, edit_comment, or list_doc_comments. The description implies usage for adding a comment to a document but provides no exclusions or decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_cycleComplete a sprintADestructiveInspect
Close a sprint. Whatever is unfinished rolls into the next sprint rather than being left behind.
| Name | Required | Description | Default |
|---|---|---|---|
| cycleId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true, so the description only needed to add useful context. It does so by disclosing that unfinished work rolls into the next sprint rather than being left behind, which is the key behavioral consequence beyond the annotation. It could mention reversibility or permissions, but the core destructive trait is already 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 with the primary action front-loaded. The second sentence earns its place by explaining what happens to unfinished work. There is no filler or 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?
For a one-parameter destructive close operation, the description plus destructiveHint and the self-explanatory cycleId provide enough to call the tool correctly. The main gap is orienting the agent against related cycle/sprint tools, but that is more of a usage-guidance issue than an invocation blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions cycleId directly. 'Close a sprint' lets an agent infer that cycleId identifies the sprint, but it adds no explicit parameter meaning, format guidance, or value constraints. Because the schema is bare and the description does not compensate, this is below 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 uses a specific verb and resource: 'Close a sprint.' This clearly distinguishes completion/closure from sibling actions such as start_cycle, create_cycle, update_cycle, and delete_sprint. The title 'Complete a sprint' reinforces the lifecycle 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 phrase 'Close a sprint' implies this is for ending a sprint, and the second sentence explains the rollover consequence. However, the description does not explicitly say when to prefer this over related tools like update_cycle or start_cycle, and it offers no exclusions or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_branch_nameGet the git branch name for an issueARead-onlyIdempotentInspect
Return the git branch name Orbit uses for an issue, in the form handle/eng-42-short-title.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | An issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety. The description adds value by specifying the output format and that the name follows Orbit's convention, which is beyond the annotations. It doesn't describe error cases, but for a read-only lookup this is sufficient.
Agents need to know what a tool does to the 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. It front-loads the action and includes the essential output format 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 simple read-only tool with one parameter and no output schema, the description is complete: it states the purpose, the parameter (via schema), and the output format. Annotations cover safety. Minor gaps like error handling aren't necessary 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% – the 'issue' parameter is clearly described as an identifier like 'ENG-42' or an issue id. The description adds no further parameter semantics, 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 verb ('Return') and resource ('git branch name Orbit uses for an issue'), and gives the exact output format ('handle/eng-42-short-title'). This clearly distinguishes it from any sibling tools, none of which return branch 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 purpose is self-evident: use when you need the git branch name for an issue. It doesn't explicitly mention alternatives or when not to use it, but given the unique function, the context is clear enough. No exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cycleCreate a sprintAInspect
Open a new sprint (cycle) for a team over a date range. Send neither date and the server appends a one week sprint straight after the last one the team has.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| team | Yes | Team key like "ENG", team name, or team id. | |
| endsAt | No | ISO timestamp or date the sprint closes. Defaults to one week after it opens. | |
| startsAt | No | ISO timestamp or date the sprint opens. Defaults to after the last sprint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only basic flags (not read-only, not idempotent), so the description carries the burden. It discloses the key default behavior when no dates are sent, but does not explain what happens when only one date is provided, what the response contains, or any side effects. This is a 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?
The description is two sentences with no fluff. The primary action is front-loaded ('Open a new sprint...'), followed by a concise clarification of the default behavior. 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 the tool's moderate complexity (4 params, no output schema, minimal annotations), the description covers the core purpose and a critical default behavior. It lacks information about the return value and edge cases, but for a create operation this is reasonably complete for an agent 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 coverage is 75% with descriptions for team, startsAt, and endsAt, but name has none. The description adds the combined behavior of omitting both dates, which clarifies the relationship between startsAt and endsAt, but it doesn't explain the name parameter or provide additional parameter-level 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 clearly states the tool opens a new sprint (cycle) for a team over a date range, using a specific verb and resource. However, it doesn't explicitly differentiate from sibling tools like start_cycle or update_cycle, though the verb 'create' in the name and title 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?
The description implies usage for creating a new sprint and provides a specific invocation pattern (sending neither date) that triggers a default one-week sprint appended after the last one. It does not offer exclusions or alternatives, such as when to use start_cycle instead, so guidance is only partially explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_docCreate a documentAInspect
Create a document with a Markdown body or a self-contained HTML page. File it under a collection, attach it to a project, or nest it under a parent document. A document lives in a collection or in a project, never both.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | markdown for a normal doc, html for a self-contained HTML page. | |
| title | Yes | Document title. | |
| parent | No | Parent document, making this a nested page. It inherits the parent home. | |
| content | No | Markdown body, or the full HTML page when kind is html. | |
| project | No | Project name, slug or id. | |
| collection | No | Collection to file the document under. Detaches it from any project. | |
| visibility | No | Who can reach the document. "workspace" is in-app, "members" is a signed-in published URL, "link" and "public" are on the web. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a key behavioral constraint not present in the annotations: 'A document lives in a collection or in a project, never both.' It also clarifies the content modality options. It does not cover permissions or side effects, but the annotations already signal this is a mutating, non-destructive 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 sentences with no filler. The first sentence states the purpose, the second covers placement options, and the third states the key constraint. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter create tool, the description plus the fully documented schema covers most agent needs. Minor gaps remain: it does not describe the response/returned document identifier, and it does not clarify behavior when optional fields like kind or content are omitted.
Complex tools with many parameters or behaviors need more documentation. 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 cross-parameter semantics: the exclusivity of collection vs project, the nesting relationship via parent, and the mapping of kind/content to Markdown or HTML. This goes beyond the field-level 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 uses a specific verb and resource ('Create a document') and immediately spells out the two body formats (Markdown or HTML) and the three filing options (collection, project, parent). This clearly distinguishes it from sibling tools like create_doc_collection or update_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear context for when to use the tool: creating a document and optionally placing it under a collection, project, or parent doc. It does not explicitly name alternative tools or say when not to use it, so it stops short of a 5, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_doc_collectionCreate a document collectionBInspect
Create a folder that documents can be filed under.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Lucide icon name. | |
| name | Yes | Collection name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive, so the safety profile is covered. However, the description adds no additional behavioral detail such as side effects, required permissions, or implications of creating a collection. It merely restates the operation in simpler terms.
Agents need to know what a tool does to the 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 or redundant detail. Every word contributes to conveying the purpose, and the analogy to a folder makes it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 create tool with no output schema, the description is minimally adequate. It conveys the core concept but omits any context about naming conventions, whether collections have hierarchy, or how collections relate to other entities. Given the tool's simplicity, this is acceptable but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. 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 (name and icon) are fully documented. The description adds only the conceptual 'folder' metaphor, which adds marginal meaning but does not elaborate on parameter formats, optionality, or constraints 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 uses a specific verb ('Create') and resource ('document collection' described as a folder). The phrase 'documents can be filed under' clearly distinguishes this from creating a document (create_doc) by implying a container role, even 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?
No guidance is given about when to use this tool versus alternatives like create_doc, update_doc_collection, or delete_doc_collection. There are no prerequisites, exclusions, or context about typical use cases, leaving the agent to infer from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueCreate an issueAInspect
Create an issue on a team. The workflow state defaults to the team first unstarted state. Returns the new issue with its identifier such as "ENG-42".
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | Team key like "ENG", team name, or team id. | |
| cycle | No | Sprint name, number, id, or "active" for the running sprint. | |
| state | No | Workflow state name or id on that team. | |
| title | Yes | One line summary of the work. | |
| labels | No | Label names or ids. Replaces the labels already on the issue. | |
| parent | No | Parent issue, making this a sub issue. | |
| dueDate | No | Due date as YYYY-MM-DD. | |
| project | No | Project name, slug or id. | |
| assignee | No | Assignee name, handle, email, id, or "me". | |
| estimate | No | Estimate points. | |
| priority | No | Issue priority, from "urgent" down to "low". | |
| reviewers | No | Reviewer names, handles, emails, ids, or "me". Replaces the reviewer list. | |
| description | No | Markdown body of the issue. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining that the workflow state defaults to the team's first unstarted state and that the tool returns the new issue with an identifier like 'ENG-42'. Annotations only indicate non-readonly, non-idempotent, non-destructive, leaving these specific behaviors undisclosed; the description fills that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core purpose is front-loaded, followed by the most important behavioral nuance (state default) and the return value. Every sentence contributes actionable 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?
Given the 13 optional/required parameters, the schema itself is comprehensive, so the description does not need to repeat them. It covers the key non-obvious behaviors: default state and return identifier. The only minor gap is the lack of explicit guidance on choosing this over related issue tools, but the tool can still be invoked correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. 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 enriches the semantics of the optional 'state' parameter by specifying the default behavior when it is omitted: the team's first unstarted state. It also explains the output identifier, which helps the agent understand what to expect. This goes beyond the schema's parameter 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 opens with a specific verb and resource: 'Create an issue on a team.' It clearly identifies the action (create) and the target (an issue), and is easily distinguished from sibling tools like create_doc, create_project, or update_issue. The added scope 'on a team' further clarifies the primary input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: you create a new issue when you need a new issue on a team. However, it does not explicitly state when not to use it, nor does it point to alternatives like update_issue for existing issues or archive_issue for closing them. The context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_labelCreate a labelAInspect
Create a label that can be applied to issues. Pass a team to keep the label on that team only, otherwise it is available across the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name. | |
| team | No | Team key, name or id to restrict the label to. Null or omitted keeps it workspace wide. | |
| color | No | Hex colour such as "#7c3aed". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only set readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false. The description adds the team scoping behavior (workspace-wide vs team-specific) which is beyond annotations and useful. However, it does not disclose error handling (e.g., duplicate name) or idempotency, which are common gaps for a create operation. It adds some behavioral value but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and then the key behavioral nuance. Every sentence earns its place, with no redundancy or filler. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 create tool with three parameters and no output schema, the description covers the purpose and the critical team scoping behavior. It does not mention duplicate name handling or the response object, but these are not essential given the schema and annotations. Overall, it is sufficiently complete 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 coverage is 100% for all three parameters, so the baseline is 3. The description clarifies the team parameter's effect (restricting to team vs workspace-wide) which slightly adds value beyond the schema's description, but it does not elaborate on name or color semantics. The added value is minimal, so 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 clearly states the tool creates a label and explicitly says it can be applied to issues, distinguishing it from other creation tools like create_state or create_team. It is specific about the resource and does not merely restate the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it creates a label and explains the team scoping option. It does not explicitly name alternatives like update_label or delete_label, but the create action is self-evident and the team behavior clarifies when to use this tool. There are no exclusions stated, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_milestoneCreate a milestoneAInspect
Add a milestone to a project so work can be grouped towards a date.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| project | Yes | Project name, slug, or id. | |
| targetDate | No | YYYY-MM-DD. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a non-read-only, non-idempotent, and non-destructive operation. The description adds conceptual context about grouping work toward a date but does not disclose further behavioral details such as duplicate behavior, permissions, or required project existence.
Agents need to know what a tool does to the 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 that front-loads the core action and purpose. There is no wasted wording or redundancy, apart from the title, which is fine.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 create operation with schema-documented parameters and no output schema, the description is largely sufficient. It could be slightly more complete by referencing the targetDate parameter or noting that the named project must already exist, but these are minor 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 50%, with project and targetDate already documented. The description helps clarify that 'name' is the milestone's name and that the milestone belongs to a project, but it does not add much meaning beyond the schema for the remaining 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 action ('Add') and resource ('a milestone to a project') and explains the purpose ('so work can be grouped towards a date'). This clearly distinguishes it from sibling tools like update_milestone, delete_milestone, and reorder_milestones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage is implied through the verb 'Add': this tool is for creating a milestone in a project. However, there is no explicit guidance about when not to use it or how it compares with related tools such as update_milestone or reorder_milestones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate a projectAInspect
Create a project and optionally attach it to one or more teams. Requires a role that can manage projects.
| Name | Required | Description | Default |
|---|---|---|---|
| lead | No | Lead name, handle, email, id, or "me". | |
| name | Yes | Project name. | |
| teams | No | Teams that own the project. | |
| health | No | Current health signal. | |
| status | No | Delivery status. | |
| summary | No | One line summary. | |
| startDate | No | Start date as YYYY-MM-DD. | |
| targetDate | No | Target date as YYYY-MM-DD. | |
| description | No | Markdown brief. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-idempotent write operation. The description adds an authorization requirement ('Requires a role that can manage projects') and the optional side effect of attaching teams, which are not captured in annotations.
Agents need to know what a tool does to the 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 no filler. The core action is front-loaded and the permission caveat is delivered efficiently in the second 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?
For a 9-parameter mutation with no output schema, the description covers selection context, the optional teams behavior, and the permission prerequisite. It does not mention return values or duplicate/conflict behavior, but the schema and annotations cover most invocation details.
Complex tools with many parameters or behaviors need more documentation. 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 9 parameters are fully described in the schema (100% coverage), so the description adds little beyond noting that teams can be attached. The schema carries the descriptive load, meeting the baseline without adding significant extra 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?
States the specific verb 'Create' with the resource 'project' and adds the optional team-attachment behavior. This clearly distinguishes it from siblings like update_project, archive_project, and list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 obvious use—creating a new project—and provides a prerequisite ('Requires a role that can manage projects'). However, it does not explicitly state when not to use it or name alternatives such as update_project for modifying an existing project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_stateCreate a workflow stateAInspect
Add a status to a team board. The category drives what the product infers from it, so pick the one that matches the meaning. The new status lands at the end; use reorder_states to place it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Status name such as "Blocked". | |
| team | Yes | A team key like "ENG", a team name, or a team id. | |
| color | No | Hex colour such as "#7c3aed". | |
| category | Yes | Which lifecycle stage this status means. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds useful behavioral context: the category drives product inference, and the new status lands at the end. This goes beyond the annotations and helps the agent understand 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?
Three sentences, each earning its place: what it does, why category matters, and where the new status lands with a pointer to reorder_states. No fluff, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 create tool with no output schema, the description covers the key behavioral aspects: category semantics and default placement. It doesn't mention return value or error cases, but those are less critical for a create operation with full schema coverage. The pointer to reorder_states completes the workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds meaning for 'category' by explaining it drives product inference, which is valuable. However, it doesn't add much for name, team, or color beyond what the schema provides. 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 uses a specific verb ('Add') and resource ('status to a team board'), and clarifies that it creates a workflow state. It distinguishes itself from siblings like update_state, delete_state, and reorder_states by noting the new status lands at the end and pointing to reorder_states for placement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: it's for adding a status to a team board, and it explicitly says to use reorder_states to place it. It doesn't explicitly mention when not to use it versus update_state or delete_state, but the context is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_teamCreate a teamAInspect
Create a team with its own issue prefix, default workflow states and first sprint.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Issue prefix such as "ENG". Uppercase letters and digits. | |
| name | Yes | Team name. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds that the team is created with specific features (issue prefix, workflow states, sprint), which is useful context but does not go beyond what the annotations imply about the creation action. No contradictions found.
Agents need to know what a tool does to the 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 wasted words, and the core action is front-loaded. It is 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?
For a creation tool with three parameters and no output schema, the description is reasonably complete. It informs the agent what the team will include, which is sufficient for a standard create operation. It does not cover potential error cases or side effects, but those are not critical for basic 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 67% (key and name are described; description param is not). The description mentions 'issue prefix' which maps to the key parameter, but the schema already provides that context. The description does not add any parameter-specific detail beyond the schema, so it contributes minimal value 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?
The description uses the verb 'Create' with the resource 'team' and adds specific details (issue prefix, default workflow states, first sprint) that distinguish it from sibling creation tools like create_issue or create_project. It clearly communicates what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is clear enough that an agent knows to use it for team creation, but there is no explicit guidance on when to use it versus alternatives, or any prerequisites or exclusions. Siblings like update_team and list_teams exist, but the description doesn't address them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_viewCreate a saved viewAInspect
Save a filtered issue view. Call list_views first and copy the filter of a view that already works. The saved view state. Conditions live under filter.filter.children, each one {"kind":"condition","property":"priority","operator":"in","values":["1"]}. Other keys are teamId, projectId, groupBy, subGroupBy, orderBy, layout, display, visibility, locked and position. A key this list does not name is rejected rather than dropped. The reply says how many conditions were stored, so check it matches what you sent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | View name. | |
| filter | Yes | The saved view state. Conditions live under filter.filter.children, each one {"kind":"condition","property":"priority","operator":"in","values":["1"]}. Other keys are teamId, projectId, groupBy, subGroupBy, orderBy, layout, display, visibility, locked and position. A key this list does not name is rejected rather than dropped. | |
| layout | No | ||
| shared | No | Share the view with the whole workspace. | |
| groupBy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses strict unknown-key rejection ('A key this list does not name is rejected rather than dropped') and response-checking behavior ('The reply says how many conditions were stored, so check it matches what you sent'). These add real behavioral expectations not present in the annotation booleans.
Agents need to know what a tool does to the 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, usage, structure, strictness, and verification are all covered in a compact sequence, with the main instruction front-loaded. The fragment 'The saved view state.' is awkward, and some filter details duplicate the schema, but the complexity of the nested object justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested filter object, lack of output schema, and mutation semantics, the description provides enough structure and caveats to call the tool successfully. It lists allowed keys, warns against unknown keys, and advises verifying the reply count. It does not provide a full example, but the list_views copy workflow compensates.
Complex tools with many parameters or behaviors need more documentation. 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 filter structure, and the description reinforces it while adding the practical instruction to copy an existing working filter. This helps an agent construct a valid filter. It adds less guidance for name, layout, groupBy, and shared, but the 60% schema coverage plus the copy-from-list_views workflow mitigates that 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 opens with 'Save a filtered issue view,' a specific verb and resource that clearly identifies the creation action. It is distinguishable from siblings like update_view and delete_view, and the title reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit instructional context: 'Call list_views first and copy the filter of a view that already works.' This is clear practical guidance, though it does not explicitly contrast with update_view for modifying existing views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cycle_progressGet sprint progressARead-onlyIdempotentInspect
Return scope, started, completed and cancelled counts for a sprint, the same totals in points, what was added or removed while it ran, and a day by day burn up series carrying both the scope and the completed work.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Sprint name, number, id, or "active". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the exact output structure (counts, points, changes, burn-up series), giving the agent a clear expectation of what data will be returned without needing 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?
The description is a single, dense sentence that front-loads the purpose and lists the returned data concisely. It is not overly long or verbose, though it could be broken into a list for readability. Overall, it is 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?
With no output schema, the description carries the full burden of explaining return values. It does so thoroughly: counts, points totals, added/removed items, and a day-by-day burn-up series. It covers the key aspects an agent needs to know to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the only parameter 'cycle' with 'Sprint name, number, id, or "active"' (100% coverage). The description adds no additional meaning about the parameter. Per the rubric, with high schema coverage, the baseline score is 3, and the description does not go 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 states a specific verb ('Return') and resource ('sprint progress'), and enumerates the exact data provided: scope, started, completed, cancelled counts, points totals, additions/removals, and a burn-up series. This clearly distinguishes it from sibling tools like project_progress or active_cycle, which have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 state when to use this tool versus alternatives. It implies usage from the title 'Get sprint progress', but there is no guidance on when this is preferable to project_progress, list_cycles, or get_analytics_overview. No exclusions or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentDelete a commentADestructiveInspect
Remove a comment from an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| commentId | Yes | The comment id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive write. The description adds no additional behavioral context such as irreversibility, permission requirements, or effects on related data. It merely restates the action without enriching the annotation-provided safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no filler. It front-loads the core action and scope ('Remove a comment from an issue.') and wastes no words, making it highly concise and 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?
Given the tool's low complexity (one simple parameter, no output schema) and that annotations already cover destructiveness, the description is sufficiently complete for an agent to understand the action. It could mention permanence or failure modes, but the existing annotation and schema fill most gaps, making the description adequate for a simple 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?
The input schema fully documents the single parameter commentId with a clear description, achieving 100% schema coverage. The tool description adds no extra meaning about the parameter, so it does not elevate beyond the schema baseline. Since the schema already handles it, a score 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 'Remove a comment from an issue.' states a specific verb and resource, clearly distinguishing it from sibling tools like delete_doc_comment by specifying 'from an issue'. It is unambiguous and immediately conveys the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for issue comments but provides no explicit guidance on when to prefer this over alternatives like edit_comment or delete_doc_comment. The context of 'from an issue' hints at the correct domain, but there is no stated exclusion or conditional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_docDelete a document for goodADestructiveInspect
Delete a document permanently. Pages nested under it are lifted to its own place rather than deleted. Use archive_doc to hide a document instead of destroying it.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's confirmation of permanence adds value. The description goes beyond annotations by disclosing that nested pages are 'lifted to its own place rather than deleted,' which is a non-obvious behavioral consequence. This is valuable context beyond the structured hints.
Agents need to know what a tool does to the 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 concise sentences with no filler. The main action is front-loaded, the nested-page behavior is stated efficiently, and the alternative tool is mentioned in a separate sentence. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations already covering destructive behavior, the description covers the key aspects: permanence, nested-page handling, and the archive alternative. It does not mention permissions or other side effects, but those are not necessary for a simple delete operation given the annotations and schema. The description is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter with a clear description ('A document id, or its exact title'). The tool description adds no additional parameter guidance, so it relies on the schema. Given the high schema coverage, a baseline score 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 clearly states the primary action—'Delete a document permanently'—which matches the title and adds the specific nuance of permanence. It also differentiates from the sibling archive_doc by naming it explicitly and contrasting the outcomes. This leaves no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus an alternative: 'Use archive_doc to hide a document instead of destroying it.' This directly instructs the agent to choose the appropriate sibling based on intent, making the usage context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_doc_collectionDelete a document collectionADestructiveInspect
Delete a folder. The documents inside stay in the workspace but lose their collection link unless you reassign them to another collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | A collection id, or its name. | |
| reassignTo | No | Collection the documents inside should move to. Omit to leave them unfiled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the safety profile is known. The description adds valuable behavioral nuance: documents inside are not deleted, they lose the collection link unless reassigned via reassignTo. This goes beyond the annotation and clarifies the non-recursive nature of the deletion, which is critical for an agent to predict 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 two sentences with no filler. The core action is front-loaded, followed by the most important side effect. However, the first sentence 'Delete a folder' is slightly imprecise and could be tightened to 'Delete a document collection' for consistency. Overall, it is concise and structured well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive tool with two parameters, one required, and no output schema, the description covers the essential behavior: what happens to documents when the collection is deleted. It also implies the optional reassignTo parameter. The annotations supply the destructive hint, so the description complements rather than repeats. No missing information critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents both parameters. The description adds a sentence about reassigning documents, which directly relates to the reassignTo parameter, providing behavioral context but no additional syntax or format details. It slightly enhances understanding but the schema carries the main load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Delete a folder') and the resource (folder/collection), though 'folder' is imprecise given the tool name and schema use 'collection'. It distinguishes from other delete_* tools by specifying the resource type and adds a key side effect about documents retaining their workspace position. The purpose is clear enough for an agent to identify the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (when you want to delete a collection) but does not explicitly contrast with alternatives like delete_doc or update_doc_collection. It does not mention when not to use this tool, such as when documents themselves need deletion. The context is adequate but lacks explicit routing to or away from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_doc_commentDelete a document commentBDestructiveInspect
Remove a comment from a document.
| Name | Required | Description | Default |
|---|---|---|---|
| commentId | Yes | The comment id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint: true already discloses the destructive nature, and the description ('Remove') is consistent with that. However, it adds no extra behavioral context such as permanence, cascade effects, or failure conditions. With annotations present, the bar is lower, but the description contributes nothing beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the verb and clearly states the action. Ideal for quick parsing by 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?
For a simple delete operation with one parameter and destructive annotation, the description covers the core requirement. It lacks minor context like whether the user needs permission or if the comment must exist, but these are not critical for a tool of this simplicity. The output schema absence is acceptable for a 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?
The schema provides full description of the sole parameter commentId ('The comment id.'). The description adds no additional meaning or format details. 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 the action ('Remove') and the resource ('a comment from a document'), which is distinct from the title. However, it does not differentiate from sibling tools like delete_comment, leaving the agent to infer the difference. The purpose is unambiguous but lacks 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 guidance on when to use this tool versus delete_comment or edit_doc_comment. No context is given about the intended scope (e.g., only document comments vs. issue comments) or any prerequisites. The agent must rely on the name alone to decide, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issueDelete an issueADestructiveInspect
Permanently delete an issue and everything attached to it. This cannot be undone; prefer archive_issue.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | An issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-idempotent, so the description adds meaningful context by specifying that attached content is deleted and that the action is irreversible. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The most important facts—permanence, scope, and the preferred alternative—are packed efficiently and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter destructive tool, the description is complete enough. The schema covers the parameter, annotations cover the safety profile, and the description covers what is destroyed and the alternative. No output schema is needed for this kind of action.
Complex tools with many parameters or behaviors need more documentation. 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 only one parameter and the schema already describes it fully, including an example format and the fallback to an issue id. The description adds no parameter-level detail, but the schema coverage is 100%, 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 clearly states a specific action (permanently delete), a resource (an issue), and the scope of destruction (everything attached to it). It distinguishes itself from archive_issue, its closest sibling, by highlighting irreversibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 names archive_issue as the preferred alternative and warns that this operation cannot be undone. It does not spell out the exact condition for choosing delete over archive, but the permanence warning makes the tradeoff clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_labelDelete a labelADestructiveInspect
Remove a label from the workspace and from every issue carrying it.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Label name or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation destructive and non-idempotent. The description adds important behavioral context by disclosing the cascade effect: removing the label from every issue that carries it. This goes beyond the annotation hints and clarifies the real scope of the destructive action.
Agents need to know what a tool does to the 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, direct sentence that front-loads the action and scope. Every word earns its place; there is no filler or repetition of the 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?
For a simple one-parameter destructive tool, the description covers what is removed, the cascade effect, and the parameter is fully documented in the schema. Annotations cover safety, and no output schema is present, so 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?
The schema documents the single parameter 'label' with the description 'Label name or id', achieving 100% coverage. The description does not add additional parameter semantics, so the baseline score 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 'Remove' with a clear resource 'label' and states the full scope: the workspace and every issue carrying it. This clearly distinguishes it from sibling tools like create_label, update_label, and list_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool should be used (when a label needs to be permanently removed), but it does not explicitly mention alternatives or exclusions. The sibling list provides context, but the description itself offers no guidance on choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_milestoneDelete a milestoneADestructiveInspect
Remove a milestone. Its issues survive but lose the milestone link.
| Name | Required | Description | Default |
|---|---|---|---|
| milestoneId | Yes | The milestone id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description correctly adds more value by explaining the precise consequence: issues survive but lose the milestone link. This is critical non-obvious behavior that the annotations alone do not convey.
Agents need to know what a tool does to the 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 no fluff. The primary action is front-loaded, and the side effect is stated concisely right after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive operation, the description fully covers what the tool does, what happens to related issues, and what input is needed. The annotations fill in the remaining safety profile, so nothing necessary 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% and the param description 'The milestone id.' is sufficient. The tool description does not add new semantics for the parameter, 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 'Remove' with a concrete resource 'a milestone', making the purpose immediately obvious. It also distinguishes itself from sibling delete tools (e.g., delete_sprint, delete_issue) by naming its unique effect on issues, so an agent can tell it apart without opening other definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to remove a milestone while keeping its issues intact. It does not explicitly name alternatives or exclusions, but the side-effect statement implies the appropriate scenario where 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.
delete_projectDelete a projectADestructiveInspect
Permanently delete a project. Its issues survive but lose their project link. Prefer archive_project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description's 'Permanently delete' aligns with that. The description adds valuable context beyond annotations: issues survive but lose their project link. This is a meaningful behavioral disclosure. It doesn't mention irreversibility explicitly, but 'permanently' covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The key behavioral fact ('permanently delete') is front-loaded, and the alternative is stated concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive tool with annotations covering the destructive nature, the description is nearly complete. It explains the consequence for issues and routes to the preferred alternative. It could mention that deletion is irreversible, but 'permanently' implies that.
Complex tools with many parameters or behaviors need more documentation. 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 the 'project' parameter. The description doesn't add parameter-specific details beyond what the schema provides, but the baseline of 3 is appropriate since the schema fully covers 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 states a specific verb ('Permanently delete') and resource ('a project'), and explicitly distinguishes it from the sibling archive_project. It also clarifies the consequence for issues, which is a key differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 says 'Prefer archive_project', which tells the agent when not to use this tool and points to the alternative. This is clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sprintDelete a sprintADestructiveInspect
Remove a sprint. Its issues survive and fall back to no sprint, which is what descoping a cancelled sprint needs.
| Name | Required | Description | Default |
|---|---|---|---|
| sprint | Yes | Sprint name, number or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the description adds valuable context beyond that by specifying the non-destructive effect on issues: they survive and fall back to no sprint. This explains the precise outcome, which is crucial for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that front-load the primary action and then provide essential consequence and rationale. No redundant phrases 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?
For a single-parameter delete with no output schema, the description covers the primary behavior and the critical consequence (issues surviving). It could mention error cases or idempotency, but these are less critical given the destructive annotation.
Complex tools with many parameters or behaviors need more documentation. 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 the sprint parameter described as 'Sprint name, number or id.' The description adds no extra parameter nuances, so it meets the baseline expected when the schema carries the full documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action 'Remove' and resource 'sprint', and the added clause about issues surviving clarifies the exact effect, distinguishing it from other delete_* tools that might cascade or destroy related 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?
Provides a clear use case: 'which is what descoping a cancelled sprint needs' – indicating when this tool is appropriate. However, it does not explicitly mention alternatives or when not to use it, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_stateDelete a workflow stateADestructiveInspect
Remove a status from a team board. A status that still holds issues is refused unless moveTo names another status on the same team to carry them.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | A team key like "ENG", a team name, or a team id. | |
| state | Yes | A workflow state name or id on that team. | |
| moveTo | No | The status the issues in it move to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows the operation is destructive. The description adds valuable behavioral context: that a state holding issues is refused unless moveTo names another status on the same team. This goes beyond the annotations and helps the agent anticipate failure conditions and 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 sentences, both directly informative. The first sentence states the core purpose, the second adds a critical constraint. No filler, no repetition of schema information, and the key behavior 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 destructive operation with three parameters (one optional) and no output schema, the description covers the essential behavior and the key exception. It does not mention permissions or side effects beyond the refusal condition, but given the annotations already convey destructiveness, this is adequate. The description is complete enough for an agent to understand the tool's contract without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for all three parameters with basic descriptions, but the description adds meaning by clarifying the conditional requirement for moveTo (required when the state holds issues) and the constraint that it must be on the same team. This contextual information is not present in the schema and helps the agent construct valid calls.
Input schemas describe structure but not intent. Descriptions should explain 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 pair, 'Remove a status from a team board', which precisely identifies the tool's action and target. It also distinguishes it from sibling delete tools (delete_issue, delete_project, etc.) by explicitly scoping it to workflow states on a team board. The sentence about refusal conditions adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention when to prefer this tool over alternatives like update_state or reorder_states, nor does it state any exclusion criteria. The purpose is clear enough to imply usage, but there is no direct guidance on alternative selection or when not to use it. The only guidance is about the moveTo parameter, which is more behavioral than usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_viewDelete a saved viewCDestructiveInspect
Remove a saved view.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | View name or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, so the agent knows the operation is destructive. The description adds no additional behavioral context, such as irreversibility, side effects on dependent views, or confirmation requirements. It merely restates the action without enriching the safety profile beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is efficiently phrased, though it borders on being a tautology. The structure is front-loaded with the action, but it lacks any elaboration that would justify a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a destructive operation with one parameter and no output schema, the description is minimal but incomplete. It does not state whether deletion is permanent, what happens if the view does not exist, or whether it affects other objects. The annotation covers the destructive nature, but the description itself adds little beyond that, leaving gaps in behavioral understanding for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the 'view' parameter ('View name or id.') with 100% schema coverage. The tool description does not add any additional meaning or constraints about the parameter, such as format, uniqueness, or how to obtain valid values. Baseline of 3 is appropriate since the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain 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 'Remove a saved view' is essentially a synonym for the title 'Delete a saved view'. It clearly identifies the verb and resource but adds no specificity beyond the title, such as whether the deletion is permanent or affects associated data. It does not distinguish itself from siblings because there is no other view-deletion tool, but it also does not clarify scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisites, consequences, or when a different action (e.g., update_view or archive) would be more appropriate. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_commentEdit an issue commentADestructiveInspect
Rewrite the body of a comment this user wrote on an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Replacement Markdown body. | |
| commentId | Yes | The comment id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutating/destructive behavior (readOnlyHint=false, destructiveHint=true), so the description does not need to restate that. It adds an ownership constraint ('this user wrote') that is not captured in the schema or annotations, adding some behavioral context. No additional side effects, rate limits, or irreversibility details are given.
Agents need to know what a tool does to the 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 that front-loads the action and scope with no filler. It earns its place and remains readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with destructive annotations, the description plus schema covers the essential calling context. It does not describe the return value or side effects beyond body replacement, but that is a minor gap for this simple 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%, with both commentId and body already described meaningfully. The description adds no parameter-level nuance beyond saying the body is rewritten, which matches 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 names the exact action ('Rewrite'), the resource ('body of a comment'), and the scope ('this user wrote on an issue'). This distinguishes it from delete_comment and edit_doc_comment without needing 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?
It clearly conveys this is for replacing the body of an existing issue comment, and the 'this user wrote' qualifier tells the agent it applies to the user's own comments. It does not explicitly name alternatives or when-not-to-use, but the issue-comment scope makes the context clear among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_doc_commentEdit a document commentADestructiveInspect
Rewrite the body of a comment this user wrote on a document.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Replacement Markdown body. | |
| commentId | Yes | The comment id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, so the description need not restate that this is a mutation. The description adds the constraint 'this user wrote' (implying ownership), which is useful. However, it does not mention potential side effects, permissions required, or whether the comment must exist. With annotations covering the destructive nature, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without fluff, front-loading the action. It is efficient and easy to parse, though it could be slightly more informative about alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low complexity (two parameters, no output schema, no nested objects), the description and annotations together are sufficient for an agent to call it correctly. It lacks explicit mention of preconditions (e.g., comment must exist, user must be author), but those are implied by 'this user wrote' and the schema's required body. The ownership scope is the main added context, and 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 the schema already documents both parameters ('Replacement Markdown body' and 'The comment id'). The description adds no extra semantic detail 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 states a specific verb ('Rewrite') and a clear resource ('the body of a comment this user wrote on a document'), which distinguishes it from comment creation and deletion. However, it does not explicitly differentiate from the sibling 'edit_comment', which likely performs a similar function on issues, so it is clear but not fully 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?
The description implies usage for editing a comment's body, but it does not explicitly state when to use this tool versus alternatives like 'edit_comment' or 'delete_comment'. The restriction to 'this user wrote' provides some context but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analytics_overviewGet Analytics OverviewARead-onlyIdempotentInspect
Retrieve a high-level analytics overview of the workspace. Use this to answer questions about throughput, median cycle time, blocked work, and current WIP. You can filter the time range and choose to measure by issues or points.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | The time period to analyze. | auto |
| measure | No | Whether to calculate metrics using issue counts or estimated story points. | issues |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds analytical scope but no additional behavioral traits such as auth requirements, rate limits, or return format details. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, then concrete use cases, then parameter capabilities. The description is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only analytics tool with no output schema, the description adequately conveys what data it returns and when to use it. It could be more explicit about the output shape, but the 'overview' phrasing and metric list make the tool usable without that 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 description coverage is 100% and both parameters have clear enums and descriptions. The description's mention of filtering time range and measuring by issues or points echoes the schema without adding meaningful new semantics 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 states a specific verb ('Retrieve'), a specific resource ('high-level analytics overview of the workspace'), and lists concrete metrics the tool covers (throughput, median cycle time, blocked work, current WIP). This clearly distinguishes it from sibling progress and list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'Use this to answer questions about...' followed by concrete metric types. It does not name sibling alternatives or state when not to use it, so it falls just 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.
get_docRead a documentARead-onlyIdempotentInspect
Return a document with its full body. A markdown document returns Markdown, an html document returns the whole HTML page. The kind field says which.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by explaining that the full body is returned and that output format depends on document kind, with a kind field indicating it. The annotations already cover read-only, idempotent, non-destructive behavior, so this added return-format context earns a strong 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?
Two sentences deliver the core behavior without filler. The key idea, returning the full body, is front-loaded, and the format clarification is concise and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-parameter read tool, the description is complete: it explains what is returned, how format varies, and that a kind field disambiguates. The schema documents the parameter and the annotations cover the safety profile, 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 param schema already states that the value is a document id or exact title. The tool description adds no additional meaning about the parameter, so the baseline score 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 clear verb and resource: return a document with its full body, and it adds format-specific details. It does not explicitly differentiate itself from sibling tools like list_docs or read_attachment, 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 read intent is clear and implies when to use it, but there is no explicit guidance about alternatives or when not to use it. An agent is left to infer that this tool is for fetching a single document body rather than listing or searching documents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueGet an issueARead-onlyIdempotentInspect
Fetch one issue by identifier such as "ENG-42" or by id, including its description, labels and relations.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | An issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the response includes description, labels, and relations, which is useful but not essential. It does not mention auth, rate limits, or other behaviors, but given the annotations, the bar is met. No contradiction with annotations.
Agents need to know what a tool does to the 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 wasted words. It front-loads the action and resource, then lists the returned fields. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-parameter, read-only tool with no output schema, the description is sufficiently complete. It specifies the purpose, the identifier, and the included fields. It could mention that it returns a single object, but that is implied by 'one issue'. The annotations cover safety, so 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 coverage is 100% with a clear description for the 'issue' parameter. The tool description restates the identifier formats but adds no new semantics beyond what the schema provides. Baseline of 3 is appropriate when the schema fully documents 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 states the action ('Fetch') and the resource ('one issue'), and specifies the identifier formats ('ENG-42' or by id). It also mentions the included fields (description, labels, relations), distinguishing it from sibling tools like list_issues or search_issues that operate on collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicates when to use this tool: when you need a single issue by identifier. It does not explicitly mention alternatives or exclusions, but the specificity of 'one issue' implies it is for individual retrieval rather than listing or searching. Given the large sibling list, a note about using list_issues for multiple issues would strengthen it, but the current wording is unambiguous enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meGet the current identityARead-onlyIdempotentInspect
Return the Orbit user, workspace, role and teams authorized by the OAuth grant. Call this first to learn which teams you may write to.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds context beyond that: it specifies the exact data returned (user, workspace, role, teams) and the authorization basis (OAuth grant). This enriches the agent's understanding of what to expect without contradicting the annotations.
Agents need to know what a tool does to the 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 exactly two sentences: the first states the core functionality, the second provides a pragmatic usage instruction. No filler words, no redundancy, and the most critical information (what it returns) 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 zero-parameter, read-only introspection tool with rich safe-operation annotations, the description fully covers what an agent needs: what data is returned and when to call it first. There is no missing information that would prevent 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?
The tool has zero parameters, so the baseline per rubric is 4. The description adds no parameter-specific details, which is fine because there are none to document. The schema fully covers the empty parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the specific resource: 'Orbit user, workspace, role and teams authorized by the OAuth grant.' It also indicates the primary purpose ('Call this first to learn which teams you may write to'), which distinguishes it from all sibling tools that operate on other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs 'Call this first to learn which teams you may write to,' which is a clear when-to-use guidance. It does not mention alternatives, but given the tool is uniquely for identity retrieval, alternatives are not applicable. The guidance is explicit enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_instructionsGet workspace instructionsARead-onlyIdempotentInspect
Return the current workspace guidance for connected agents. This is advisory context, not a permission boundary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value beyond annotations by clarifying the advisory nature of the content and explicitly stating it is not a permission boundary—critical context for an agent deciding how to act on the returned instructions. This is a meaningful addition that prevents misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and resource are front-loaded in the first sentence, and the second adds a crucial qualifier. Every word earns its place, making this an exemplary concise definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (no parameters, no output schema) and the strong annotation coverage, the description is nearly complete. It covers what the tool does and the interpretive caveat. A slight gap is the lack of detail on what the 'workspace guidance' actually contains or its format, but for a read-only getter this is minor and unlikely to hinder 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?
There are zero parameters, so schema coverage is trivially 100%. Per the rubric, a baseline of 4 applies when no parameters exist, and the description correctly avoids inventing parameter details. Nothing further is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('current workspace guidance for connected agents'), making the tool's purpose unambiguous. It is clearly distinct from the many list/get siblings because it addresses workspace instructions rather than project data. The phrasing 'workspace guidance' is specific enough to convey intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by clarifying that the returned guidance is advisory and not a permission boundary, which helps the agent interpret the output correctly. While it does not explicitly state when to use this tool versus alternatives, there are no obvious sibling tools with overlapping function, so the need is implied. The absence of exclusions or alternative references is acceptable given the uniqueness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_memberInvite someone to the workspaceAInspect
Create a pending workspace invitation for an email address. This tool does not send an invitation email. Requires a role that can invite members. Only admins can invite admins.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role the invitee joins with. | member |
| Yes | Email address to invite. | ||
| teams | No | Teams to add them to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses important behavioral details: the invitation remains pending, no email is sent, and admin invites are restricted to admins. These traits materially affect expectations and are not inferable from the schema or annotations 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?
Three short sentences with no wasted words. The core action, a key non-behavior (no email), and permission constraints are all front-loaded and each 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 three-parameter tool with no output schema, the description covers the essential purpose, side-effect profile, and authorization requirements. It leaves minor edge cases unspecified, such as duplicate invites or the acceptance flow, but those are not necessary for correctly invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying role-based permission semantics that the schema does not encode, specifically that only admins can invite admins. It does not need to repeat the schema's documentation of email, role, or teams.
Input schemas describe structure but not intent. Descriptions should explain 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 pending workspace invitation for an email address.' It is clearly distinct from sibling tools like add_team_member because it focuses on a pending workspace-level invitation rather than adding an existing member to a team. The additional clarification that no invitation email is sent further sharpens the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when creating a pending invitation by email. It also states authorization requirements, including 'Requires a role that can invite members' and 'Only admins can invite admins.' It does not explicitly name alternative tools or exclusion conditions, but the context is strong enough for an agent to make a correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_github_repositoryAssociate a GitHub repositoryAInspect
Associate a connected repository with a project, or with the whole workspace when no project is given. A project may have many repositories and a repository may serve many projects. Associating also starts watching the repository, which is what lets its pull request and check events reach Orbit.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project name or id to associate the repository with. Null or omitted associates it with the whole workspace instead, which is what you want when a repository serves more than one project. | |
| repository | Yes | Repository full name like "Noveum/orbit", or the GitHub repository id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint=false) and not destructive. The description adds a valuable side effect: 'Associating also starts watching the repository, which is what lets its pull request and check events reach Orbit.' This goes beyond annotations and helps the agent understand the non-obvious consequence.
Agents need to know what a tool does to the 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 redundant words. The main purpose is front-loaded, and the side effect is mentioned succinctly. It earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, the workspace vs. project distinction, and the watching side effect. It doesn't mention error conditions or return values, but given the lack of output schema and the simple nature of the operation, it is adequately complete for an agent 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%, with both parameters having detailed descriptions. The tool description does not add new parameter semantics beyond what the schema already provides; it only reiterates the workspace vs. project distinction, which is already in the project parameter description. 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: 'Associate a connected repository with a project, or with the whole workspace when no project is given.' It uses a specific verb and resource, and distinguishes from siblings like unlink_github_repository and list_github_repositories by focusing on the association 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 usage context: it explains the two modes (with project vs. whole workspace) and the many-to-many relationship. It doesn't explicitly contrast with alternatives, but the conditions for use are clear from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_attachmentsList the files on anythingARead-onlyIdempotentInspect
Files attached to one issue, comment, doc or project. Use list_issue_attachments for an issue, since that one also covers files attached to its comments. This is for docs and projects.
| Name | Required | Description | Default |
|---|---|---|---|
| parentId | Yes | Id of the issue, comment, doc or project. Issue identifiers are not accepted. | |
| parentType | Yes | What the files hang off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, idempotentHint, and destructiveHint, so the description only needs to add behavioral nuance. It adds the comment-coverage distinction versus list_issue_attachments, but it does not describe return format or whether results are limited to direct attachments, so the added transparency is moderate.
Agents need to know what a tool does to the 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 carry the purpose, the routing alternative, and the intended scope with virtually no filler. It is slightly less crisp than ideal because the first and third sentences overlap in scope, but each sentence contributes 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 simple read-only list with two fully documented parameters and strong annotations, the description covers the main selection decision. It does not specify return shape, but with no output schema and a straightforward list resource this is an acceptable gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema fully documents both parameters (100% coverage), so the baseline is 3 and the description does not need to restate them. The description does not add parameter-level details, and the schema's parentId note ('Issue identifiers are not accepted') is left unresolved 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?
Description states a clear action and resource: it lists files attached to an issue, comment, doc, or project, and names the sibling tool that should be used for issues. It stops short of 5 because the final sentence, 'This is for docs and projects,' slightly muddles the scope after the first sentence explicitly included comments and issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tells the agent to use list_issue_attachments for an issue because that tool also covers issue comments. This is strong routing guidance, but it does not fully explain when to choose this tool for comments, and the final sentence only loosely states the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cyclesList sprintsARead-onlyIdempotentInspect
List the sprints of this workspace in number order.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds scope ('of this workspace') and ordering ('number order'), which are useful behavioral details. However, it does not disclose return format, pagination, or whether archived sprints are included, which would be helpful for a list operation with no 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?
The description is a single, focused sentence that directly states the operation, scope, and ordering. Every word contributes value with no filler or repetition of the 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?
For a simple list operation, the description is adequate but leaves gaps: it does not specify what fields each sprint object contains, whether the list is paginated, or if any filtering options exist. Given the absence of an output schema, these details would help an agent fully anticipate the response, but the core functionality 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 tool has zero parameters, so the schema carries no semantic burden. The description correctly avoids inventing parameters. Per calibration, a zero-parameter tool gets a baseline of 4, and the description adds no conflicting or redundant parameter 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 clearly states the action (List) and the resource (sprints of this workspace), and adds ordering (number order). It is unambiguous and distinct from sibling tools like create_cycle or update_cycle, which are mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool's purpose is self-evident as a read-only list operation. While it does not explicitly mention alternatives or exclusions, the context of sibling tools makes it clear that this is the canonical way to retrieve all sprints. There are no other list_* tools for cycles, so no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_collectionsList document collectionsARead-onlyIdempotentInspect
Return the folders documents can be filed under, with how many documents each holds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the behavior that it returns folders with counts, but does not disclose other behavioral traits such as sorting, pagination, or whether empty collections are included.
Agents need to know what a tool does to the 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 states the core purpose first and the count detail second, making it optimally concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, read-only list tool with no output schema, the description adequately conveys the return value (folders and their counts). Minor ambiguity remains about whether archived/empty collections are included and the exact result structure, but these are not critical for a 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?
The tool has zero parameters, and the schema confirms this with no properties. With no parameters to explain, the description carries no parameter burden, and the baseline for 0 params is 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 uses a specific verb ('Return') and resource ('folders documents can be filed under') plus the count detail, making its purpose unambiguous. It is clearly distinct from sibling list_docs (which lists documents) and the doc_collection mutation 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?
Usage is implied: an agent would call this when needing the list of document collections and their document counts. However, the description provides no explicit when-to-use/when-not-to-use guidance or alternatives, though the zero-parameter design makes selection straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_commentsList comments on a documentBRead-onlyIdempotentInspect
Return the comment thread on a document, oldest first.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the description's burden is lower. It adds the meaningful behavior that results are ordered oldest first and presented as a thread, but it does not disclose pagination, return shape, or 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?
One short, front-loaded sentence states the resource and ordering without filler. Every word contributes, and there is no redundant restatement of the 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?
For a single-parameter, read-only list operation with full schema coverage and safety annotations, the description is nearly sufficient: it names the resource, ordering, and the fact that a thread is returned. It would be complete with a bit more detail on the response shape or pagination, but given the low complexity 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?
Schema description coverage is 100%, with the sole parameter `doc` fully described as either an id or exact title. The description adds no parameter-specific detail beyond the schema, so it meets baseline but does not elevate 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 uses a specific verb ('Return') and resource ('comment thread on a document'), and adds an ordering constraint ('oldest first'). It clearly points at document comments rather than issue comments, though it does not explicitly differentiate itself from siblings like list_issue_comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 for when to use this tool vs alternatives such as list_issue_comments, get_doc, or comment_on_doc. An agent must infer from the name/resource semantics; there are no explicit exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docsList documentsARead-onlyIdempotentInspect
List the documents this user can read, in the order they sit in the sidebar, or by relevance when you pass a query. Filter by a project, by a collection, or to the documents in no collection at all.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Match against title and body. | |
| project | No | Project name, slug or id. | |
| unfiled | No | Only documents that sit in no collection. | |
| collection | No | Only documents filed under this collection. | |
| includeArchived | No | Include archived documents. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds behavioral details: the ordering behavior (sidebar vs relevance) and the 'user can read' permission scope, which are useful beyond the schema. It doesn't contradict annotations and adds context about the tool's 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?
Two sentences with no fluff. The primary purpose and ordering behavior are front-loaded, followed by a compact list of filter options. 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?
For a list tool with 5 optional parameters and no output schema, the description covers the main usage scenarios: listing all readable docs, ordering, and filtering. It doesn't mention pagination, default exclusion of archived docs (though there's an includeArchived param), or return format, but these are not critical given the annotations cover safety and the schema documents parameters. It's reasonably 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 all parameters are documented in the schema. The description adds the relevance-ordering effect of the query parameter and mentions the filter dimensions (project, collection, unfiled) which align with the params, but it doesn't go into syntax or format details. This is a slight addition over the schema, but not substantial.
Input schemas describe structure but not intent. Descriptions should explain 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 documents) and the resource (documents this user can read), plus ordering criteria (sidebar or relevance) and filters. It clearly distinguishes from siblings like list_doc_collections and list_doc_comments by focusing on the document list 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?
It gives context on ordering and filter options, and implies it's the right tool for retrieving readable documents. However, it doesn't explicitly mention alternatives or when not to use it, such as 'use search_issues for issues' or 'use get_doc for a single document.' It provides clear usage context but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_github_repositoriesList connected GitHub repositoriesARead-onlyIdempotentInspect
Every repository the GitHub App is installed on for this workspace, with the projects each one is associated with. A repository associated with no project is watched at workspace level. Pull requests are matched to issues by the issue identifier in the branch name, title or description, not by which project a repository belongs to, so associations here are for organising the workspace rather than for routing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it explains that associations are for organization, not routing, and details how PRs are matched to issues. This clarifies the semantic meaning of the output and a key execution nuance, exceeding what annotations provide.
Agents need to know what a tool does to the 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 in the first sentence. The second and third sentences add meaningful context about associations and PR matching without redundancy. Every sentence earns its place, making it 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?
Given zero parameters, no output schema, and annotations covering safety, the description adequately explains what the tool returns (repositories and their projects) and the semantic meaning of associations. It also explains PR matching behavior. It is complete for a simple list tool, though it omits pagination or limits, which are minor and not always specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema description coverage is trivially 100%. The description does not need to explain any parameters, and the baseline for 0 params is 4. It adds no parameter-specific info, but since there are none, it appropriately focuses on output semantics, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain 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 lists every GitHub repository the app is installed on for the workspace, along with associated projects. It distinguishes itself from siblings like link_github_repository and unlink_github_repository by focusing on listing rather than modification, and from list_issue_pull_requests by targeting repositories. The verb 'list' and specific resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use it (when needing repository info) and clarifies the meaning of associations, which helps interpret results. It does not explicitly mention alternatives or exclusions, but given the niche nature of this tool, the context is sufficient. There is no direct competing listing tool, so the lack of explicit 'instead of' is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inbox_conversation_eventsRead conversation historyARead-onlyIdempotentInspect
Read immutable notification events newest first for one of your currently accessible conversations. Use the returned cursor for older updates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| conversationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and destructive hints. The description adds 'immutable' and 'newest first' ordering, and 'currently accessible' implies permission constraints. No contradiction with annotations.
Agents need to know what a tool does to the 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 concise sentences, front-loaded with the core purpose and then a pagination hint. 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?
For a paginated read tool with no output schema, it explains the resource and cursor but does not describe the response structure or the limit parameter. Acceptable but with notable 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 0%, so the description must explain parameters. It only hints at cursor via 'Use the returned cursor for older updates' but does not explain the required conversationId or the limit parameter. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (read), resource (notification events for a conversation), ordering (newest first), and scope (currently accessible conversations). It clearly differentiates from sibling tools like list_inbox_conversations (listing conversations) and list_notifications (general notifications).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear context: it's for a specific conversation and includes pagination guidance via the cursor. However, it does not explicitly name alternatives or state when not to use this tool, so it's not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inbox_conversationsList inbox conversationsARead-onlyIdempotentInspect
Your inbox grouped into one conversation per pull request, document, or issue activity family. Filters run before pagination. Cursors describe a live feed: fetch a fresh first page to reconcile conversations moved by new activity. Counts are unread conversations, not events.
| Name | Required | Description | Default |
|---|---|---|---|
| tab | No | activity | |
| limit | No | ||
| cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description reveals non-obvious behavior: filters run before pagination, cursors belong to a live feed so a fresh first page is needed, and count values are conversation counts rather than event counts. This is high-value behavioral context.
Agents need to know what a tool does to the 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, each carrying a distinct fact: grouping model, ordering, cursor semantics, and count semantics. No filler and the most important definition 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 description covers the main invocation pitfalls for a read-only list tool: grouping, filter-before-pagination, live cursors, and count meaning. Given the absence of an output schema, it could still say more about what fields each conversation contains and how each tab behaves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description must add parameter meaning; it explains cursor freshness and pagination ordering. However, it never details the tab enum values or how limit/pagination results are shaped, leaving part of the parameter surface to inference.
Input schemas describe structure but not intent. Descriptions should explain 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 defines the resource as 'inbox grouped into one conversation per pull request, document, or issue activity family,' making the listing scope clear even though it lacks an explicit verb. It does not name or contrast sibling tools, so it misses the top level of 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?
'Counts are unread conversations, not events' and 'one conversation per ... activity family' imply this is the aggregated view versus event-level tools, but the description never tells the agent when to use this instead of list_inbox_conversation_events or list_notifications. Cursor and pagination guidance is operational rather than alternative-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issue_attachmentsList the files on an issueARead-onlyIdempotentInspect
Every file attached to an issue or to a comment on it, oldest first. Call this before you answer a thread that refers to a document, a screenshot or an export, so you work from what was actually attached rather than guessing from the filename.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds meaningful behavior beyond annotations: it includes files attached to comments and guarantees oldest-first ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The scope and ordering are front-loaded, and the usage guidance is concise and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-parameter, read-only listing tool, the description provides complete selection guidance, invocation context, and behavioral details. No output schema exists, but the tool's purpose and return scope are sufficiently 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?
Schema description coverage is 100%, so the single required 'issue' parameter is already fully documented in the schema. The description does not add additional parameter semantics, which is acceptable 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?
The description states a specific verb and resource: 'Every file attached to an issue or to a comment on it, oldest first.' This clearly differentiates from siblings like read_attachment and list_attachments by scoping to issue attachments and defining ordering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage context: 'Call this before you answer a thread that refers to a document, a screenshot or an export, so you work from what was actually attached rather than guessing from the filename.' It does not explicitly name alternatives or exclusions, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issue_commentsList comments on an issueARead-onlyIdempotentInspect
Return the comment thread on an issue, oldest first. Read this before replying, so you answer what was actually asked and do not repeat a reply you already posted.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue identifier like "ENG-42", or an issue id. | |
| limit | No | Comments per page. | |
| cursor | No | Cursor returned by a previous call. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond annotations: the ordering guarantee ('oldest first') and the practical purpose (avoid repeating replies). It doesn't mention pagination behavior, but the schema's cursor/limit parameters already imply that.
Agents need to know what a tool does to the 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 core behavior is front-loaded, and the usage guidance is a single actionable sentence. 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?
For a read-only list tool with full schema coverage and safety annotations, the description is nearly complete. It could add pagination details, but the cursor/limit parameters in the schema already signal that. The 'oldest first' ordering is a nice completeness touch.
Complex tools with many parameters or behaviors need more documentation. 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. The description adds no parameter-specific detail beyond what the schema provides. 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 uses a specific verb ('Return') and resource ('comment thread on an issue'), and adds ordering detail ('oldest first'). It clearly distinguishes from siblings like list_doc_comments and add_comment by focusing on reading the existing thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this tool: 'Read this before replying, so you answer what was actually asked and do not repeat a reply you already posted.' This is strong usage guidance that also implies when not to use it (when you need to post, use add_comment/edit_comment).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issue_pull_requestsList the pull requests linked to an issueARead-onlyIdempotentInspect
The pull requests Orbit has linked to an issue, with the branch each one is on. A link is created when a pull request names the issue identifier in its branch name, title or description, so copy_branch_name produces a branch that links itself. Requires only the permission to read the issue, matching what the issue page itself shows.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint false, openWorldHint false), and the description adds substantial behavior beyond that: the non-obvious linking rule, the self-linking consequence of copy_branch_name, the branch field in results, and the read-permission requirement. No contradiction with annotations.
Agents need to know what a tool does to the 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 the core purpose in the first. The linking-mechanism and permission sentences each earn their place, though the copy_branch_name aside could arguably be tightened. Slightly dense, but 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?
For a one-parameter, read-only, non-destructive list tool, this is complete: the parameter is fully documented in the schema, the linking semantics and permission level are disclosed, and the return content (PRs with branches) is stated. No output schema exists, so the description adequately covers the 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% — the 'issue' parameter is already documented with format examples ('ENG-42, or an issue id'). The description's linking explanation implicitly reinforces that the parameter is an issue identifier, but it adds no new syntax or format detail, 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 title states a specific verb+resource ('List the pull requests linked to an issue') and the description sharpens it further: 'The pull requests Orbit has linked to an issue, with the branch each one is on.' This names the exact scope and the returned content, making it easy to distinguish from siblings like list_issue_comments or list_issue_attachments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 useful context — the linking mechanism (a PR names the issue identifier in branch/title/description) and the permission prerequisite ('Requires only the permission to read the issue'). However, it never explicitly addresses when to choose this tool over alternatives or when not to use it; the cross-reference to copy_branch_name is behavior explanation rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_labelsList labelsARead-onlyIdempotentInspect
List the labels available in the workspace, optionally narrowed to the ones a team can use.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Optional team key, name or id to narrow the labels to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the workspace scope and the team-based narrowing behavior, which is useful context beyond the annotations, but it doesn't describe return format, pagination, or other runtime details. That is acceptable for a simple read-only 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?
A single, well-structured sentence that front-loads the main purpose and appends the optional narrowing condition. There is no filler or redundant 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 simple read-only list operation with one optional parameter, the description plus annotations and schema cover what an agent needs to select and call the tool. There is no output schema, but the return value is clearly implied by 'list labels'. It doesn't mention pagination or ordering, but these are minor for this 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?
The schema already documents the single optional 'team' parameter with 100% coverage, so the baseline is 3. The description reiterates the narrowing behavior ('narrowed to the ones a team can use') but doesn't add significant new semantics 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?
The description names a specific verb ('List'), a clear resource ('labels'), and a scope ('available in the workspace'), with an optional team narrowing. This distinguishes it from label mutation tools like create_label, update_label, and delete_label without needing to open 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?
The description clearly states the tool's context: listing workspace labels, optionally filtered by team. It doesn't explicitly enumerate when not to use it or name alternatives, but the read-only intent and optional team parameter make the usage context clear enough for a tool with no competing label-listing sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_membersList workspace membersARead-onlyIdempotentInspect
List workspace membership with each person role, which is what decides what they may do.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by explaining that roles determine permissions ('which is what decides what they may do'), which goes beyond the structured metadata. It does not contradict any annotations.
Agents need to know what a tool does to the 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, well-structured sentence that front-loads the verb and resource, then adds the key differentiator (role) and its significance. Every word contributes to understanding, with no unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description fully explains what the tool does and what it returns (membership with roles). It covers the essential information an agent needs to decide whether to call it and what to expect.
Complex tools with many parameters or behaviors need more documentation. 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 no parameters, so schema coverage is trivially 100%. The description adds meaning about the return content (roles and their implications), which is valuable given there is no output schema. With zero parameters, this is a strong baseline, and the description enhances 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 clearly states the verb 'List' and the resource 'workspace membership', and further specifies that it includes each person's role. This distinguishes it from sibling tools like list_users and list_teams, which likely don't include role information. It 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 does not provide any guidance on when to use this tool versus alternatives like list_users or list_teams. It implies a purpose but does not explicitly state the conditions or exclusions. For a tool with no parameters, this is a notable gap because an agent might confuse it with other listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_milestonesList milestonesBRead-onlyIdempotentInspect
List the milestones on a project in order.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug, or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, idempotent call, so the description does not need to repeat safety behavior. It adds the 'in order' behavior, but does not specify the ordering key or any pagination/result-shape details, so the extra behavioral context is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler. The key information (list, project scope, ordering) is front-loaded and 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?
For a simple read-only listing with one required parameter, the description is largely complete: the action, resource, scope, and ordering are stated, and annotations cover safety. The main omission is the exact meaning of 'in order' and any differentiation from list_project_milestones, but these are not blocking for 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 'project' parameter is already documented as accepting name, slug, or id. The description adds no new meaning for 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?
The description clearly states the action ('List') and the resource ('milestones on a project'), and adds that results are ordered. It does not explicitly distinguish itself from the sibling list_project_milestones, which appears to target the same resource, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over alternatives; in particular, the existence of list_project_milestones makes the absence of an exclusion or distinguishing condition notable. The description only states what it does, not when it 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.
list_my_issuesList my issuesARead-onlyIdempotentInspect
List issues assigned to the caller or awaiting their review, most recently updated first. Narrow with a state category such as "started" to see only work in flight.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| stateCategory | No | Narrow to one status bucket, for example "started". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context — result ordering and the awaiting-review scope — but does not disclose pagination or return-format behavior, so it lands at 'some value but not rich behavioral context.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler; the core behavior and ordering are front-loaded in the first sentence, and the filtering guidance in the second earns its place. Every clause carries 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 simple read-only list tool whose annotations carry the safety profile and whose schema documents both optional parameters, this is nearly complete: scope, ordering, and filter usage are all present. The only gaps are that limit's behavior is left entirely to the schema and there is no output schema describing 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 description coverage is 50%: stateCategory is documented in the schema, and the description reinforces it with the 'started' example. The limit parameter has no prose description in either the schema or the tool description, so the agent must infer its meaning from type/default/min/max 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?
States a specific verb ('List') and a clearly scoped resource ('issues assigned to the caller or awaiting their review'), plus result ordering ('most recently updated first'). The personal scope distinguishes it from siblings like search_issues, get_issue, and list_issue_comments without needing to open 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?
The intended use case is clear from the scope ('assigned to the caller or awaiting their review'), and the second sentence gives a concrete narrowing example ('state category such as "started"'). However, it doesn't name an alternative tool (e.g., search_issues for broader queries) or state explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notificationsList your notificationsARead-onlyIdempotentInspect
Your inbox: mentions, assignments, replies and state changes addressed to you. This is how you find work someone has handed you by name. Orbit never notifies you about your own actions, so nothing here was written by you.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Only this notification type. | |
| limit | No | Notifications per page. | |
| cursor | No | Cursor returned by a previous call. | |
| unreadOnly | No | Only unread notifications. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat that. The description adds context that Orbit never notifies about the user's own actions, which is useful behavioral information. However, it doesn't mention pagination (cursor) or filtering behavior beyond what the schema suggests, 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?
The description is concise, at two sentences, and front-loads the core purpose ('inbox' and 'find work handed to you by name'). Every sentence adds value, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a read-only list tool with a well-documented schema and annotations. It explains the scope (personal notifications) and addresses the self-action exclusion. Pagination details are not described, but the schema covers them, so this is a minor omission. With no output schema, return values are not specified, but that's acceptable 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 description coverage is 100%, so all parameters are already documented in the schema. The description doesn't add extra meaning beyond the schema; it only gives a high-level summary of the resource. The baseline of 3 is appropriate as 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 clearly states the tool lists notifications addressed to the user, with a specific verb ('list') and resource ('notifications'). It also distinguishes it from other list tools by emphasizing personal inbox content (mentions, assignments, etc.) and notes that it excludes self-generated actions, which differentiates it from generic list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use it: when you want to find work handed to you by name. It does not explicitly list alternatives like list_my_issues or mark_notification_read, but the context is clear enough for an agent to infer usage. No explicit exclusions are provided, but the 'by name' phrasing gives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_milestonesList milestones on a projectBRead-onlyIdempotentInspect
Return the milestones on a project with their target dates.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool safe (readOnlyHint=true, destructiveHint=false, idempotentHint=true), so the description's burden is lighter. The description adds one behavioral detail—output includes target dates—but does not describe ordering, pagination, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, direct sentence with no filler. The key action and target resource are front-loaded, and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, single-parameter tool with strong annotations, the description is nearly complete: it names the resource and the return content. It does not describe the output structure in detail, but no output schema exists and the simple nature of the tool reduces the need for 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 100%, and the single parameter is already described as 'Project name, slug or id.' The description adds no additional meaning beyond what the schema provides, so the baseline score 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 clearly identifies a verb ('Return') and resource ('milestones on a project') and adds the relevant detail that target dates are included. However, it does not explicitly distinguish this tool from the sibling 'list_milestones', which could be a broader or differently-scoped variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus the sibling 'list_milestones'. There are no exclusions, preconditions, or hints about which tool is appropriate for different scopes of milestone listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-onlyIdempotentInspect
List the projects in the workspace with their status and health.
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived projects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is fully covered. The description adds behavioral context by indicating the returned information includes status and health, and implies project scoping to the workspace.
Agents need to know what a tool does to the 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 communicates the action, scope, and returned information with no redundant words. Every element 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 simple, read-only, single-parameter list operation, the description is fully sufficient. Annotations cover the safety characteristics, the schema covers the parameter, and the description states the scope and the key output 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%, with the single includeArchived parameter fully documented in the schema. The tool description does not add parameter-specific meaning beyond the schema, so 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?
Description uses a specific verb ('List') with a clear resource ('projects') and scope ('in the workspace'), and adds the useful return dimension ('with their status and health'). It is clearly distinguishable from sibling tools like archive_project, update_project, and list_project_milestones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 states the context: listing projects within the workspace informs the agent when to use this tool. It does not explicitly name alternatives or exclusions, but the need is straightforward and no sibling does the same job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_statesList workflow statesARead-onlyIdempotentInspect
List the workflow states of one team, in board order. Use a state name from this list when creating or moving an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | A team key like "ENG", a team name, or a team id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only (readOnlyHint=true) and non-destructive (destructiveHint=false), so the description does not need to restate those. It adds value by mentioning 'board order' (a specific ordering behavior) and by tying the result to issue creation/movement. This is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the 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 concise sentences with no filler. The core action is front-loaded, and the usage hint is placed as a second sentence. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description is complete. It explains what it returns (states in board order) and how to use the result. 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?
The input schema fully describes the only parameter (team) with a clear description, so schema coverage is 100%. The description adds no additional detail about the team parameter beyond what the schema provides. Baseline of 3 is appropriate since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'workflow states', and the scope 'of one team', with the added detail of 'in board order'. It also connects to downstream usage ('when creating or moving an issue'), making it unmistakable among sibling list tools like list_teams or list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a use case: 'Use a state name from this list when creating or moving an issue.' This implies when to use it, though it does not contrast it with alternatives. Since the sibling set is dominated by other resource-specific list tools, the context is clear enough; a slightly more explicit 'when you need state names' would push it to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsList teamsARead-onlyIdempotentInspect
List the teams in the workspace that the caller can see. Each team has a key such as "ENG" that prefixes its issue identifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived teams. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context by noting the caller-visibility scope and the team key semantics, which are not available from annotations 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?
Two concise sentences with no filler. The core behavior is front-loaded, and the extra detail about team keys is directly useful for understanding how teams are represented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one optional parameter and no output schema, the description is sufficient: it states the scope, the visibility rule, and a key property of the returned teams. Nothing essential is missing for an agent to select and 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?
The only parameter, includeArchived, is fully documented in the schema with its default value (false). The description adds no parameter-specific information, so the baseline of 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?
States a specific verb and resource: lists the teams in the workspace, with an additional scope qualifier ('that the caller can see') and a useful distinguishing detail about team keys prefixing issue identifiers. This clearly separates it from sibling list tools such as list_members or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call it: to see visible teams in the workspace. It does not explicitly name alternatives or exclusions, but for a simple list operation the use case is readily inferable from the description and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersList usersARead-onlyIdempotentInspect
List the people in the workspace. Use a name, handle or email from this list wherever a tool asks for a user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the user-identifier guidance but no additional behavioral details such as pagination, ordering, or inclusivity of users. This is acceptable given the low-risk, read-only 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?
Two short sentences, each earning its place: one defines the tool's function, the other explains how to use its output. It is front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with no output schema, the description provides the essential information: what is listed and how to use the results. It stops short of describing edge cases or exact response shape, but those are not critical for this simple 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?
There are no parameters, so parameter semantics are a non-issue. The description still usefully indicates that the output contains names, handles, or emails, which helps agents consume the result when filling user parameters in other tools.
Input schemas describe structure but not intent. Descriptions should explain 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 resource ('people in the workspace') and the verb ('List'), and adds the practical purpose of supplying user identifiers. However, it does not explicitly distinguish itself from the sibling tool 'list_members', which could create some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this list to obtain names, handles, or emails for any tool that asks for a user. It does not provide explicit exclusions or alternatives, but for a simple parameterless listing tool the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_viewsList saved viewsARead-onlyIdempotentInspect
Return the saved issue views this user can open, each with the filter state it stores. Copy that shape when creating or updating a view.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds meaningful context beyond those annotations: views are scoped to 'this user can open', each returned item carries its stored filter state, and the returned shape is intended as a template for create/update operations. No contradiction with annotations.
Agents need to know what a tool does to the 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 with no filler. The primary action and scope are front-loaded in the first sentence, and the second sentence earns its place by telling the agent how to reuse the returned shape when creating or updating views.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, read-only listing tool, the description adequately conveys what the call returns and how the result should be used. There is no output schema, so it is helpful that the description mentions the filter-state shape, though it stops short of specifying exact fields, ordering, or pagination 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?
The tool has zero parameters, so the baseline is 4. There is nothing for the description to add about parameter syntax or meaning; the description instead focuses on the return payload's purpose, which is appropriate 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?
The description uses the specific verb 'Return' and names the exact resource: 'saved issue views this user can open'. It also states what each view contains ('the filter state it stores'), which clearly distinguishes this listing tool from siblings that create, update, or delete views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 establishes a clear read-only listing context and adds a practical routing hint: 'Copy that shape when creating or updating a view.' It does not explicitly contrast with alternatives, but for a zero-parameter list tool, the usage context is clear enough without needing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_inbox_conversations_readMark conversations read or unreadAInspect
Mark your own conversations read or manually unread. This updates every active event compatibly and returns authoritative conversation counters. Do not mark work read until acted on or handed on.
| Name | Required | Description | Default |
|---|---|---|---|
| read | Yes | ||
| conversationIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavioral details beyond the annotations: it updates 'every active event compatibly' and 'returns authoritative conversation counters.' It also indicates the operation is reversible ('manually unread'), which aligns with destructiveHint: false. The caution about work status adds context. With sparse annotations, this description carries the burden well, though it could mention error scenarios or idempotency.
Agents need to know what a tool does to the 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 sentence covers purpose and mechanics; the second provides a critical usage caution. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple mutation tool with two parameters, the description is fairly complete: it states scope, the reversible nature, side effects on events, and that it returns counters. It does not describe the output schema (but none exists), nor does it cover failure modes, but these are not critical for correct invocation. The caution about pending work adds operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies that 'conversationIds' refers to the conversations to be marked and that the 'read' boolean controls read/unread state (via 'read or manually unread'). However, it does not explicitly state that read=true marks read and read=false marks unread, nor does it mention constraints like max 500 items (which is in the schema). The description adds some value by confirming the scope, but it falls short of fully explaining each 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 states the verb ('mark') and resource ('your own conversations') and distinguishes between marking read and manually unread. It also specifies the scope ('your own') which differentiates it from any tool that might affect other users' conversations or notifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear conditional rule: 'Do not mark work read until acted on or handed on.' This is an explicit when-not-to-use guideline. It also implies the primary use case (marking read/unread after handling) and scopes access to one's own conversations. However, it doesn't mention alternative tools (e.g., mark_notification_read), but those are for a different resource, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_issue_duplicateMark an issue as duplicateADestructiveIdempotentInspect
Mark an issue as a duplicate of another issue. Moves the duplicate issue to the team canceled state, records the duplicate_of relation, and transfers subscribers to the survivor issue.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | The duplicate issue identifier or id. | |
| survivorIssue | Yes | The survivor issue identifier or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses three concrete side effects: moving to canceled state, recording the duplicate_of relation, and transferring subscribers. These go beyond the annotations (which only indicate destructiveness and idempotency), giving the agent real behavioral expectations. It does not contradict any annotation.
Agents need to know what a tool does to the 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: the first states the core action, the second lists the relevant consequences. Every word contributes; no filler, no repetition of already-known tool names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with no output schema, the description plus annotations cover what the tool does, what changes, and which parameters are needed. It does not mention edge cases like self-duplicates or pre-existing relations, but that is beyond the expected minimum for 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?
The schema already documents both parameters as 'duplicate issue identifier' and 'survivor issue identifier' with 100% coverage. The description restates these roles without adding new format, constraint, or usage detail, so it stays at the schema-coverage 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 uses a specific verb ('Mark'), resource ('an issue'), and target ('as a duplicate of another issue'), which clearly distinguishes it from siblings like delete_issue, update_issue, or set_relation. The first sentence alone specifies the exact action and objects involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 one issue is a duplicate of another. It does not explicitly exclude alternatives like set_relation or delete_issue, but the context is clear enough that an agent would not confuse it with those. No explicit when-not guidance is provided, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_notification_readMark notifications readAInspect
Mark your own notifications read once you have acted on them, so they leave your unread queue. Mark a notification read only after the work it describes is done or handed on, never on first sight.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Notification ids from list_notifications. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not readOnly, not idempotent, not destructive, which is somewhat contradictory (marking read is idempotent, but annotation says false). The description adds the behavioral nuance of timing (after action, not first sight), which is valuable. However, it doesn't mention that marking read is irreversible per se or what happens if called again. There is a minor inconsistency: readOnlyHint false implies mutation, but no details on side effects beyond the unread queue.
Agents need to know what a tool does to the 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, tightly packed with the essential usage rule. It front-loads the purpose and then gives the critical timing guideline. No filler 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?
Given the tool has one parameter, full schema coverage, and no output schema, the description covers the key usage context (when to mark read, what it affects). It doesn't mention the effect of idempotency (repeated calls) or whether it returns anything, but for such a simple tool, the description is nearly sufficient. The only minor gap is that it doesn't explicitly state the input source (list_notifications ids), but the schema already does that.
Complex tools with many parameters or behaviors need more documentation. 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 'ids' parameter is well-described in the schema (from list_notifications). The description doesn't add any extra meaning, but since the schema is complete, baseline 3 is appropriate. No additional semantic insight is provided beyond what the schema already gives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('mark') and resource ('your own notifications') and the effect (leaving the unread queue). It distinguishes from siblings like list_notifications and mark_inbox_conversations_read by focusing on the user's own notifications. Slight deduction because it doesn't explicitly mention output or return value, but purpose is 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 explicit guidance: mark read only after action is taken, never on first sight. This is a clear behavioral rule that helps an agent decide when to use it, and by implication when not to (e.g., before acting). This goes beyond vague context and provides a direct conditional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_docMove a documentAInspect
File a document under a collection, nest it under a parent, attach it to a project, or order it against its siblings. One call for what dragging it in the sidebar does.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. | |
| after | No | Place it immediately after this sibling. | |
| before | No | Place it immediately before this sibling. | |
| parent | No | Document to nest under. Pass null to move it to the top level. | |
| project | No | Project name, slug or id. Pass null to detach. | |
| collection | No | Collection to file it under. Pass null to unfile it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by clarifying that a single call can perform several distinct repositioning behaviors (filing, nesting, attaching, ordering). It does not detail side effects like auth requirements or return value, but the annotations already signal that this is a non-read-only, non-destructive, non-idempotent mutation, and the description adds useful operational context.
Agents need to know what a tool does to the 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 that lists the key operations first and then uses a concise analogy to reinforce the behavior. There is no filler or repetition of schema 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 mutation tool with six parameters, a complete schema, and useful annotations, the description supplies enough conceptual context for an agent to select and invoke it correctly. It does not describe return values, but no output schema exists and the operation's purpose is clear from the description and parameter documentation.
Complex tools with many parameters or behaviors need more documentation. 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 each parameter already has a description, so the baseline is 3. The description adds value by mapping the conceptual operations—file under collection, nest under parent, attach to project, order against siblings—to the corresponding parameters, giving an agent a higher-level understanding of how the parameters relate.
Input schemas describe structure but not intent. Descriptions should explain 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 ('file', 'nest', 'attach', 'order') on a specific resource (a document), and clearly differentiates this from sibling tools like move_issue or reorder_milestones by scoping it to document positioning. The sidebar-dragging analogy reinforces the intended operation 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 provides a clear context: use this when you would drag a document in the sidebar to reposition it, file it, nest it, or attach it. It does not explicitly mention alternatives such as move_issue, but the doc-specific scope and the sidebar analogy make the intended usage evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_issueMove an issueAInspect
Move an issue to another workflow state or team, and optionally place it between two issues in the column. This is the tool to use to change status.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Target team key, name or id. | |
| issue | Yes | An issue identifier like "ENG-42", or an issue id. | |
| state | No | Target workflow state name or id. | |
| afterIssue | No | Place before this issue in the column. | |
| beforeIssue | No | Place after this issue in the column. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the optional reordering behavior (placing between issues), which goes beyond annotations. However, it does not disclose potential side effects like notifications, history changes, or whether moving between teams affects permissions. With annotations covering the basic safety profile, the description adds some value but leaves behavioral nuances unexplained.
Agents need to know what a tool does to the 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 wasted words. The primary action and optional reorder are stated first, followed by a clear usage hint. It is front-loaded and every sentence contributes value, 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?
Given the tool has five parameters and no output schema, the description provides the core purpose and optional reorder capability. However, it does not clarify whether state and team are mutually exclusive or both required, nor does it mention prerequisites (e.g., the issue must exist) or what happens on success. Since annotations do not cover these operational details, the description is adequate but incomplete for a mutation tool with this parameter 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% – every parameter has a description in the schema. The tool description mentions 'optionally place it between two issues,' which aligns with afterIssue and beforeIssue, but adds little beyond what the schema already states. Since the schema fully documents the parameters, the description does not need to compensate, so a baseline score 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 clearly states the verb 'move' and resource 'issue', specifying it moves to another workflow state or team and optionally reorders within a column. It also explicitly claims 'This is the tool to use to change status,' which differentiates it from sibling tools like update_issue that might modify other fields. The purpose is unambiguous and distinguishes it from 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 gives a clear usage context: 'This is the tool to use to change status.' This tells an agent when to select it over other issue-related tools. However, it does not explicitly mention exclusions or alternatives like move_to_cycle, nor does it state conditions under which another tool should be used. It provides context but lacks formal when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_cycleMove an issue into a sprintAInspect
Put an issue into a sprint, or pass null to take it out of the sprint it is in. The sprint must belong to the issue team.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Sprint name, number, id, "active", or null to remove the issue from its sprint. | |
| issue | Yes | Issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate it is not read-only or destructive, so the description carries the burden of explaining side effects. It adds the null removal behavior and the team membership requirement, which are valuable behavioral details beyond the schema. It does not contradict annotations and no further disclosure is needed for such a simple 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?
Two concise sentences that front-load the primary action, immediately cover the removal case, and add the necessary constraint. Zero wasted words; every phrase 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 simple two-parameter mutation with no output schema, the description covers the core behavior, the null edge case, and the key constraint. It does not discuss error conditions or return values, but given the simplicity and existing schema coverage, these are not critical omissions.
Complex tools with many parameters or behaviors need more documentation. 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 tool description adds the constraint that the sprint must belong to the issue's team, which is not present in the parameter descriptions. This adds meaningful semantic information about the relationship between 'cycle' and 'issue'.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Put an issue into a sprint') and the resource involved, and it explicitly covers the removal case with null. It distinguishes itself from the broader sibling 'move_issue' by focusing on sprint assignment, and the team constraint adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage instruction for the null parameter ('pass null to take it out') and a prerequisite ('The sprint must belong to the issue team'). It does not explicitly mention alternatives or when-not-to-use, but the null behavior and team constraint provide solid contextual guidance for the main use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_progressGet project progressARead-onlyIdempotentInspect
Return the issue counts for a project, in total and per milestone, so you can report how far along it is.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it returns counts (total and per milestone), which is behavioral information beyond the annotations. It doesn't add details about permissions or edge cases, but for a simple read operation this is adequate. No contradiction with annotations.
Agents need to know what a tool does to the 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-structured sentence that immediately states the action and the return value. No filler, and the key information (total and per milestone) is front-loaded. 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?
For a simple read tool with one well-documented parameter and no output schema, the description fully explains what the tool returns (issue counts total and per milestone). An agent can call it correctly and know what to expect from the response without needing additional details.
Complex tools with many parameters or behaviors need more documentation. 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 covers 100% of parameters with a clear description ('Project name, slug or id.'). The tool description does not add anything further about the parameter, which is fine because the schema is complete. Baseline 3 is appropriate since the description doesn't need to compensate for any 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?
The description uses the specific verb 'Return' with the resource 'issue counts for a project, in total and per milestone'. This clearly distinguishes it from sibling tools like list_projects (which lists projects) and cycle_progress (which presumably focuses on cycles). It states exactly what data the agent will receive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'so you can report how far along it is'. It doesn't explicitly mention alternatives or when not to use it, but the purpose is clear enough that an agent would know to call this when needing progress metrics rather than a list of projects or milestones. It lacks explicit exclusions but gives sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_attachmentRead an attached fileARead-onlyIdempotentInspect
Return the contents of a file attached to an issue, a comment, a doc or a project. Text-like files come back as text; anything else comes back base64 encoded. Large files are truncated, and the response says so.
| Name | Required | Description | Default |
|---|---|---|---|
| maxBytes | No | Stop after this many bytes. Defaults to 262144. | |
| attachment | Yes | Attachment id from list_issue_attachments or get_issue. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description discloses important behavior: text-like files are returned as text, non-text as base64, and large files are truncated with a notice in the response. This gives the agent a concrete model of what to expect.
Agents need to know what a tool does to the 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, information-dense sentences with zero filler. The main purpose is front-loaded, and the encoding/truncation details are concise and directly actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with two well-documented parameters, the description covers the return format, encoding, and truncation behavior. The schema handles parameter provenance and defaults, and annotations cover safety. Nothing critical is missing for an agent 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%: the attachment parameter is documented as coming from list_issue_attachments or get_issue, and maxBytes has a clear default and purpose. The description adds no additional 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 opens with a specific verb ('Return the contents') and a clear resource ('a file attached to an issue, a comment, a doc or a project'). It clearly differentiates from siblings like attach_file (write) and list_attachments (list) by focusing on reading content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is the tool to use when you need the contents of an existing attachment, but it does not explicitly mention alternatives or exclusions. An agent can infer the context from the wording, but no direct 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.
remove_memberRemove somebody from the workspaceADestructiveInspect
Remove a member from the workspace entirely. Their issues can be reassigned to somebody else in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| person | Yes | Person name, handle, email, id, or "me". | |
| reassignTo | No | Who inherits their open issues. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds valuable context beyond annotations by stating that open issues can be reassigned in the same call, which is a behavioral trait not fully captured by the schema or annotations. It does not contradict any annotations.
Agents need to know what a tool does to the 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 concise sentences with the core action front-loaded and no unnecessary fluff. It effectively communicates the main effect and the optional reassignment in a minimal, well-ordered manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive tool with only two parameters and no output schema, the description covers the essential behavior: the removal action and the optional reassignment. The annotations handle the destructive flag. It could mention irreversibility or prerequisites, but given the low complexity and annotation coverage, it is sufficiently complete 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%, and both parameters (person, reassignTo) have clear descriptions in the schema. The description's mention of reassignment is already implied by the reassignTo parameter description, so it adds no additional semantic meaning beyond what the schema provides. Baseline 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 states a specific verb ('Remove') and a clear resource ('a member from the workspace entirely'), and it distinguishes itself from similar tools like remove_team_member by emphasizing the workspace-wide scope. The additional note about reassigning issues clarifies the tool's full purpose 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 implies when to use it: when a member must be fully removed from the workspace. However, it does not explicitly mention alternatives (e.g., remove_team_member) or provide exclusions (e.g., if the member has critical unresolved work). This is a clear context but lacks explicit routing to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_relationUnlink two issuesADestructiveInspect
Remove a link between two issues. The inverse link on the other issue goes with it, so removing "blocks" also removes "blocked by".
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | How the first issue relates to the second. | |
| issue | Yes | An issue identifier like "ENG-42", or an issue id. | |
| relatedIssue | Yes | The issue on the other end of the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows it's a destructive operation. The description adds the critical behavior that the inverse link is also removed, which is not covered by annotations. This is valuable context. No contradiction.
Agents need to know what a tool does to the 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 concise sentences that state the primary action first and the important inverse-link caveat second. No unnecessary 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?
For a tool with three required parameters and an enum type, the description covers the essential behavior. It doesn't explain return values, but no output schema exists. The destructive nature is already in annotations. The inverse-link behavior is critical and disclosed. This is complete 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 provides complete descriptions for all three parameters, so the tool description adds no additional parameter meaning. The description's focus is on the action and behavior, not on parameter details, which is acceptable given 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?
States a specific verb (Remove) and resource (link between two issues), and explicitly notes the inverse link removal. It clearly distinguishes from sibling set_relation which adds links. No 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 indicates this tool is for removing links between issues, which differentiates it from set_relation. However, it does not explicitly state when not to use it or mention alternatives, but the purpose is clear enough from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_team_memberRemove somebody from a teamADestructiveInspect
Take a person off a team. They stay in the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | Team key like "ENG", team name, or team id. | |
| person | Yes | Person name, handle, email, id, or "me". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is covered. The description adds the behavioral clarification that the person remains in the workspace, which is valuable scope context beyond annotations. It does not mention reversibility, permissions, or side effects, but given the annotation coverage this is sufficient.
Agents need to know what a tool does to the 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 main action and the critical scoping detail are front-loaded. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter destructive tool with annotations covering safety, the description is adequate. It explains the core action and key distinction (workspace retention). While it omits potential edge cases, the schema and annotations fill the gaps, making this 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 100%, with both 'team' and 'person' fully documented in the input schema. The description adds no parameter-specific details, 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 clearly states the action ('Take a person off a team') and the specific resource scope. It also adds a distinguishing clause, 'They stay in the workspace,' which differentiates this tool from siblings like remove_member. This allows an agent to select it correctly without inspecting other 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?
The phrase 'They stay in the workspace' implies this is for team-level removal only, hinting that remove_member would be used for workspace removal. However, there is no explicit mention of when to use this versus add_team_member or remove_member, so the guidance 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.
reorder_milestonesReorder the milestones on a projectAInspect
Put the milestones of a project into the order given. The list has to name every milestone on the project exactly once, so read them with list_milestones first.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, slug, or id. | |
| milestones | Yes | Every milestone on the project, by name or id, in the order you want. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation. The description adds the key behavioral constraint that the list must include every milestone exactly once, implying a full replacement of order. It doesn't describe failure behavior if the list is incomplete, but the explicit requirement compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core instruction is front-loaded, and the critical prerequisite is stated immediately. 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 two-parameter tool with full schema coverage and no output schema, the description covers the essential context: what to do, what to do first, and the completeness requirement. It doesn't specify error handling for invalid lists, but that's a minor gap given the explicit prerequisite.
Complex tools with many parameters or behaviors need more documentation. 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 both parameters. The description reinforces that 'milestones' must be the complete set in desired order, adding meaning beyond the schema's 'Every milestone on the project' phrasing. 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 ('Put'), a resource ('milestones of a project'), and the exact operation (reorder into the order given). It clearly distinguishes from siblings like reorder_states and update_milestone by focusing on ordering the full milestone 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 explicitly instructs the agent to read milestones with list_milestones first and requires the list to name every milestone exactly once. This provides clear when-to-use guidance and a prerequisite, which is strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_statesReorder the workflow states of a teamAInspect
Set the board order of a team. Name every status on the team exactly once, first column first. Call list_states to see the current order.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | A team key like "ENG", a team name, or a team id. | |
| order | Yes | Every status on the team, in the order they should appear. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the non-readOnly and non-destructive profile, and the description adds the ordering constraint 'every status exactly once, first column first.' However, it does not describe behavior for invalid or incomplete lists, duplicate entries, or any side effects beyond reordering.
Agents need to know what a tool does to the 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 verb and resource, followed by the single essential usage 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?
For a two-parameter mutation with full schema documentation and no output schema, the description covers the operation, the input invariant, and a prerequisite read call. It could add error behavior, but nothing essential is missing for invoking 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 already documents both parameters with 100% coverage, but the description adds meaning beyond the schema: 'Name every status on the team exactly once, first column first' clarifies exact-once semantics and the positional column ordering that the schema only implies with 'in the order they should appear.'
Input schemas describe structure but not intent. Descriptions should explain 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'/'Reorder') with a specific resource ('board order of a team' / 'workflow states of a team'), and the 'exactly once, first column first' constraint makes the operation unmistakable among sibling state tools like list_states, create_state, and update_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 to call list_states first to see the current order, which is a concrete prerequisite and names the relevant read-only sibling. It does not enumerate exclusions for other state-mutating siblings, but it gives enough situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesSearch issuesARead-onlyIdempotentInspect
Search issues by free text and by team, project, cycle, assignee, participant, state, state category, label or parent. A participant is an assignee or reviewer. Returns a page of issues plus a cursor for the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team key, name or id. | |
| cycle | No | Sprint name, number, id or "active". Needs team. | |
| label | No | Label name or id. | |
| limit | No | ||
| query | No | Text matched against title, description and identifier. | |
| state | No | Workflow state name or id. Needs team. | |
| cursor | No | Cursor returned by a previous call. | |
| parent | No | Parent issue identifier or id. | |
| orderBy | No | updated | |
| project | No | Project name, slug or id. | |
| assignee | No | Assignee name, handle, email, id, or "me". | |
| participant | No | Assignee or reviewer name, handle, email, id, or "me". | |
| stateCategory | No | Broad status bucket. | |
| includeArchived | No | ||
| includeSubIssues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context by explicitly stating that it returns a page of issues plus a cursor for the next page, helping the agent understand pagination semantics. No contradiction with annotations.
Agents need to know what a tool does to the 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 front-load the primary behavior and filter list, then add a one-line clarification and pagination result. There is no filler or repetition of 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 high-complexity tool with 15 parameters and no output schema, the description provides the core search semantics and the essential return behavior (page + cursor). It does not describe every filter nuance, but the schema carries that load and the defaults are visible, so an agent can 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 coverage is 73% and most parameters already have descriptions. The description summarizes the filter dimensions but adds little meaning beyond the schema; 'A participant is an assignee or reviewer' repeats the schema's own parameter description. It does not clarify the undocumented parameters like limit, includeArchived, or includeSubIssues.
Input schemas describe structure but not intent. Descriptions should explain 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 and resource ('Search issues') and enumerates many meaningful filter dimensions. It goes beyond a vague purpose by describing free-text and structured filters, and it distinguishes itself from sibling tools like get_issue and list_my_issues by emphasizing broad search plus pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 general use case clear: search issues across many criteria. However, it does not explicitly say when to prefer this over alternative issue-listing tools or mention exclusions. Usage is implied rather than explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_relationRelate two issuesAInspect
Link two issues. The inverse link is written on the other issue automatically, so "blocks" also records "blocked by".
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | How the first issue relates to the second. | |
| issue | Yes | An issue identifier like "ENG-42", or an issue id. | |
| relatedIssue | Yes | The issue on the other end of the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses an important side effect not visible in the schema or annotations: the inverse link is written automatically, so 'blocks' also records 'blocked by.' This goes beyond the annotations' readOnly/destructive/idempotent hints and gives the agent meaningful behavioral context.
Agents need to know what a tool does to the 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, efficient sentences front-load the primary action and then provide the most important behavioral detail. There is no redundant or filler content, 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?
For a simple mutation with three required parameters, a fully documented schema, and safety annotations, the description is largely complete: it states the operation, directionality, and automatic inverse behavior. A note on how to remove relations or handle duplicate relation types could improve it, but nothing essential for a correct call 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 all three parameters, including the type enum, are already documented. The description adds value by explaining how relation types behave symmetrically, but it does not add further parameter-level semantics 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?
The description clearly states the operation: 'Link two issues.' It also adds useful semantic detail about automatic inverse links, which clarifies the tool's behavior. However, it does not explicitly differentiate from sibling tools like mark_issue_duplicate or remove_relation, so it is clear but not maximally discriminative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. An agent must infer when set_relation is appropriate instead of mark_issue_duplicate or remove_relation; there is no when/when-not context or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_cycleStart a sprintAInspect
Start a sprint that has not begun yet, by pulling its start date to now. A sprint has no separate started flag: it runs whenever the clock sits inside its dates and it has not been completed. The sprint keeps its planned end date, and the team has to have no sprint running.
| Name | Required | Description | Default |
|---|---|---|---|
| cycleId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only sparse annotation flags, the description carries the behavioral burden and excels. It reveals that a sprint has no separate started flag and runs when the clock sits inside its dates and it is not completed, that the start date is pulled to now while the planned end date is kept, and the no-running-sprint precondition – all genuinely additive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: the first states the action, the second explains the domain model, and the third lays out constraints. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the description covers the core effect, the underlying sprint model, and the key precondition. Nothing an agent needs to call it 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 coverage is 0% for the single cycleId parameter, and the description never explicitly maps 'the sprint' to cycleId. The inference is straightforward from the tool name and parameter name, but the description adds little direct parameter-level meaning beyond the schema's type/length constraints.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Start') and resource ('a sprint'), and clarifies it applies only to a sprint that 'has not begun yet' by 'pulling its start date to now.' This clearly differentiates it from sibling tools like create_cycle, complete_cycle, and update_cycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 conditions: use when the sprint 'has not begun yet' and 'the team has to have no sprint running.' It implies when not to use (if a sprint is already running) but does not explicitly name alternative tools or exclusions, stopping short of the top bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_docRestore an archived documentAInspect
Bring an archived document back into the sidebar and the default listings.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=false. The description adds a concrete behavioral detail—restoring the document to the sidebar and default listings—that goes beyond the annotation flags. It does not cover edge cases like whether restored documents reappear in all default views, but for this simple mutation it communicates the primary effect well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the action and states the outcome clearly, making it immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with complete schema and annotation coverage, the description sufficiently explains the tool's effect. It does not discuss return values, but no output schema is present, and the outcome is implied. Minor gaps remain around edge cases (e.g., behavior if the document is not currently archived), but these 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?
The sole parameter 'doc' is fully documented in the schema with accepted formats ('id, or its exact title'), and schema coverage is 100%. The description does not add additional parameter semantics, 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 clearly states the action ('Bring an archived document back') and the specific effect ('into the sidebar and the default listings'). This distinguishes it from related tools like archive_doc and unarchive_issue by both resource and direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'archived document' implies when to use this tool, but the description gives no explicit guidance about when to choose it over alternatives like unarchive_issue, nor does it mention any prerequisites or exclusion conditions. Usage is clear by context but not explicitly framed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_issueRestore an archived issueBInspect
Bring an archived issue back onto the board.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | An issue identifier like "ENG-42", or an issue id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive. The description adds the context that the issue returns 'onto the board,' which clarifies the state transition. However, it does not disclose details such as preservation of comments, history, or any side effects. This is acceptable but minimal given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no filler. It conveys the core action and result efficiently and is appropriately sized for a tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 unarchive operation with one fully documented parameter and no output schema, the description is largely complete. It lacks explicit notes about edge cases or return values, but nothing critical is missing for basic 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 single 'issue' parameter is already fully described in the schema. The description adds no parameter-specific 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?
The description uses a specific verb ('bring back') and resource ('an archived issue') with a clear outcome ('onto the board'). It is unambiguous about what the tool does, though it does not explicitly differentiate itself from sibling tools like archive_issue or unarchive_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description only states the action itself, leaving the agent to infer that this is the inverse of archive_issue. There are no exclusions, prerequisites, or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_github_repositoryRemove a GitHub repository associationADestructiveInspect
Remove the association between a repository and a project, or the workspace level association when no project is given. Removing the last association stops Orbit watching the repository, so its events are no longer processed.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project name or id to associate the repository with. Null or omitted associates it with the whole workspace instead, which is what you want when a repository serves more than one project. | |
| repository | Yes | Repository full name like "Noveum/orbit", or the GitHub repository id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses a meaningful consequence: removing the last association stops Orbit watching the repository and stops processing its events. This is exactly the kind of behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence delivers the core action and scope; the second sentence adds the key side effect. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool, the description plus schema and annotations cover the action, scope, and side effects. It does not describe return values or explicitly mention that unlinking is reversible via link_github_repository, but those are minor gaps for this 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%, and the input schema already documents both parameters comprehensively. The description only echoes the project-omission rule already present in the schema, adding no additional parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Remove the association between a repository and a project') and clearly distinguishes project-level from workspace-level unlinking. It is immediately distinct from sibling tools like link_github_repository and list_github_repositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 for when workspace-level unlinking applies ('when no project is given'), but it does not explicitly contrast with sibling tools or state when to prefer this over alternatives. 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.
update_cycleUpdate a sprintAInspect
Rename a sprint or move its dates.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| endsAt | No | ||
| cycleId | Yes | ||
| startsAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive mutation. The description adds the specific effects (renaming and date shifts) but does not disclose constraints such as date ordering, partial-update behavior, or side effects on scheduled work. This is adequate but not deeply 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 a single efficient sentence with no filler. It front-loads the action and clearly communicates the two supported update operations 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 simple four-string-parameter update tool, this is close to sufficient: the required cycleId is in the schema and the description covers the mutable fields. However, the date format and whether startsAt/endsAt must be supplied together are left unspecified, and there is no output schema to clarify the return 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 0%, so the description carries the burden of explaining parameters. It maps 'rename' to name and 'move its dates' to startsAt/endsAt, adding meaningful semantics beyond the raw schema. It does not explicitly identify cycleId or describe the expected date format, which prevents a 5.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Rename a sprint or move its dates.' It clearly distinguishes this tool from sibling tools such as create_cycle, complete_cycle, and delete_sprint by naming the exact actions it performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: whenever an existing sprint's name or dates need to change. However, it does not explicitly contrast it with alternatives like create_cycle or start_cycle, so the usage context remains inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_docUpdate a documentAInspect
Change a document title, body, collection, parent, project or visibility. Only the fields you pass are touched. Filing a document under a collection detaches it from any project, and attaching it to a project unfiles it.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | A document id, or its exact title. | |
| title | No | ||
| parent | No | Document id or title to nest under. Pass null to move it to the top level. | |
| content | No | Replaces the whole Markdown body, or the whole HTML page. | |
| project | No | Project name, slug or id. Pass null to detach. | |
| collection | No | Collection id or name. Pass null to unfile the document. | |
| visibility | No | Who can reach the document. "workspace" is in-app, "members" is a signed-in published URL, "link" and "public" are on the web. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral detail beyond the annotations: partial updates are scoped to passed fields, filing under a collection detaches from any project, and attaching to a project unfiles it. These are non-obvious side effects that an agent needs to know before invoking the tool. It does not cover auth or return behavior, but the mutation semantics are 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?
Three short sentences, each earning its place: the first states scope, the second explains partial-update behavior, and the third covers the non-obvious relationship side effects. The most important behavioral constraint 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?
Given the 7-parameter surface and no output schema, the description covers the essential decision points: what can change, that it is partial, and the collection/project mutual exclusion. It could mention return values or error behavior, but the schema and annotations already cover parameter constraints and safety hints.
Complex tools with many parameters or behaviors need more documentation. 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 at 86%, so the baseline is 3. The description adds value by naming the affected fields in plain language and by clarifying how parent/project/collection parameters interact, which the schema does not explain. The use of 'body' instead of the schema's 'content' is a minor wording mismatch but still understandable.
Input schemas describe structure but not intent. Descriptions should explain 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 resource (document) and the specific fields that can be changed: title, body, collection, parent, project, or visibility. It is distinct from create_doc and delete_doc, though it does not explicitly differentiate itself from the sibling move_doc, which also handles repositioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: only fields explicitly passed are modified, which tells an agent this is a partial-update tool. It also explains the interaction between collection and project fields, helping the agent anticipate side effects. It does not name alternatives like move_doc for pure moves, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_doc_collectionRename a document collectionBInspect
Change the name or the icon of a folder.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Lucide icon name. | |
| name | No | New collection name. | |
| collection | Yes | A collection id, or its name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's 'change' aligns with a mutation. The description adds the specific scope (name/icon) but doesn't disclose any additional behavioral traits like reversibility, ownership requirements, or error conditions. It adds some value but doesn't go beyond the annotation basics.
Agents need to know what a tool does to the 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, concise sentence that front-loads the action and object. No wasted words, and it's appropriately sized for a simple update 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?
For a simple update operation, the schema covers parameters and annotations provide basic safety info. The description doesn't explain return values (no output schema) but that's not required. It doesn't mention prerequisites or side effects, but given the low complexity, it's largely complete. The only minor gap is the lack of explicit 'document collection' terminology, which is a clarity issue rather than a completeness one.
Complex tools with many parameters or behaviors need more documentation. 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 parameters (collection, name, icon) are already documented. The description mentions 'name or icon' but doesn't add semantic detail beyond the schema. It doesn't clarify how the collection parameter works or that both fields are optional. 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 clear action ('Change the name or the icon') and a resource ('folder'). While 'folder' is a synonym for 'document collection', it's slightly imprecise given the tool name and siblings (e.g., create_doc_collection). It distinguishes from update_doc, update_issue, etc. by resource type, but the wording could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or sibling tools. For instance, it doesn't clarify that it's specific to document collections or when to use create_doc_collection instead. The one-liner simply states the action without contextual routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueUpdate an issueAInspect
Change fields on an existing issue. Only the fields you pass are touched. Pass null to assignee, project or cycle to clear it, or an empty reviewers array to clear the reviewer list.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Sprint name, number, id or null. | |
| issue | Yes | An issue identifier like "ENG-42", or an issue id. | |
| state | No | Workflow state name or id on the issue team. | |
| title | No | ||
| labels | No | Label names or ids. Replaces the labels already on the issue. | |
| parent | No | Parent issue, making this a sub issue, or null to detach it. | |
| dueDate | No | ||
| project | No | Project name, slug, id or null. | |
| assignee | No | Assignee name, handle, email, id, "me", or null to unassign. | |
| estimate | No | ||
| priority | No | Issue priority, from "urgent" down to "low". | |
| milestone | No | Milestone name or id on the project the issue is in, or null to take it off the milestone. | |
| reviewers | No | Reviewer names, handles, emails, ids, or "me". Replaces the reviewer list. | |
| description | No | Replaces the markdown body. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false) and not marked destructive. The description adds valuable behavioral context beyond annotations: partial updates, null semantics for clearing assignee/project/cycle, and empty reviewers array clearing. This meaningfully clarifies side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly packed with the most important usage semantics, with zero filler. The core operation is stated first, and the clearing behavior follows as a concise caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 14 parameters and no output schema, the description provides the essential cross-cutting behavior needed to call it correctly. It does not describe return values, but for an update operation this is not a blocker. The absence of an explicit 'use create_issue for new issues' exclusion 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 high (79%), so the schema explains most parameters. The description adds important cross-parameter semantics: only provided fields are updated, and null/empty values have a clearing effect rather than being ignored. This is exactly the kind of behavior that an agent cannot reliably infer from 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?
States a specific verb ('Change') and resource ('an existing issue'), which clearly distinguishes it from create_issue, delete_issue, and move_issue. The scope is unambiguous and the meaning is obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates this is for modifying an existing issue, not creating one, and adds critical partial-update semantics: only passed fields are touched. It does not explicitly name alternatives like create_issue, but the usage context is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_labelUpdate a labelAInspect
Rename a label, change its colour, or move it between a team and the whole workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| team | No | Team key, name or id to restrict the label to. Null or omitted keeps it workspace wide. | |
| color | No | ||
| label | Yes | Label name or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety profile beyond false flags, so the description carries some burden. It adds useful context about the types of changes (rename, color, team/workspace move) but does not disclose side effects such as whether moving a label to a team affects existing issues, or what happens if no update fields are provided. No contradiction with annotations.
Agents need to know what a tool does to the 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 compact sentence with parallel structure and no filler. The main purpose is front-loaded and 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?
For a simple four-parameter update tool with a reasonably descriptive schema, the definition covers the main call path well. The main gap is not warning that all update fields are optional, so a call with only the required label parameter might be invalid or a no-op. Still, the operations are clear enough for typical 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?
Schema description coverage is 50%, with label and team already documented. The description adds meaning for name and color by tying them to 'rename' and 'colour', and for team by describing the move operation. It does not fully compensate for the undocumented fields, nor does it mention that at least one update field should be provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses concrete verbs and a clear resource: 'Rename a label, change its colour, or move it between a team and the whole workspace.' It names the exact update operations and is easily distinguished from siblings like create_label, delete_label, and list_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by enumerating the three actions an agent can perform. It does not explicitly name alternatives or exclusions, but the distinction from create/delete/list operations is clear enough from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_milestoneUpdate a milestoneCInspect
Rename a milestone or move its target date.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| targetDate | No | Target date as YYYY-MM-DD. | |
| description | No | ||
| milestoneId | Yes | The milestone id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide minimal information. The description adds little beyond stating the mutation (rename/move) and does not disclose important behavior such as whether targetDate null clears the date, whether fields are overwritten, or side effects. It does not contradict annotations.
Agents need to know what a tool does to the 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 appropriately compact, though it could be slightly expanded to cover the missing description field 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 4-parameter mutation tool with no output schema and weak annotations, the description is incomplete. It omits the description field and fails to clarify null targetDate semantics, leaving an agent potentially unaware of full update capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to name ('rename') and targetDate ('move its target date'), which is useful since name lacks a schema description. However, it entirely misses the description parameter, and with schema coverage at 50%, it only partially compensates for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a milestone and specifies two actions (rename, move target date), which distinguishes it from create/delete/list milestones. However, it omits the ability to update the description field, making its stated purpose incomplete relative to 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?
No guidance is given on when to use this tool versus alternatives like create_milestone, delete_milestone, or reorder_milestones. There is no mention of prerequisites or scenarios where this tool is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectUpdate a projectBInspect
Change a project name, summary, status, health, lead or target dates. Only the fields you pass are touched.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| health | No | Project health such as "on_track". | |
| status | No | Project status such as "in_progress". | |
| project | Yes | Project name, slug or id. | |
| summary | No | ||
| startDate | No | Start date as YYYY-MM-DD. | |
| targetDate | No | Target date as YYYY-MM-DD. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the description must disclose mutation behavior. It does so by stating 'Change' and adds the valuable partial-update trait ('Only the fields you pass are touched'), which goes beyond what annotations provide. It does not mention error handling or idempotency, but given the annotation coverage, this is a solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. It avoids fluff and gets to the point quickly. The only issue is the erroneous 'lead' and slight inaccuracy in the field list, but the 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 mutation tool with no output schema and 8 parameters, the description covers the partial-update behavior but omits several fields and includes an incorrect one. It does not address error scenarios, required parameter (project), or response format, but for a simple update tool, it is minimally sufficient. The gaps and the error reduce its 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?
With 63% schema description coverage, the schema already explains health, status, project, startDate, and targetDate. The description lists some fields but adds no new meaning and even introduces a non-existent 'lead' parameter. It omits description and startDate entirely, so it does not compensate for the undocumented parameters (name, summary, description). This is a net-negative contribution to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Change') and resource ('a project'). It lists several updatable fields, which helps distinguish it from create/archive/delete siblings. However, it mentions 'lead' which is not a parameter, and omits 'description' and 'startDate', making it slightly inaccurate yet still conveying the core update intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Only the fields you pass are touched' provides a key usage guideline about partial updates, implying you don't need to pass all fields. However, it does not explicitly contrast with sibling tools like create_project or archive_project, nor state when to prefer this tool over alternatives. The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_stateUpdate a workflow stateADestructiveInspect
Rename a status, recolour it, or move it to another category. Changing the category re-derives the started, completed and canceled timestamps of every issue sitting in it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| team | Yes | A team key like "ENG", a team name, or a team id. | |
| color | No | ||
| state | Yes | A workflow state name or id on that team. | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the tool is known to be destructive. The description adds a specific side effect: changing category re-derives started, completed, and canceled timestamps of issues. This goes beyond annotations and warns of a non-obvious consequence. No contradiction with annotations.
Agents need to know what a tool does to the 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 core purpose is front-loaded, and the side-effect warning is concise. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main actions and a key side effect, but does not clarify whether multiple changes can be made in one call (the schema allows all three optional fields), nor does it mention failure conditions (e.g., non-existent state). No output schema exists, so return value behavior is unaddressed. Given the tool's complexity, some gaps remain.
Complex tools with many parameters or behaviors need more documentation. 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 40%, with team and state having descriptions while name, color, and category lack them. The description maps actions (rename, recolor, move category) to parameters but does not explicitly explain each parameter's format or constraints. It partially compensates for the low coverage by implying the purpose of each optional field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: rename, recolor, or move a workflow state to another category. It uses specific verbs and resource, and distinguishes from sibling tools like create_state and delete_state by implying modification of an existing state. The additional note about re-deriving timestamps clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 modifying an existing state (rename, recolor, recategorize) but does not explicitly state when to prefer this over alternatives like create_state or delete_state. It does not mention exclusions or prerequisites, leaving the agent to infer from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_teamUpdate a teamAInspect
Rename a team or change its description. The issue prefix cannot change.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| team | Yes | Team key like "ENG", team name, or team id. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal this is a non-read-only, non-idempotent mutation. The description adds useful specifics about which fields are mutable and the immutable prefix, but it does not mention permissions, potential side effects on related entities, or retry implications.
Agents need to know what a tool does to the 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, each adding necessary information. The primary action is front-loadedagainst the constraint, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema and annotations are sufficient for invoking a simple update tool. It states the mutable scope and the key invariant; minor gaps are lack of explicit return behavior and the requirement to provide at least one field to update.
Complex tools with many parameters or behaviors need more documentation. 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 compensates by mapping 'rename' to the name parameter and 'change description' to the description parameter. It does not restate schema constraints, but adds meaning to the two otherwise undocumented 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 names the exact operations ('Rename a team or change its description') and explicitly states what cannot be changed ('The issue prefix cannot change'). This clearly distinguishes the tool from create_team and other team-related mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool to update an existing team's name or description. It also provides an exclusion by stating the issue prefix cannot change, though it does not mention alternative tools or explicitly state that at least one of name/description should be provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_viewUpdate a saved viewADestructiveInspect
Rename a saved view, change its layout or grouping, share it, or replace the filter it stores. Read the view first with list_views and send the whole filter state back, because a filter replaces the stored one rather than merging into it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| view | Yes | View name or id. | |
| filter | No | The saved view state. Conditions live under filter.filter.children, each one {"kind":"condition","property":"priority","operator":"in","values":["1"]}. Other keys are teamId, projectId, groupBy, subGroupBy, orderBy, layout, display, visibility, locked and position. A key this list does not name is rejected rather than dropped. | |
| layout | No | ||
| shared | No | ||
| groupBy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds important behavioral detail: the filter replacement semantics and the instruction to send the whole filter state back. This goes beyond annotation coverage and helps the agent avoid data loss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence lists actions, the second immediately gives a critical usage caveat. Perfectly front-loaded and every word is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 key complexity (filter replacement), the prerequisite (list_views), and the need to send full state. The detailed filter schema handles parameter specifics. Minor omissions like error handling are not essential for a destructive update tool with no 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 only 33%, but the description ties each main parameter to its purpose (rename→name, layout→layout, grouping→groupBy, share→shared, replace filter→filter). The detailed filter schema complements the description, making parameter meaning clear.
Input schemas describe structure but not intent. Descriptions should explain 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 updates a saved view and enumerates specific actions: rename, change layout/grouping, share, or replace the filter. This distinguishes it from siblings like create_view, delete_view, and list_views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisite: 'Read the view first with list_views' and explains the critical behavior that a filter replaces the stored one rather than merging. This guides correct invocation, though it does not explicitly state when to use alternatives like create_view.
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.
92 tool updates
- First observed
active_cycle - First observed
add_comment - First observed
add_team_member - First observed
archive_doc - First observed
archive_issue - First observed
archive_project - First observed
attach_file - First observed
comment_on_doc - First observed
complete_cycle - First observed
copy_branch_name - First observed
create_cycle - First observed
create_doc - First observed
create_doc_collection - First observed
create_issue - First observed
create_label - First observed
create_milestone - First observed
create_project - First observed
create_state - First observed
create_team - First observed
create_view - First observed
cycle_progress - First observed
delete_comment - First observed
delete_doc - First observed
delete_doc_collection - First observed
delete_doc_comment - First observed
delete_issue - First observed
delete_label - First observed
delete_milestone - First observed
delete_project - First observed
delete_sprint - First observed
delete_state - First observed
delete_view - First observed
edit_comment - First observed
edit_doc_comment - First observed
get_analytics_overview - First observed
get_doc - First observed
get_issue - First observed
get_me - First observed
get_workspace_instructions - First observed
invite_member - First observed
link_github_repository - First observed
list_attachments - First observed
list_cycles - First observed
list_doc_collections - First observed
list_doc_comments - First observed
list_docs - First observed
list_github_repositories - First observed
list_inbox_conversation_events - First observed
list_inbox_conversations - First observed
list_issue_attachments - First observed
list_issue_comments - First observed
list_issue_pull_requests - First observed
list_labels - First observed
list_members - First observed
list_milestones - First observed
list_my_issues - First observed
list_notifications - First observed
list_project_milestones - First observed
list_projects - First observed
list_states - First observed
list_teams - First observed
list_users - First observed
list_views - First observed
mark_inbox_conversations_read - First observed
mark_issue_duplicate - First observed
mark_notification_read - First observed
move_doc - First observed
move_issue - First observed
move_to_cycle - First observed
project_progress - First observed
read_attachment - First observed
remove_member - First observed
remove_relation - First observed
remove_team_member - First observed
reorder_milestones - First observed
reorder_states - First observed
search_issues - First observed
set_relation - First observed
start_cycle - First observed
unarchive_doc - First observed
unarchive_issue - First observed
unlink_github_repository - First observed
update_cycle - First observed
update_doc - First observed
update_doc_collection - First observed
update_issue - First observed
update_label - First observed
update_milestone - First observed
update_project - First observed
update_state - First observed
update_team - First observed
update_view
Related MCP Connectors
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
- robellsOAuthio.robells
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
Project management for AI agents: tasks, docs, decisions and time in one shared team context.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceLightweight project management for teams and AI agents.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage a user's personal task garden through OAuth, with tools for listing, creating, updating, and completing tasks, managing spaces, and searching notes.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to securely read, update, and create tasks on ProjectFlow boards.MIT
- AlicenseBqualityAmaintenanceTask management API for AI agents. Create, delegate, and track tasks with agent identity, delegation chains, lifecycle webhooks, and persistent context.44100 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.