Kagan - AI Orchestration Layer
Kagan is an AI orchestration layer providing a Kanban-style interface for managing coding tasks, automating development workflows with AI agents, and integrating with external systems.
Task Management — Create (individually or in batch), list, get, update, delete, search, and add notes to tasks. Tasks support properties like title, description, priority, base branch, acceptance criteria, and agent backend. Also view task events, wait for status changes, and get task counts.
Agent Run Management — Start, cancel, kill, and manage interactive sessions for AI agents working on tasks. Retrieve run status/summaries, check for active sessions, and detach from sessions.
Project & Repository Management — Create, list, delete, and activate projects. Add repositories to projects and configure default branches.
Code Review Workflow — Approve, reject (with feedback), and merge review-ready tasks. Perform Git operations like rebasing, conflict handling, and rebase progression. Set or clear AI review verdicts for individual acceptance criteria.
Settings & Audit — Retrieve and modify system configuration settings; access audit logs.
Persona Preset Management — Audit, import, and export AI persona presets from/to repositories; manage a whitelist of trusted persona sources.
Plugin Integrations — Sync external items (e.g., GitHub issues) into Kagan tasks, and preflight-check plugin dependencies.
Interfaces & Agent Modes — Interact via a terminal Kanban board (TUI) or web dashboard. Supports both autonomous and pair programming modes across 14 AI coding agents.
Provides comprehensive management of Git repositories through task-based branches, supporting operations such as rebasing, merging approved changes, and tracking repository-specific branches.
Enables synchronization of GitHub issues into the Kanban board, mapping labels like priority and status to task properties while providing tools to verify GitHub CLI authentication.
Kagan is an OpenCode plugin that turns agent work into supervised tasks on a kanban board. Each task is an OpenCode session running in an isolated git worktree, moving through Backlog → In Progress → Review → Done with a gate at every transition — intake before the agent runs, review before you approve, merge only on your say-so.
The agent never touches your checkout. It works on a kagan/<slug> branch in its own worktree, a reviewer agent files ranked findings against the original task, and nothing reaches Done until you've triaged every finding and chosen where — or whether — to merge.
Install
You need OpenCode 1.17.13 or newer (see engines.opencode in
package.json).
Install globally so Kagan is available in every project:
opencode plugin -g @kagan-sh/kaganOr add a local clone to both OpenCode config files:
{
"plugin": ["/path/to/kagan"]
}Open the board with /kagan from the command palette, the kagan palette command, or <leader>k (the leader key defaults to ctrl+x).
From any regular OpenCode session, run /kagan-task to create board tasks conversationally — useful when planning several tickets at once without opening the board create dialog for each one.
For global npm installs, Kagan checks npm for newer stable releases and shows an available version in
the board footer. Press u, run /kagan-update, or use the command palette to review and confirm the
update; Kagan then installs the exact release and asks you to restart OpenCode. Local, file, and
development installs are never updated automatically. See
Updating.
Pass options by using the array-of-array form, or open /kagan-settings from the project — see the configuration reference.
Related MCP server: mcp-github
Docs
Documentation is available in docs/.
License
Available Tools
47 toolsanalytics_backend_statsC
Per-backend session stats: count, success rate, avg duration, retry rate.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation (statistics) but doesn't confirm no side effects, data freshness, or potential latency. Lack of detail beyond metric names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one sentence) but lacks structure—no separation of tool action from parameter info. Conciseness here sacrifices clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 stats tool with one parameter, the description should clarify aggregation period, grouping by backend, and response format. It only lists metrics, leaving gaps about default days and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, but the description does not mention the 'days' parameter at all. No explanation of its purpose, default behavior (30 days), or impact on results.
Input schemas describe structure but not intent. Descriptions should explain 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 explicitly states it provides per-backend session stats with specific metrics (count, success rate, avg duration, retry rate). It distinguishes itself from siblings like analytics_session_timeline (likely timeline data) and analytics_export (export functionality).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives (e.g., when to choose stats over timeline or export). No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_exportB
Export combined analytics (backend stats + session timeline) as JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, or the effect of the 'days' parameter. The tool's non-destructive nature is not explicitly stated, and the description only mentions output format, lacking depth.
Agents need to know what a tool does to the 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 extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description provides the essential purpose but lacks context on the default behavior (e.g., default time range) and what exactly the output JSON contains. It is minimally sufficient but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description does not mention the 'days' parameter or its meaning. The description adds no value beyond the schema, leaving the agent to infer the parameter's role from the parameter name only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports combined analytics (backend stats + session timeline) as JSON. It differentiates from sibling tools which likely provide individual components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a combined export is needed, but does not explicitly state when to use this versus sibling tools (analytics_backend_stats, analytics_session_timeline). No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_session_timelineB
Daily session counts by status over a given period.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description gives basic behavioral context (read-only, aggregated counts). It does not mention any side effects or special behaviors, but for a simple analytics tool this is minimal but 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?
The description is a single, concise sentence that communicates the core function. No extraneous 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?
While the tool is simple, the description lacks details about the output format, data scope, or any restrictions. For a tool with no output schema, the description should provide more context about what the response contains.
Complex tools with many parameters or behaviors need more documentation. 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 does not explain the parameter 'days' beyond implying a time period. The schema has 0% coverage and the description provides no additional semantic meaning for 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 tool provides daily session counts by status over a given period. However, it does not explicitly differentiate from sibling analytics tools like analytics_backend_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidelines or context about when to use this tool versus alternatives like analytics_backend_stats or analytics_export.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_listC
List recent audit log entries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read operation but fails to disclose any behavioral traits (e.g., time range, sorting, permissions). With no annotations, the description should provide more transparency but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) but at the cost of informativeness. It does not front-load key details; it simply restates the tool name's intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple schema (1 parameter, no output schema, no annotations), the description still fails to provide essential context such as the meaning of 'recent', the effect of the limit parameter, or the return format. It is incomplete for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'limit' with no description, and schema coverage is 0%. The description does not explain what 'limit' does or how to use it, leaving the agent completely uninformed.
Input schemas describe structure but not intent. Descriptions should explain 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 audit log entries (verb+resource). It is specific enough but lacks nuance like what 'recent' means. No sibling differentiation needed as there is no other audit tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives or when not to use it. The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bash_execA
Execute a shell command and return its combined output.
Streams each stdout/stderr line as a tool_execution_update event on
the per-task event stream when a task context is available (i.e. the
server was started with a bound session_id linked to a task).
Parameters
command: Shell command string (passed to /bin/sh -c or cmd.exe /c). cwd: Working directory. Defaults to the server process cwd. timeout: Wall-clock timeout in seconds (default 300). Pass null for no limit (use with care on long-running commands).
Returns
{"output": str, "exit_code": int, "timed_out": bool}
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| cwd | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions streaming of output as tool_execution_update events and the return format, but lacks safety warnings about arbitrary command execution and potential destructive effects. With no annotations, more transparency on risks would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for parameters and returns, and is concise without extraneous information. It could be slightly more terse, but overall 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?
Given the simple nature of the tool (3 params, no output schema), the description covers parameters, return format, and the streaming behavior adequately. Lacks error handling details, but is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to all three parameters beyond the schema: command string, cwd default, and timeout with null as unlimited. Since schema description coverage is 0%, the description fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes a shell command and returns combined output, specifying the shell used (/bin/sh -c or cmd.exe /c). This distinguishes it from sibling tools like terminal_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no explicit guidance on when to use it versus alternatives, such as terminal_run. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkpoint_createA
Create a git-tag checkpoint at the current worktree HEAD.
Captures the current HEAD commit of the task's worktree as a named checkpoint so the session can be rewound to this point later.
task_id is the ID of the task whose worktree to snapshot. step_index is a caller-assigned integer identifying this checkpoint (should be monotonically increasing within a session). description is an optional human-readable label for the checkpoint.
Returns dict with: task_id, session_id, step_index, commit_sha, tag_name, description, created_at.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| step_index | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool creates a git-tag, captures HEAD, and returns a detailed dict. However, it does not mention potential failure cases (e.g., if the task doesn't exist or if the tag already exists), which would improve transparency. Still, it is generally transparent for a simple create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: first sentence declares the action, second explains the purpose, then lists parameters succinctly, and ends with return value. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema is described in the description (though not shown in the input), the description covers inputs, outputs, and purpose. It could be improved by noting whether overwriting an existing step_index is allowed or if there are side effects. However, for a create tool with three parameters, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does so effectively: task_id is the task's worktree, step_index is a caller-assigned integer (advises monotonically increasing), description is optional human-readable label. This adds significant meaning beyond the raw schema, especially for step_index which has no enum or default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a git-tag checkpoint at the current worktree HEAD, explaining the action with specific verb ('Create a git-tag checkpoint') and resource ('current worktree HEAD'). It also distinguishes itself from siblings like checkpoint_list and session_rewind by focusing on creation, not listing or rewinding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (snapshotting the worktree for later rewinding) but lacks explicit guidance on when not to use or alternatives. It does not mention other checkpoint-related tools like checkpoint_list for listing or session_rewind for using checkpoints, though the purpose is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkpoint_listA
List all checkpoints for the task's current session.
Returns checkpoints sorted by step_index (ascending). task_id is the ID of the task to query.
Returns dict with: task_id, session_id, checkpoints (list of checkpoint dicts).
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of disclosing behavioral traits. It explains the sorting order (by step_index ascending) and the return structure (dict with task_id, session_id, checkpoints), which is beyond the schema. However, it does not mention error handling or rate limits, which are minor for a simple 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?
The description is concise, with the first sentence stating the primary purpose, followed by sorting, parameter explanation, and return format. Every sentence adds value, and there is no redundancy. The structure is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no annotations, output schema exists), the description is complete. It covers the purpose, sorting, parameter meaning, and return structure. There is no missing information that would hinder an agent from using 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 only defines task_id as a string with no description. The tool description adds meaning by explaining that task_id is 'the ID of the task to query', which provides context beyond the schema. With 0% schema description coverage, this compensation is valuable.
Input schemas describe structure but not intent. Descriptions should explain 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 all checkpoints'), the resource ('checkpoints'), and the scope ('for the task's current session'). It also specifies sorting by step_index, which differentiates it from the sibling 'checkpoint_create' tool, which creates checkpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (to list checkpoints) but does not explicitly state when not to use it or provide alternatives. The context with sibling 'checkpoint_create' suggests the distinction, but there is no direct guidance on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_edit_fileA
Apply one or more old→new text replacements to an existing file.
Preserves the file's original BOM and line-ending style (CRLF/LF). Each edit must supply "old_text" (unique substring) and "new_text".
Returns: {"path", "bytes_written", "bom_preserved", "eol_style"}.
Raises on: empty old_text, text not found, duplicate matches, overlapping edits, replacement produces identical content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| edits | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses preservation of BOM and line-ending style, return fields, and error conditions (empty old_text, not found, duplicates, overlapping, identical content). This is thorough, though it could mention atomicity or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose. Subsequent lines cover behavioral details, return value, and error conditions without redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 2 required parameters (path, edits) and no output schema, the description adequately explains inputs, outputs, and errors. It could specify whether edits are applied sequentially or simultaneously, but this is a minor gap for an editing tool of moderate 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 input schema has 0% description coverage, leaving the tool's parameter semantics entirely to the description. The description adds meaning by specifying that edits must contain 'old_text' and 'new_text' fields (though schema shows additionalProperties: true) and that 'path' is required. It does not fully detail the structure of edits objects (e.g., data types), but compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies one or more old→new text replacements to an existing file, with a specific verb and resource. It distinguishes from sibling tools like fs_read_file and fs_write_file which handle entire file 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 explains that each edit must supply 'old_text' (unique substring) and 'new_text', providing clear usage guidance. However, it does not explicitly state when to use this tool over alternatives like fs_write_file for full file rewrites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_read_fileA
Read a file from disk and return its content as text.
Returns: {"path", "content", "eol_style", "has_bom", "encoding"}.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool reads a file and returns text, and lists the return fields. It does not mention error behavior, permissions, or encoding specifics, but is adequate for a straightforward read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences: one for the purpose and one for the return structure. It is front-loaded with the action and resource, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and no output schema, the description is fairly complete. It lists the return fields, which is helpful. It could mention error handling for missing files, but is sufficient 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?
The schema has 0% description coverage for the single 'path' parameter. The description does not add any meaning about path format, required permissions, or constraints, leaving the agent to infer from the parameter name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'file from disk', and lists return fields. It distinguishes from sibling tools like fs_edit_file and fs_write_file by being read-only, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. However, its simple read operation is implied by the name and contrast with edit/write siblings, offering some contextual hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_write_fileA
Write content to a file, creating or overwriting it.
Use this for new files or full rewrites. Does not preserve existing BOM or EOL style — use fs_edit_file for that.
Returns: {"path", "bytes_written", "bom_preserved", "eol_style"}.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool creates or overwrites files, does not preserve BOM/EOL, and lists the return fields. However, it omits details like whether parent directories are created, handling of paths, or error behavior. Still, for a simple file write tool, it is fairly 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 three sentences with no extraneous words. The first sentence states the purpose, the second gives usage guidance, and the third specifies the return value. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and lack of output schema, the description covers key points: when to use, how it differs from sibling, and return fields. However, it omits important context for a write tool, such as whether it overwrites silently, encoding expectations, or error handling. This leaves gaps 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?
Input schema coverage is 0%, so the description must add meaning. It only implicitly refers to 'content' and 'path' without explaining their format, constraints, or semantics. For example, it does not clarify if the path is absolute/relative or if content is plain text. The description adds little beyond the schema property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Write content to a file, creating or overwriting it.', specifying the verb (write), resource (file), and action (create/overwrite). It also distinguishes this tool from its sibling fs_edit_file by noting that it does not preserve BOM or EOL style.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'Use this for new files or full rewrites.' and contrasts with the sibling tool: 'Does not preserve existing BOM or EOL style — use fs_edit_file for that.' This clearly tells the agent when to use this tool and when to use an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insight_addA
Add a project insight for a task.
Insights are categorized observations extracted from agent sessions. Valid categories: pattern, error, architecture, preference, dependency. The insight is persisted as a TaskNote and will be surfaced in future task prompts alongside [LEARNING] notes.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| category | Yes | ||
| content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that the insight is persisted as a TaskNote and will be surfaced in future task prompts alongside [LEARNING] notes, providing important side-effect information. No annotations are present, so the description carries the full burden and does so adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a one-line summary followed by a bulleted list of details. Every sentence adds value 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?
The description explains the persistence and future impact of the insight. Given an output schema exists (not shown), the description is sufficiently complete, though it could mention potential constraints like idempotency or duplicate handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three required parameters with no descriptions (0% coverage). The description compensates by listing valid category values and implying content is the observation text. However, it does not elaborate on task_id format or content 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 clearly states the tool's action: 'Add a project insight for a task.' It specifies that insights are categorized observations and lists valid categories, distinguishing it from sibling tools like insight_list and insight_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool (recording categorized observations) and lists valid categories, but does not explicitly contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insight_listB
List all insights recorded for a task.
Returns insights grouped by category with their content.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only adds that results are 'grouped by category'. It does not disclose read-only nature, potential side effects, pagination, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and an output schema (not shown but exists), the description covers the core purpose and output structure. It could briefly mention that the task_id is required, but that is implicitly clear from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no param descriptions), but the description mentions 'for a task', which implies the task_id parameter's role. However, no additional constraints or format details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'all insights recorded for a task'. It also specifies the return grouping and content. Among sibling tools (insight_add, insight_remove), this is distinct as the read-only list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives. There is no mention of prerequisites, exclusions, or conditions where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insight_removeA
Remove an insight from a task by matching its content text.
Performs a case-insensitive exact content match. Returns removed=True if a matching insight was found and deleted, removed=False otherwise.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: case-insensitive exact match, return flag (removed=True/False). However, it does not address edge cases like multiple matches or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose, then specific details. 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 simple two-parameter tool with an output schema, the description covers the essential behavior and return value. Minor gaps (e.g., handling multiple matches) exist but are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description effectively explains the content parameter (case-insensitive match) and implies task_id's role, adding meaning beyond the schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: remove an insight from a task by matching its content text. It specifies exact case-insensitive matching, distinguishing it from sibling tools like insight_add and insight_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 explains when to use the tool (to remove an insight via content) but does not explicitly mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integration_preflightA
Check whether an integration's external dependencies are satisfied.
Returns pass/warn/fail checks for the requested integration (or all integrations). For github: verifies gh CLI is installed and authenticated.
Args: integration: Integration to check. If omitted, checks all enabled integrations.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It states returns pass/warn/fail and gives github example, but does not mention whether operation is read-only, performance, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs with clear topic sentence, return info, and parameter description. No redundancy, efficiently 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?
Covers purpose, return type (pass/warn/fail), parameter behavior. Output schema exists, so return details are not needed. Adequate for a simple preflight tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: explains 'integration' param selects tool-specific integration, and omitting checks all enabled. Schema coverage is 0%, but description compensates well.
Input schemas describe structure but not intent. Descriptions should explain 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 tool checks integration dependency satisfaction, using specific verb 'checks' and resource 'integration dependencies'. It differentiates from sibling tools like integration_preview and integration_sync by focusing on preflight validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage as a pre-check before integration tasks, but lacks explicit guidance on when to use versus alternatives like integration_preview or integration_sync. Does not specify prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integration_previewA
Preview issues from a GitHub repository without importing.
Returns a list of issues matching the filters so the user can select which ones to import via integration_sync with issue_numbers.
Args: integration: Integration name (e.g. "github"). repo: Repository in owner/repo format. state: Issue state filter — "open", "closed", or "all". labels: Filter by labels (AND logic). limit: Maximum issues to fetch (1-500).
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | ||
| repo | Yes | ||
| state | No | open | |
| labels | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it's a preview without importing, implying read-only, but does not explicitly declare safety or side effects. Lacks disclosure on authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a purpose sentence, summary, and list of arguments. Each sentence adds value, though slightly verbose. Front-loaded with key 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?
Covers purpose, workflow (preview then import), and parameter details. Mentions sibling tool by name. Doesn't address error handling or authentication, but given output schema exists and simplicity, it is fairly 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?
Despite 0% schema coverage, description provides detailed explanations for all 5 parameters (integration, repo, state, labels, limit) including default behavior, filter logic, and valid ranges, fully compensating.
Input schemas describe structure but not intent. Descriptions should explain 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 verb 'preview' and resource 'issues from a GitHub repository'. It distinguishes from sibling 'integration_sync' by specifying 'without importing' and referencing the import tool for later use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (preview before import) and directs to 'integration_sync' for import. Lacks mention of when not to use or alternatives like 'integration_preflight', but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integration_syncA
Sync external items from an integration source into the active project.
Imports issues from the specified repository as kagan tasks. Labels like
priority:high on GitHub issues auto-map to task properties. Operation
is idempotent — previously synced issues are skipped.
Args: integration: Integration to sync (e.g. "github"). repo: Repository in owner/repo format. state: Issue state filter — "open", "closed", or "all". labels: Only sync issues with ALL of these labels. limit: Maximum issues to fetch (1-500). issue_numbers: Import only these specific issue numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | ||
| repo | Yes | ||
| state | No | open | |
| labels | No | ||
| limit | No | ||
| issue_numbers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: idempotent operation, auto-mapping of labels (e.g., 'priority:high'), and that it creates 'kagan tasks'. It does not detail authentication, rate limits, or side effects, but the idempotency hint mitigates concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a brief summary followed by an Args list. Every sentence is informative, no redundant content. It is well-structured 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?
Given 6 parameters and the presence of an output schema, the description covers the purpose, behavior, and all parameter details effectively. It explains the auto-mapping feature and idempotency, providing a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters are described in the Args section, adding meaning beyond the input schema (e.g., 'repo' expects owner/repo format, 'state' defaults to 'open', 'labels' are AND filters). Schema description coverage is 0%, so the description fully compensates.
Input schemas describe structure but not intent. Descriptions should explain 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 syncs external items (issues) from an integration source into the active project as tasks. It uses specific verbs and resources, and distinguishes itself from siblings like integration_preflight and integration_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains idempotency (skipping previously synced issues) and details parameter use (e.g., state filter, labels, limit). However, it does not explicitly contrast with alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persona_exportC
Export local persona presets to GitHub.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| path | No | .kagan/personas.json | |
| branch | No | ||
| commit_message | No | chore: publish kagan persona presets |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states that it exports to GitHub, but gives no details on side effects (e.g., overwriting existing files, commit behavior, permissions). This is insufficient for an agent to understand the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. However, it is overly minimal, sacrificing necessary information for brevity. It earns its place but lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and no annotations, the description is extremely incomplete. It does not explain parameter usage, behavior, return values, or prerequisites. The agent cannot correctly invoke this tool based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters with 0% description coverage. The tool description does not explain the meaning of any parameter (repo, path, branch, commit_message). Since the schema lacks descriptions, the description must compensate, but it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain 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 (export) and resource (local persona presets) to a destination (GitHub). It is not a tautology and provides a specific verb+resource pair. However, it does not explicitly differentiate itself from sibling tools like persona_import, though the names imply a complementary relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites (e.g., authentication, repository existence) or when not to use it. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persona_importA
Import persona presets from GitHub into Kagan.
Progressive trust behavior:
Low risk: Auto-imported (with auto_confirm=True)
Medium risk: Imported; trust assessment returned for review
High risk: Requires acknowledge_risk=True flag
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| path | No | .kagan/personas.json | |
| ref | No | ||
| acknowledge_risk | No | ||
| merge_mode | No | merge | |
| auto_confirm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully explains the progressive trust behavior for low, medium, and high risk. It discloses the auto-import, trust assessment return, and require flag, adding valuable 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?
The description is concise: three short paragraphs with clear front-loading of the main purpose. No unnecessary words, all sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the risk behavior well but does not explain output or all parameters. No output schema exists, so missing return value info. Adequate but with 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 0%, so the description should explain parameters. It only covers auto_confirm and acknowledge_risk, leaving repo, path, ref, and merge_mode unaddressed. Parameter names are somewhat self-explanatory but insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (import), resource (persona presets), source (GitHub), and destination (Kagan). It clearly distinguishes from sibling tools like persona_export, persona_inspect, and persona_trust.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 detailed context on when to use each risk level and parameters like auto_confirm and acknowledge_risk. However, it does not explicitly state when not to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persona_inspectB
Audit and preview a persona preset repository before import.
Returns trust assessment including:
trust_tier: low_risk, medium_risk, or high_risk
trust_score: 0.0-1.0 reputation score
findings: security audit results
personas: preview of available personas
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| path | No | .kagan/personas.json | |
| ref | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It lists return fields but does not mention side effects, permissions, idempotency, or whether it modifies state. The phrase 'before import' hints at read-only, but this is insufficient without explicit statements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and includes a structured bullet list for return values. It is concise with no redundant sentences, though the bullet list takes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and no annotations, the description is incomplete. It explains return values well but fails to cover parameter meanings, usage context, and behavioral details. A more comprehensive description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters (repo, path, ref) with 0% description coverage. The description adds no explanation for any parameter, leaving the agent to infer meaning from schema titles alone. This is a major 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 'Audit and preview a persona preset repository before import,' specifying the action (audit/preview) and resource (persona preset repository). It distinguishes this tool from siblings like persona_import and persona_trust by its pre-import audit role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before importing (returns trust assessment) but does not explicitly state when to use vs. not use, nor mentions alternatives like persona_trust. The context is clear but lacks exclusions or comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persona_trustB
Manage trusted persona preset repositories.
Args: action: One of "list", "add", "remove". repo: Repository identifier (required for "add" and "remove").
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| repo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It does not state side effects (e.g., what happens when adding an existing repo), security implications, or whether the action is reversible. The description is minimal and does not cover behavioral context beyond the basic operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of one line for purpose and a bullet list of arguments. It is front-loaded with the main purpose and efficiently communicates the essential information without 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 simple tool with 2 parameters and no output schema, the description covers the basic operations but lacks details on return values, error handling, or prerequisites like authentication. It is minimally complete but leaves the agent without full context for reliable 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 description adds meaning by specifying that 'action' is one of 'list', 'add', 'remove', which is not in the schema (no enum). It also notes that 'repo' is required for 'add' and 'remove'. However, it does not explain the format or validation of the repo identifier, leaving significant gap with 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages 'trusted persona preset repositories' and lists the specific actions (list, add, remove), distinguishing it from sibling tools like persona_export or persona_import. However, the verb 'manage' is somewhat generic, lacking a more precise action verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to add vs remove a repository or how it relates to other persona tools. The description does not mention any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_listA
List all projects with repos inlined and active status.
Returns each project with its attached repositories and whether it is the currently active project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must convey behavior. It describes the output (projects with repos and active status) which implies a read-only operation, but does not disclose any additional traits like performance, side effects, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the main purpose and add clarifying detail. 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?
No output schema, so description must explain return value. It does so clearly: returns each project with attached repositories and active status. Complete for a list tool with no parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. Description does not need to add parameter information since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all projects with repos inlined and active status. The verb 'List' and resource 'projects' are specific. Distinguishes from siblings like project_setup and project_update which are 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?
No guidance on when to use this tool versus alternatives. Description is purely declarative with no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_setupA
Create a new project, optionally attach repos and set it active.
Args: name: Project name (required). repo_paths: Optional list of repository paths to attach. set_active: Whether to set this project as active (default True).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| repo_paths | No | ||
| set_active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It only states the creation action and default behavior for set_active, but omits any side effects, permissions required, or return format. Minimal beyond the obvious.
Agents need to know what a tool does to the 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 (two lines plus an Args block) and front-loads the core action. Every sentence adds value, though the docstring format is slightly rigid.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no output schema and no annotations, the description should cover return values, error conditions, or dependencies. It only describes inputs, leaving the agent uninformed about what happens after creation.
Complex tools with many parameters or behaviors need more documentation. 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 description coverage, the description adds meaning by explicitly listing parameters: name (required), repo_paths (optional list), set_active (optional with default). This compensates well, though no additional constraints or value ranges are noted.
Input schemas describe structure but not intent. Descriptions should explain 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 'Create a new project' with a specific verb and resource, distinguishing it from sibling tools like project_list and project_update which handle listing and updating existing 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 mentions optional parameters (repo_paths, set_active) but provides no guidance on when to use this tool versus alternatives or any prerequisites. It lacks explicit when-not-to-use or contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_updateA
Update an existing project: set active, add repo, set default branch, or delete.
Args: project_id: The project to update (required). set_active: If True, set this project as the active project. add_repo_path: Path of a repository to attach. repo_id: Repository ID (required when setting default_branch). default_branch: New default branch for the repo identified by repo_id. delete: If True, delete the project and return early.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| set_active | No | ||
| add_repo_path | No | ||
| repo_id | No | ||
| default_branch | No | ||
| delete | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions destructive actions like 'delete' and 'return early', but lacks detailed side effects (e.g., impact on related resources, permission requirements). No annotations provided, so the description carries the full burden, but it is only partially 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 includes a summary line and a bullet-style args list. While clear, it is somewhat verbose; the args list could be more concise. No wasted words, but not as front-loaded as possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema, the description covers parameter semantics adequately but omits return value information and broader behavioral context (e.g., what happens after a non-delete update). Basic completeness, but 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 coverage is 0%, but the description explains each parameter's purpose (e.g., 'project_id: The project to update (required).'). This adds significant meaning beyond the schema titles, compensating well for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing project' and enumerates specific actions (set active, add repo, set default branch, delete), making the purpose explicit. It distinguishes from project_setup and project_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?
No guidance is provided on when to use this tool versus siblings. It does not mention prerequisites, when to choose alternatives like project_setup, or what happens on error.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_clear_verdictsA
Clear all AI review verdicts for a task. Call before starting a new review.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the destructive nature (clearing verdicts) but lacks details on side effects, authorization, or reversibility. Adequate for a simple 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?
Two short sentences with no wasted words. Front-loaded with the action and resource. Very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no output schema, low parameter count, and no annotations, the description is sufficient for a simple clear operation. Could mention irreversibility for completeness, but overall 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 0%, but description adds no information about the single parameter 'task_id' beyond what the schema provides. It would benefit from clarifying that task_id refers to a task from task_list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (clear), the resource (AI review verdicts for a task), and the context (before starting a new review). It distinguishes itself from sibling tools like 'review_verdict' and 'review_decide'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 says 'Call before starting a new review,' providing clear usage context. However, it does not mention when not to use it or alternatives, which would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_conflictsC
Return merge or rebase conflict details for a task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavior beyond returning details, such as what happens when there are no conflicts, required permissions, or any 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?
Extremely concise single sentence, no filler. However, it could be improved by adding a brief structure (e.g., listing what the output contains).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with one parameter and no output schema, the description is minimal. Missing details like return format, error conditions, and whether conflicts are returned for both merge and rebase scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description adds no explanation for the 'task_id' parameter beyond its name. While the name is self-explanatory, the description fails to add value like format or 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?
Describes specific verb 'return' and resource 'merge or rebase conflict details for a task'. Clearly distinguishes from sibling tools like 'review_merge' and 'review_rebase' which perform actions rather than query conflict details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., review_verdict, review_merge). Does not mention prerequisites or context where conflict details are available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_decideB
Approve or reject a review-ready task.
verdict must be "approve" or "reject". feedback is required when verdict is "reject" and ignored on "approve".
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| verdict | Yes | ||
| feedback | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It reveals that the tool modifies state (approve/reject) but does not disclose side effects, reversibility, required permissions, or error conditions. The feedback rule is helpful but insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering the core purpose, verdict constraints, and feedback rule. No redundant information. Efficiently structured with the main action first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 provides the essential operation but lacks output details, prerequisites (e.g., task must be in review state), and error scenarios. For a simple tool with no output schema, it is minimally adequate but leaves gaps that could cause incorrect usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning for 'verdict' (lists allowed values) and 'feedback' (conditional requirement). However, 'task_id' is left unexplained, and no parameter has full semantic coverage. The description partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('approve or reject') and the resource ('a review-ready task'), and includes explicit valid values for verdict. This differentiates it from sibling review tools like review_verdict at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 such as review_verdict, review_merge, or review_conflicts. The agent must infer from the description that it is for final approval/rejection, but explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_mergeB
Merge an approved task into its base branch.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states 'merge' without disclosing behavioral traits (e.g., destructive nature, failure conditions, required permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 7 words that is front-loaded and contains no redundant 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?
Given the low complexity (one parameter) and lack of output schema, the description fails to explain return values, conflict handling, or success criteria, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not elaborate on the 'task_id' parameter beyond what the schema already shows. Agent gets no added semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (merge), resource (task), and context (approved, base branch). It distinguishes from siblings like review_decide or review_rebase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like review_conflicts or review_rebase. Missing prerequisites (e.g., task must be approved, no conflicts).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_rebaseB
Start, continue, or abort a rebase of the task branch onto its base branch.
action must be "start", "continue", or "abort".
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions three actions but does not disclose behavioral traits like side effects (e.g., repository modification), prerequisites (e.g., existing rebase for continue/abort), or idempotency. The description is insufficient for understanding 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?
The description consists of two concise sentences with no wasted words. The action constraint is placed in the second sentence, which could be front-loaded, but overall it is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with no output schema, the description omits critical context: what happens on each action (start vs continue vs abort), error conditions, and side effects. This leaves the agent with insufficient information to use 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 provides no descriptions (0% coverage), so the description must compensate. It adds meaning by specifying that action must be 'start', 'continue', or 'abort', but does not describe task_id beyond its name. This partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain 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 'Start, continue, or abort a rebase of the task branch onto its base branch.' This provides a specific verb (start/continue/abort) and resource (rebase), distinguishing it from sibling tools like review_merge or review_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lists the three possible actions, implying usage for rebase operations, but lacks explicit guidance on when to use this tool versus alternatives (e.g., review_merge). It does not state when not to use or provide context for choosing among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_verdictA
Record a pass or fail verdict for a single acceptance criterion.
Call this once per criterion during review, BEFORE calling review_decide. verdict must be 'pass' or 'fail'. reason is a one-line justification.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| criterion_index | Yes | ||
| verdict | Yes | ||
| reason | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds constraints: verdict must be 'pass' or 'fail', and reason is a one-line justification. However, it does not disclose behavior on duplicate calls, error handling, or permissions, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with three sentences, front-loading the purpose, then usage order, then parameter constraints. Every sentence is necessary and no words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the absence of an output schema, the description covers the essentials: what it does, when to use it, and key parameter constraints. It lacks details on return values and duplicate calls but is largely sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It only partially explains 'verdict' (valid values) and 'reason' (one-line justification), but does not describe 'task_id' or 'criterion_index', leaving half of the required parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as recording a pass/fail verdict for a single acceptance criterion, distinguishing it from sibling tools like review_decide by specifying that it should be called before that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states to call this once per criterion and before review_decide, providing clear ordering guidance. It does not mention when not to use it or alternatives, but the context is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_cancelB
Cancel a task run and stop its active session.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the 'Cancel' and 'stop active session' language indicates a destructive, state-changing operation. However, it lacks details on irreversibility, permission requirements, or effects on associated data, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the core action. It is front-loaded and contains no extraneous words, making it concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description omits important context: it doesn't clarify the parameter's meaning, state prerequisites, or mention output. Given no output schema and no annotations, it leaves gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter task_id is ambiguous (run ID vs task ID) and the description does not clarify it. With 0% schema coverage, the description should compensate but fails to explain the parameter's semantics or format.
Input schemas describe structure but not intent. Descriptions should explain 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 'Cancel' and the resource 'task run', and adds 'stop its active session' to clarify the scope. Among siblings like run_start, run_detach, and task_delete, it distinctly identifies its action on a run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., run_detach or task_delete). It does not mention prerequisites, state requirements, or scenarios where cancellation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_detachC
Detach from an interactive session and update task state.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It states that the tool detaches and updates task state, implying a write operation, but does not disclose side effects, required permissions, or whether the operation is reversible. Minimal behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence). It is front-loaded with the key action, but may be too brief to be fully helpful. Every word is relevant, but more details could improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though an output schema exists (reducing the need to describe return values), the description omits important context such as what 'detach' specifically accomplishes, the state transition involved, or any constraints. For a simple tool with one parameter, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it does not explain the 'task_id' parameter beyond its name and title. No additional context on format, purpose, or constraints is 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 a specific verb 'Detach' and resource 'interactive session', and mentions updating task state. It clearly indicates the tool's function. However, it does not explicitly differentiate from sibling tools like 'run_cancel' or 'terminal_run', but the action is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, such as an active interactive session, or exclusions. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_getA
Get the latest task and session status for a task.
When a session exists, also returns context window usage fields: context_window_used, context_window_size, usage_ratio, needs_compaction.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the return type ('latest task and session status') and conditional fields, but does not disclose authentication needs, rate limits, idempotency, or whether the operation is read-only (implied but not explicit). Adequate for a simple GET but lacks depth.
Agents need to know what a tool does to the 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: first states core purpose, second adds conditional detail. Efficient and front-loaded with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of an output schema (not shown but indicated), the description need not detail return values. For a single-parameter tool without annotations, the description covers its primary function and conditional behavior well. Lacks only a note on side effects or permissions, but the operation is inherently read-heavy.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, yet the description adds minimal meaning to the single parameter 'task_id' beyond stating it's for a task. No format, example, or constraints are provided. The description should compensate for the missing schema descriptions but 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 states the tool retrieves 'latest task and session status' for a task, with explicit mention of conditional context window fields. This distinguishes it from sibling tools like 'task_get' (likely more generic) and 'run_summary' (possibly aggregated view).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 retrieving latest status with session details, but provides no explicit when-to-use, when-not-to-use, or alternative tool references. Without context signals, an agent may not know when to prefer this over similar tools like 'task_get' or 'run_summary'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_startC
Start a managed or attached run for a task.
Creates the task worktree first if one does not already exist.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| agent_backend | No | ||
| launcher | No | ||
| persona | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey all behavioral traits. It discloses that it creates a worktree if missing, but does not mention mutability, idempotency, permissions, or any other side effects. 'Start' implies a write operation, but no more details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that convey the essential action and one notable behavior. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameter descriptions, and 4 parameters, the description is severely incomplete. It does not explain what 'managed' vs 'attached' means, how parameters affect behavior, or what the return value is. Falls far short of providing a complete 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?
Schema description coverage is 0%, and the description provides no elaboration on the four parameters (task_id, agent_backend, launcher, persona). Parameter names like 'persona' may be unclear, and the description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a managed or attached run for a task, with a specific action and resource. It also mentions a side effect (creating worktree). This distinguishes it from sibling tools like run_cancel or run_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The description only states what the tool does, not when it is appropriate to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_summaryC
Summarize runs, sessions, worktrees, and token usage for tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. However, it only states 'Summarize' without explaining side effects, permissions, or output characteristics. The agent cannot infer safety or impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is concise and front-loaded with the main action. It avoids unnecessary words, though it sacrifices detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's optional parameter and lack of output schema, the description fails to explain what the summary includes, how task_ids affects results, or the output format. It is insufficient for the agent to use 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 sole parameter 'task_ids' has 0% schema description coverage and is not explained in the tool description. The agent receives no guidance on its purpose, format, or behavior (e.g., filtering vs. required).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes runs, sessions, worktrees, and token usage for tasks. It uses a specific verb and resource list, and the scope is distinct from siblings that focus on individual runs or tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like run_get or task_list. The description implies aggregation but does not clarify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_rewindA
Rewind the task's worktree to the commit captured at step_index.
Performs a hard reset of the worktree to the checkpoint's commit SHA. Any uncommitted changes and commits after the checkpoint are discarded.
task_id is the ID of the task to rewind. step_index identifies which checkpoint to restore.
Returns dict with: task_id, session_id, step_index, commit_sha.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| step_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It clearly states that a 'hard reset' occurs and 'any uncommitted changes and commits after the checkpoint are discarded,' which is good disclosure of destructive behavior. It also mentions the return dict structure. However, it does not cover permissions or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose first, then mechanism, consequences, parameter explanations, and return format. Every sentence adds value 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 destructive tool with two simple parameters and an output schema mentioned in the description, it is fairly complete. It explains the action, consequences, and return value. Missing are potential error cases (e.g., invalid step_index) but overall 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?
With 0% schema description coverage, the description compensates by explaining each parameter: 'task_id is the ID of the task to rewind' and 'step_index identifies which checkpoint to restore.' This adds meaningful context beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain 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 'rewind' and clearly identifies the resource as 'task's worktree' to a checkpoint. It distinguishes from sibling tools like checkpoint_create (creates) and checkpoint_list (lists), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for restoring a worktree to a previous checkpoint but does not explicitly state when to use this tool versus alternatives (e.g., viewing checkpoints first with checkpoint_list). No guidance on prerequisites or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings_getA
Read allowlisted runtime settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description only states it reads settings. No disclosure of behavioral traits like idempotency, auth needs, or what happens if settings are empty.
Agents need to know what a tool does to the 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 with no redundancy. 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 read tool with no parameters and no output schema, the description is adequate but lacks usage context and behavioral details that could help the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is complete. The description doesn't need to add parameter info, and baseline is appropriately high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Read') and the resource ('allowlisted runtime settings'), making it distinct from sibling tools like 'settings_set'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to read vs modify settings). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings_setC
Update one allowlisted setting value.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It says 'Update' implying mutation, but does not mention side effects, overwrite behavior, or what happens if key is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence, no filler. Conciseness is high, though at the cost of missing important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no output schema or annotations, the description should provide more context about what 'allowlisted' means, error handling, and idempotency. It is insufficient for reliable 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 has zero description coverage, and description adds no extra meaning to the two parameters. It only mentions 'allowlisted setting value' collectively, not per 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?
Description clearly states it updates one allowlisted setting value. Verb 'Update' is specific, and 'allowlisted setting value' distinguishes from sibling settings_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, prerequisites, or when not to use it. Lacks context beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_createA
Create one or more tasks on the active board.
For a single task, pass title directly.
For multiple tasks, pass tasks as a list of entries (each with at least a title).
Include acceptance criteria when you want downstream review to stay concrete.
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | No | ||
| title | No | ||
| description | No | ||
| priority | No | ||
| base_branch | No | ||
| acceptance_criteria | No | ||
| agent_backend | No | ||
| launcher | No | ||
| repo_id | No | ||
| github_issue | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions creating tasks on the 'active board' but does not explain what 'active board' means, potential side effects, permissions required, rate limits, or error behavior. The description is too sparse for a creation 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 concise (three short sentences), front-loaded with the main action, and each sentence provides distinct value. There is no verbose or redundant language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and no annotations, the description is insufficient. It explains only a few parameters and omits details on prerequisites, return behavior, or error handling, making it inadequate for a tool of this 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 0%. The description adds value by explaining the title vs tasks distinction and the purpose of acceptance_criteria. However, other parameters like priority, base_branch, agent_backend, launcher, repo_id, and github_issue receive no explanation, leaving their meaning unclear.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Create one or more tasks on the active board.' It distinguishes between single and multiple task creation, making the tool's purpose 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 provides explicit guidance: 'For a single task, pass title directly. For multiple tasks, pass tasks as a list... Include acceptance criteria when you want downstream review to stay concrete.' This frames when to use each parameter, though it does not explicitly state when not to use the tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_deleteC
Delete a task permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses irreversible deletion ('permanently') but omits details about side effects, such as whether running tasks can be deleted, whether cascading deletions occur, or if confirmation is required. The word 'permanently' hints at irreversibility but is not elaborated.
Agents need to know what a tool does to the 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 of six words, which is extremely concise. However, it lacks any structural elements like bullet points or sections, and its brevity comes at the cost of completeness. It earns a 4 because it is efficient but not 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 simplicity of the tool (one param, no output schema, no annotations), the description is minimal but sufficient to identify the tool's purpose. However, it lacks behavioral context (irreversibility implications) and parameter context (what task_id is). The tool is not complete enough for an agent to use without danger.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'task_id' has no description in the schema (0% coverage). The tool description adds no additional meaning about what task_id represents, its format, or how to obtain it. The baseline for high schema coverage is 3, but with 0% coverage, the description should compensate, and it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete a task permanently' clearly states the action (delete) and the resource (task), with the adverb 'permanently' adding finality. It distinguishes from sibling tools like task_get, task_list, task_update, which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool (e.g., only when the task is complete or not running) or when to avoid it (e.g., if the task needs to be preserved). No alternatives are mentioned despite siblings like task_update offering non-destructive changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_eventsA
Fetch paginated execution events for a task.
Use include_payload=True to inspect full event data.
Payloads are automatically truncated to keep responses bounded.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | ||
| limit | No | ||
| offset | No | ||
| include_payload | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses automatic payload truncation, a key behavioral trait. However, it does not mention auth requirements, read-only nature, or behavior when task_id is null. With no annotations, more disclosure would be beneficial.
Agents need to know what a tool does to the 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 purpose, and every sentence adds value. No redundant or missing 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 lack of output schema and annotations, the description is adequate for basic usage but lacks details on return format, error handling, and behavior with missing parameters. It covers the main functionality but is not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter descriptions, so the description must compensate. It explains include_payload's effect, but task_id, limit, and offset are only implied by names. This provides marginal value 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 'Fetch paginated execution events for a task,' which is a specific verb and resource. It distinguishes from siblings like task_get and task_list by focusing on events rather than task details or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 advises using include_payload=True for full data and mentions truncation, but does not explicitly state when to use this tool versus siblings like task_get or task_list. No prerequisites or when-not conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_getA
Get a task by ID.
The response includes a board_hint field summarizing other active
tasks in the same project so the agent can decide whether to call
task_list() for coordination.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses the board_hint field, which adds value. However, it does not mention error handling, authentication, or the effect of passing null task_id. The transparency is adequate but not comprehensive.
Agents need to know what a tool does to the 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. The first sentence states the core purpose, and the second adds a useful behavioral hint. 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?
Given no output schema, the description should detail the response structure. It only mentions the board_hint field, omitting other task fields. Additionally, the optional null parameter is not explained, leaving gaps 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 input schema has 0% description coverage, and the description provides no explanation of the task_id parameter, its format, or behavior when null. This leaves the agent without sufficient guidance on how to use 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 'Get a task by ID,' specifying the verb and resource. It also mentions the board_hint field which distinguishes this tool from sibling task_list by hinting when to use the latter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the response includes a board_hint to help decide whether to call task_list, providing contextual guidance. However, it does not explicitly state when not to use this tool or cover alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_listB
List tasks, optionally filtered by status, repo, or free-text query.
Use this to inspect project state before planning or mutating work.
Pass query to search tasks by text within the active project.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| repo_id | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states it is a read operation ('List tasks'), but lacks details about pagination, limits, or whether it returns full task objects or summaries.
Agents need to know what a tool does to the 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: first states purpose, second gives usage context, third explains one parameter. No wasted words, but the third sentence could be integrated into the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no output schema and three optional parameters, the description omits details about return format, error behavior, or whether results are paginated. This leaves gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by clarifying that 'query' is for free-text search and that filters are optional. However, it does not explain allowed values for 'status' or the format of 'repo_id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (tasks), and mentions optional filters (status, repo, query). It is specific and distinct from siblings like task_create or task_delete, which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage hint ('inspect project state before planning or mutating work'), which implies when to use it, but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_updateB
Update task fields or transition task status.
Check the verification payload to confirm the requested changes were applied.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | ||
| title | No | ||
| description | No | ||
| priority | No | ||
| base_branch | No | ||
| acceptance_criteria | No | ||
| agent_backend | No | ||
| launcher | No | ||
| status | No | ||
| repo_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It implies mutation but does not disclose idempotency, error handling, or permission requirements. The verification hint suggests asynchronous behavior but lacks clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, and no extraneous words. The second sentence adds a critical instruction without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 optional parameters, no output schema), the description is severely incomplete. It fails to specify required parameters, return format, error conditions, or the effect of combining field updates and status transitions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 10 parameters with 0% description coverage, and the tool description provides no explanation of any parameter's meaning, usage, or constraints, leaving the agent without essential context.
Input schemas describe structure but not intent. Descriptions should explain 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 'Update task fields or transition task status,' which is a specific verb+resource combination. It effectively distinguishes from sibling tools like task_create, task_delete, task_get, task_list, and task_wait.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 advises to 'Check the verification payload to confirm the requested changes were applied,' providing a useful post-invocation step. However, it lacks explicit guidance on when to use this tool versus alternatives or any prerequisites (e.g., task existence).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_waitB
Wait for tasks to reach completion or target statuses.
Use this to gate dependent work or synchronize concurrent agents.
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | No | ||
| timeout_seconds | No | ||
| wait_for_status | No | ||
| resolve_when_any | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states it waits for statuses but lacks behavioral details like polling mechanism, timeout behavior (only implied by parameter), or side effects. More disclosure is needed.
Agents need to know what a tool does to the 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-loading purpose and usage. Every word is meaningful, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a blocking tool with 4 unannotated parameters and no output schema, the description is insufficient. It lacks details on return values, timeout behavior, status options, and how to specify tasks, leaving critical 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 0%, and the description does not explain any of the four parameters (task_ids, timeout_seconds, wait_for_status, resolve_when_any). This leaves the agent without guidance on how to properly invoke the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool waits for tasks to reach completion or target statuses, with a specific verb and resource. It distinguishes itself from siblings like task_get (for checking status) or run_get (for runs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'gate dependent work or synchronize concurrent agents.' It does not explicitly mention when not to use or list alternatives, but the context is sufficient to guide appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminal_runA
Run a long-running terminal command and stream its output.
Designed for commands that produce output over time: test runners, build pipelines, or any program that writes incrementally to stdout.
Each output line is forwarded as a tool_execution_update event on
the per-task event stream when a task context is available, allowing
clients to render partial output in real time.
Parameters
command:
Shell command string (passed to /bin/sh -c or cmd.exe /c).
cwd:
Working directory. Defaults to the server process cwd.
timeout:
Wall-clock timeout in seconds (default 600 — 10 minutes).
Pass null for no limit.
max_output_lines:
Maximum lines retained in the final output field. Lines
beyond this limit are still forwarded to the event stream but
are not included in the final return value.
Returns
{"output": str, "exit_code": int, "timed_out": bool}
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| cwd | No | ||
| timeout | No | ||
| max_output_lines | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description fully discloses streaming, timeouts, line retention behavior, and that it runs via shell. Behavior is transparent and actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with intro, parameter list, and return value. Slightly lengthy but each sentence adds value. Could be more compact but still 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?
All parameters and return value are explained. No output schema needed. Streaming behavior and limits are clarified. Complete for a tool with moderate 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 has 0% description coverage, but description adds detailed semantics for all 4 parameters, including defaults and nuances like 'pass null for no limit' and 'lines beyond limit still forwarded to stream but not in final output.'
Input schemas describe structure but not intent. Descriptions should explain 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 runs a long-running terminal command and streams output. It differentiates from siblings like bash_exec by emphasizing 'long-running' and streaming via tool_execution_update events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance: 'Designed for commands that produce output over time: test runners, build pipelines, or any program that writes incrementally to stdout.' Does not explicitly exclude alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verification_summaryA
Return aggregated step verification results for a task.
If session_id is provided, only steps from that session are included.
Returns dict with: task_id, session_id, total, passed, failed, all_passed, steps (list of step dicts).
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It discloses the return structure (dict with task_id, session_id, totals, steps) and implies a read-only operation by describing the output. It does not mention side effects or permissions, but for an aggregation tool, this is largely 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?
The description is extremely concise: three sentences with no filler. First sentence states purpose, second adds optional behavior, third lists return fields. 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?
Despite an existing output schema (known from signals), the description still lists return fields, providing context. It covers filtering behavior and basic aggregation. It could be slightly more explicit about what 'aggregated step verification results' entails, but it is sufficiently complete for a 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?
Schema description coverage is 0%, so the description must compensate. It adds meaning for session_id (filtering behavior) but provides no description for task_id, the required parameter. This is a significant gap given the absence of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns aggregated step verification results for a task, specifying the resource (task verifications) and action (aggregated summary). The name 'verification_summary' aligns with this purpose, and it is distinct from siblings like verify_step which likely handles individual steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a condition for using the optional session_id parameter ('If session_id is provided, only steps from that session are included'), but does not explicitly state when to use this tool over alternatives like verify_step or review_verdict. Usage context is implied but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_stepA
Record the outcome of a plan step verification.
Call this after completing each major step in a task to signal whether the step passed or failed verification. verdict must be one of: PASS, FAIL, SKIP.
step_index is the 0-based position of the step in the plan. step_description is a short human-readable label for the step. reason is a one-line justification with evidence.
Returns dict with: task_id, session_id, step_index, step_description, verdict, reason, verified_at.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| step_index | Yes | ||
| step_description | Yes | ||
| verdict | Yes | ||
| reason | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that it records outcomes (mutating), expects certain parameters, and returns a dict with specific fields. It does not mention authorization or side effects, but the return type is well documented.
Agents need to know what a tool does to the 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 brief, front-loaded with purpose, and uses bullet points for parameter details. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers input parameters, return fields, and usage context. It is complete for a logging/verification tool with no missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description provides detailed meaning for each parameter: step_index is 0-based, step_description is a short label, reason is one-line justification, verdict must be one of PASS/FAIL/SKIP. This goes far beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain 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 'Record the outcome of a plan step verification' with a specific verb and resource. It distinguishes from siblings like 'review_verdict' and 'verification_summary' by focusing on individual step verification during a task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Call this after completing each major step in a task', providing clear context for when to use. It also specifies required verdict values but does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, with only bash_exec and terminal_run overlapping in executing shell commands (one for short output, one for streaming). The rest (e.g., checkpoint_, fs_, insight_, integration_, persona_, project_, review_, run_, session_, settings_, task_, verification_) are well-disambiguated.
Tools use a consistent <category>_<action> pattern (e.g., checkpoint_create, fs_read_file, insight_add, project_setup). Minor deviations exist: review_ includes nouns like conflicts and verdict alongside verbs, and task_events uses a noun instead of a verb.
At 47 tools, the server is overly large. While each tool serves a distinct purpose, the surface area is too broad for an agent to easily navigate, and many tools could be consolidated (e.g., bash_exec and terminal_run). This count falls into the 'too many' range.
The server covers the full lifecycle for tasks, reviews, checkpoints, file operations, insights, integrations, and project management. Minor gaps exist: no tool to delete checkpoints or update insights, but these are not critical failures.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Kanban board for teams and coding agents: manage tasks, subtasks, sprints and wiki pages via MCP.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides capabilities for searching Jira issues using JQL and retrieving detailed issue information.264028MIT
- AlicenseBqualityDmaintenanceAnthropic's github MCP server, but better. Support for more endpoints. Including releases and tags, pull request reviews, statuses, rate limit, gists, projects, packages, and even pull request diffs. Indented to be used with MissionSquad's MCP API for secret management (aka your access token).4586110MIT
- FlicenseNot gradedqualityDmaintenanceA comprehensive project management system that provides a full-featured Kanban board and dashboard accessible to AI agents. It enables agents to programmatically manage projects, tasks, and workflows through a suite of 13 specialized tools and 4 resource types.4
- AlicenseAqualityCmaintenanceA task-based AI orchestrator that bridges AI models (Gemini, Claude, OpenAI) with local environments, operating as an interactive CLI and an MCP server for structured autonomous development.235MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kagan-sh/kagan'
If you have feedback or need assistance with the MCP directory API, please join our Discord server