Skip to main content
Glama

Patchwork OS

npm beta CI npm downloads license

You don't have an automation problem. You have a decision problem.

Every AI-agent horror story ends the same way: an action nobody stopped to question. Patchwork OS is the layer between the agent's impulse and the action — a local-first runtime where your AI can automate real work across your editor, GitHub, Slack, Gmail, and 45+ services, while anything consequential can be made to stop and ask you first.

Who it's for: developers and technical operators who already run agents against real systems — a repo that ships, an inbox that matters, a production service — and who want a record of what was allowed and why. It expects a terminal, a Node install, and comfort editing YAML.

Three ideas, one runtime:

  • Ask before acting. Every action is classified by blast radius — can it be undone, and how much breaks if it's wrong? Reversible things flow freely. Risky things wait in an approval queue with the evidence attached: what exactly will run, why it fired, and what happens if it's wrong.

  • Trust is earned, never assumed. Workers — named agents with jobs — start supervised and earn independence from their track record, per action type. Good at filing issues ≠ allowed to push code. One bad high-stakes action outweighs a hundred trivial successes. You set the ceiling; the math never raises it for them.

  • Every decision leaves a receipt. What was done, why it was allowed, and how it turned out — durable, replayable, explainable via patchwork judgments, the dashboard's traces page, and patchwork gate explain. When you approve something, you find out later whether you were right.

An agent wants to write a file. With the gate on, it waits — and shows you exactly what it would do:

The approval queue: a pending createFile call showing its risk tier, whether it can be undone, and the full content it would write, with Approve and Reject

You approve. The call proceeds, and both halves are on the record:

The activity stream showing two events — an approval_decision marked approved, and the createFile tool call that followed it, succeeding in 4ms

Status: beta

Version 1.2.0-beta.x. The decision layer, recipes, connectors and IDE bridge all work and are dogfooded daily, but interfaces still move between betas and some surfaces are rougher than others. Pin an exact version if you are building on it.

The safety features are opt-in, not the default. This matters more than any other line in this README:

Feature

Default

Turn it on with

Approval queue

off (approvalGate: "off")

--approval-gate high or all

Worker autonomy gate

off

PATCHWORK_FLAG_WORKER_AUTONOMY=1 (needs --driver subprocess)

Kill switch

available always

patchwork panic

Telemetry

off

opt in explicitly (details)

Install Patchwork and nothing is gated until you say so. A fresh install is an automation runtime, and it becomes a decision layer when you switch the gate on. Everything above about "stops and asks you first" describes what the gate does once enabled — not what happens out of the box.

Related MCP server: MCP HTTP Proxy

The loop

trigger → recipe/worker → reversible?           → runs
                        → risky, gate on        → approval queue → your yes → receipt
                        → risky, gate off       → runs
                        → forbidden by policy   → refused (no approval unlocks it)

patchwork panic blocks every write-tier tool call across all running bridges, immediately. Reads keep working, and in-flight reasoning is not killed — it is a write block, not a full stop.

Install

npm install -g patchwork-os@beta
patchwork-os init

init scaffolds ~/.patchwork, seeds local-only recipes, and registers Patchwork's PreToolUse hook in ~/.claude/settings.json. Restart Claude Code afterwards — it reads hooks at session start.

Prereqs: Node 22.5+. macOS, Linux, and native Windows (no WSL).

Two things worth knowing before you start:

  • Use a global install, not npx. npx does not persist the binary, so the very next command in any guide will not be found.

  • The web dashboard is not in the npm package. It's a Next.js app that needs its own build, so it ships with the repo:

    git clone https://github.com/Oolab-labs/patchwork-os && cd patchwork-os/dashboard
    npm install && npm run build && npm start   # http://localhost:3200

    Everything below works from the CLI without it. The dashboard is where approvals, traces and connector setup are pleasant rather than possible.

First run: zero connectors

Prove the runtime works before wiring any service to it. daily-status touches only git and local files — no accounts, no network:

patchwork recipe run daily-status

It reads your commits since yesterday plus ~/.patchwork/planned.md, and writes a Markdown digest to ~/.patchwork/inbox/daily-status-<date>.md. If that file exists, your install is sound.

Useful neighbours: patchwork recipe list, patchwork status, patchwork recipe doctor <name> when something misbehaves.

Morning Brief: the connected workflow

patchwork-os init --with-connectors   # seeds the connector-backed recipes
patchwork connect gmail
patchwork connect google-calendar
patchwork connect github
patchwork connect linear
patchwork recipe run morning-brief

The recipe pulls unread mail, today's calendar, your open GitHub issues and PRs, Linear issues, and local git activity, then has a model summarise them into one Markdown brief in ~/.patchwork/inbox/. Its email step is triage — it lists what needs an answer; it does not compose or send replies. Nothing leaves your machine except the API calls to the services you connected.

All four connectors are required as written — no step is guarded, so a missing one halts the run. Drop the steps you don't want, or start from daily-status and add sources one at a time.

Requires a working model driver (--driver subprocess with the Claude CLI on PATH, or an API key). patchwork recipe preflight templates/recipes/morning-brief.yaml lists exactly what a recipe needs before you run it.

Two ways to run this

As an automation runtime — recipes, workers, connectors, the decision layer. Needs ~/.patchwork and a model driver; an editor is optional.

patchwork start        # bridge + Claude + dashboard

patchwork start launches claude --ide alongside the bridge, so it expects the Claude CLI on your PATH. Use patchwork start --no-dashboard, or run the bridge alone with patchwork --workspace ., if you don't want that.

On a global npm install there is no dashboard/ to start, so it logs a dashboard warning and carries on with bridge + Claude; pass --no-dashboard to silence it. From a repo clone it starts all three.

As a standalone IDE bridge — 180 MCP tools giving Claude Code eyes and hands in your editor: diagnostics, LSP navigation, refactoring with risk analysis, debugger, terminal, git/GitHub, file ops. No ~/.patchwork, no recipes, no gate.

npm install -g patchwork-os
claude-ide-bridge install-extension     # VS Code / Cursor / Windsurf / Antigravity
claude-ide-bridge --workspace .
claude --ide                            # in another terminal

JetBrains via a companion plugin. Claude Desktop, Gemini CLI, Codex CLI, Grok Build, and claude.ai connect over stdio or HTTP. Use the bridge alone forever if that's all you need; the runtime is an optional layer on top.

claude --ide can't find an IDE? Set CLAUDE_CODE_IDE_SKIP_VALID_CHECK=true (init does this for you).

What "local-first" does and doesn't mean

On your machine: the runtime, every recipe and worker, all credentials and connector tokens, the approval queue, and every log and decision receipt under ~/.patchwork/. Nothing is uploaded, and no Patchwork-operated server sits in any path.

Over the network, necessarily: calls to whatever model you point it at (Anthropic, OpenAI, Google, xAI) and to every connector you authorise (Gmail, GitHub, Slack…). Prompts, and whatever context a step feeds them, go to that model provider. Choosing a local Ollama endpoint keeps inference on your machine too; connector calls still leave it, because that is what a connector is.

Only if you opt in: anonymous analytics.

Other boundaries worth knowing: runCommand executes only allowlisted commands, sendHttpRequest blocks private and loopback ranges, and file tools refuse symlink escapes out of the workspace. Remote deployments must sit behind TLS with OAuth 2.0 — see docs/remote-access.md.

What's here

  • Decision layer — approval queue · blast-radius action classes · worker trust ramp · kill switch · decision receipts

  • Automation — YAML recipes · cron/file/git/test/webhook triggers · event hooks · multi-model (Claude, GPT, Gemini, Grok, Ollama)

  • Connectors — 45+, all writes governed by your policy: GitHub, Slack, Gmail, Calendar, Drive, Linear, Jira, Sentry, Notion, Stripe, PagerDuty, Datadog, …

  • IDE bridge — 180 MCP tools · VS Code-family extension · JetBrains plugin · plugins hot-reload (write tools mid-session)

  • Oversight — web dashboard · mobile push approvals (PWA) · halts/judgments CLI · trace memory across sessions

  • Deployment — your laptop · headless VPS with OAuth 2.0 (guide) · native Windows

Recipes are plain YAML: a trigger (cron, file save, git commit, test run, or any webhook — iPhone Shortcut, Stream Deck, Home Assistant) plus steps. Share them like dotfiles, install them from the marketplace, or let the dashboard generate one from a sentence.

Workers are recipes with an identity and a track record. A worker that triages failing CI starts by only proposing ("this looks like a real break — file an issue?"). Confirm its filings were real and it earns a longer leash — for that job only. It can be demoted in one bad day. You can cap any worker permanently with one line of YAML.

Why not Zapier / an MCP server / a hosted assistant? Honest tradeoffs: documents/comparison.md.

Docs

Platform reference · Recipes & triggers · Worker autonomy · Plugin authoring · Architecture · Windows · ADRs

Telemetry

Off by default; nothing is sent unless you opt in. If you do: aggregate counts and latencies only — never paths, prompts, file contents, arguments, or anything from ~/.patchwork/. Details & source.

Contributing & support

Issues · Discussions · CONTRIBUTING.md

⭐ If this saved you a config file or a blown deploy, a star is the only signal I get that it's helping.

MIT © Oolab Labs — what that covers · name and marks

Available Tools

175 tools
addLinearCommentA

Add a comment to a Linear issue. Requires Linear connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIssue identifier (e.g. 'ENG-42') or URL.
bodyYesComment body (Markdown).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, indicating write operation. Description adds no further behavioral traits (e.g., whether comment is appended or replaces, required permissions). Annotations carry the burden; description is adequate but adds no extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Essential information only. Perfectly concise for this simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given tool simplicity, schema coverage, and annotations, description is nearly complete. Could optionally mention return value, but not required. Adequate for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both params (id, body). Baseline is 3. Description adds no additional meaning beyond what schema provides (e.g., no format hints beyond what's in schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Add a comment' to a specific resource 'Linear issue'. It distinguishes from sibling tools like createLinearIssue (create issue) and fetchLinearIssue (fetch issue) by focusing on adding a comment to an existing issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States prerequisite 'Requires Linear connector connected.' Implies when to use: when you want to add a comment to an existing Linear issue. Does not explicitly mention when not to use or alternatives, but sibling names provide differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

applyCodeActionA
Destructive

Apply code action by title. Use getCodeActions first to see options.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineYesStart line (1-based)
startColumnYesStart column (1-based)
endLineYesEnd line (1-based)
endColumnYesEnd column (1-based)
actionTitleYesExact action title from getCodeActions output

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint: true, so the description need not repeat that. The description does not add further behavioral context (e.g., whether changes are saved), but is adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the action and providing prerequisite guidance. Every word earns its place; highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic purpose and prerequisite, it omits details about what happens after applying (e.g., file modification, success/failure feedback). Given the tool's complexity and destructive hint, it could be more complete, but is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 6 parameters, so the schema does the heavy lifting. The description adds no extra parameter-level meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool applies a code action by title and explicitly mentions the prerequisite step of using getCodeActions. This distinguishes it from siblings like getCodeActions and previewCodeAction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use getCodeActions first to see options, providing clear usage guidance. It lacks explicit when-not-to-use instructions but the context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auditDependenciesA
Read-only

Detect outdated packages (current vs latest). Supports npm, yarn, pnpm, cargo, pip. Complement to getSecurityAdvisories.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageManagerNoPackage manager to use. Defaults to 'auto'.
maxAgeNoFilter by version increment: 1=major only, 2=major+minor. Reserved.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no destructive behavior. The description adds that it supports multiple package managers but does not disclose important behavioral details such as what 'auto' means for packageManager or the reserved nature of maxAge (though maxAge is described in the schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of three short sentences that communicate the core purpose, supported package managers, and relationship to a sibling. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should at least hint at the output format. It only says 'current vs latest', which is vague. Also, the description does not mention the maxAge parameter's reserved nature, though it is in the schema. Overall, it is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description does not add any extra meaning beyond what is in the schema, meeting the baseline for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'detect' and resource 'outdated packages', and distinguishes itself from the sibling 'getSecurityAdvisories' by noting it is a complement. The supported package managers are listed, providing specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is a complement to getSecurityAdvisories, providing some guidance on when to use this tool vs that alternative. However, it lacks explicit when-not-to-use instructions or detailed context for other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batchFindImplementationsA
Read-only

Find implementations for up to 10 symbols. Prefer over repeated findImplementations.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesList of positions to look up (max 10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's behavioral claims are limited to the batch limit (up to 10). This adds value but not extensive insight. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. Every part serves a purpose: stating function and providing usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotation (readOnlyHint), clear schema, and no output schema, the description adequately covers the tool's purpose and when to use it. Could mention return behavior but not essential for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description reinforces the batch limit. No additional parameter meaning is provided beyond what the schema already covers, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'find' and resource 'implementations', distinguishes from sibling 'findImplementations' by noting batch capability, and adds the constraint 'up to 10 symbols'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Prefer over repeated findImplementations', providing a clear alternative and usage context. Does not include when-not-to-use but the preference is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batchGetHoverA
Read-only

Hover info (type signatures, docs) for up to 10 positions. Prefer over repeated getHover.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesList of positions to hover (max 10)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds behavioral detail: returns type signatures and docs, limited to 10 positions. No contradictions. Adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and key constraint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple batch tool with well-documented schema and no output schema, the description is adequate. Could mention error behavior for individual items, but not necessary for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description does not add new parameter-level details beyond what schema already provides, but reinforces the max count.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it provides hover info (type signatures, docs) for up to 10 positions, and explicitly differentiates from repeated getHover by saying 'Prefer over repeated getHover'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to prefer this over repeated getHover, giving clear usage context. Could be improved by stating when not to use (e.g., for single positions), but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

batchGoToDefinitionA
Read-only

Go to definition for up to 10 symbols. Prefer over repeated goToDefinition.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesList of positions to look up (max 10)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so description doesn't need to add safety info. Description adds the 'up to 10' constraint, but no further behavioral details beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with one parameter; description covers the batch limit and usage advice, sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with full descriptions for each sub-property. Description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Go to definition' and resource 'symbols', and distinguishes from sibling 'goToDefinition' by mentioning batching and preference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Prefer over repeated goToDefinition', indicating when to use this batch variant. Does not explicitly state when not to, but the alternative is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

beginTransactionA
Read-only

Start a new multi-file edit transaction. Returns a transactionId for subsequent stageEdit calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdNoOptional custom ID. Auto-generated if omitted.

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims to start a new transaction, a mutation, yet the annotations set readOnlyHint: true. This is a direct contradiction. The description fails to disclose that it creates state, violating behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no fluff. Front-loads the core action and immediately provides essential follow-up context about the return value and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description's mention of returning a transactionId is helpful. However, it lacks details about transaction limits, behavior when a transaction already exists, or error conditions. The contradiction with annotations also undermines completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional transactionId parameter, with a clear description in the schema. The tool description adds no extra parameter meaning, but the baseline is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Start a new multi-file edit transaction' – a specific verb and resource. It also mentions the return value and its use with stageEdit, which distinguishes it from related siblings like commitTransaction and rollbackTransaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly indicates when to use this tool ('before subsequent stageEdit calls'), but does not explicitly state when not to use it or mention alternatives. The context is clear enough for a transaction initiation tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bridgeDoctorA
Read-only

Health check: extension, git, linters, test runners, GitHub CLI. Use when tools misbehave.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's 'Health check' aligns. It adds value by listing the specific components checked, which goes beyond the annotation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence front-loads the purpose with a colon-separated list, and the second provides usage guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description fully covers what the tool does and when to use it. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description correctly has no parameter details; it is not required. The schema coverage is 100% by nature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs a health check on specific components (extension, git, linters, test runners, GitHub CLI). This is a specific verb+resource combination that distinguishes it from sibling tools like getBridgeStatus, which likely provides a narrower status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when tools misbehave,' providing clear when-to-use guidance. It does not list exclusions or alternatives, but the context is clear and sufficient for the tool's simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancelClaudeTaskA
Idempotent

Cancel a pending or running Claude task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID to cancel

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true, and description does not add significant behavioral detail beyond the cancel action. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, action first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with one parameter; description suffices for correct usage without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter with schema description coverage 100%; description does not add extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (cancel) and resource (Claude task), distinguishing it from sibling tools like runClaudeTask and resumeClaudeTask.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when or when-not-to-use guidance; however, the tool name and description are self-explanatory for its singular purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

captureScreenshotA
Read-only

Capture screenshot → base64 PNG. macOS/Linux with display only. Not available on headless servers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, which matches the read-only nature. Description adds that output is base64 PNG and that a display is required. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and output, second adds platform constraints. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, output format, and constraints. No output schema needed. Could mention resolution or window selection, but not required for basic screenshot.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters, so schema coverage is 100%. Description does not need to add parameter info, and adds none. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Capture screenshot → base64 PNG', specifying the verb and resource. Differentiates from sibling 'screenshotAndAnnotate' by not including annotation features, and adds OS/display constraints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: 'macOS/Linux with display only' and 'Not available on headless servers'. However, it does not explicitly mention when to use this tool versus the sibling 'screenshotAndAnnotate'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checkDocumentDirtyA
Read-only

Check if file has unsaved changes. Uses VS Code buffer when ext connected; heuristic otherwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file to check

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds valuable behavioral context: the tool uses the VS Code buffer when the extension is connected and a heuristic otherwise. This informs the agent about reliability and dependency on connection status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two sentences. The first sentence states the purpose, and the second adds important implementation detail. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's functionality but does not specify the output format (e.g., returns a boolean). With no output schema, this omission leaves the agent without explicit information on what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the single parameter 'filePath' with 100% coverage. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check if file has unsaved changes' with a specific verb and resource. It distinguishes from sibling tools like saveDocument (which writes) and getOpenEditors (which lists open files) by focusing on the dirty check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two operation modes (buffer vs heuristic) but does not explicitly state when to use this tool over alternatives like getBufferContent or getGitDiff. The agent must infer usage context from the behavior description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clearEditorDecorationsA
Idempotent

Clear editor decorations by ID, or omit id to clear all Claude-managed decorations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoDecoration set ID to clear. Omit to clear all.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide idempotentHint=true. The description adds context that it clears 'Claude-managed decorations', which clarifies scope. No contradictions, but no further behavioral details like side effects or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and parameter behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is largely complete. It covers the key behavior and scope, though it could briefly mention the return value (e.g., success indicator).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema documentation covers 100% of the parameter with a clear description. The tool description simply restates the schema, adding no new meaning beyond what the parameter description already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'clear', the resource 'editor decorations', and specifies two modes: clearing by ID or clearing all Claude-managed decorations. It effectively distinguishes from the sibling tool 'setEditorDecorations'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (to clear specific or all decorations) and hints at alternatives via sibling tool names, but does not explicitly state when not to use it or compare to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

closeAllDiffTabsA
Destructive

Close all diff tabs and clean up temp diff directories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive. The description adds the cleanup of temp directories, which provides some additional context. However, it does not disclose potential side effects like loss of unsaved diff changes or scope of operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's purpose. No wasted 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and only one annotation (destructiveHint), the description covers the main actions. It could clarify scope (e.g., all open diff tabs across workspaces) but is otherwise sufficient for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the description need not explain them. The baseline for 0 parameters is 4, and the description appropriately states the action without unnecessary detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Close all diff tabs and clean up temp diff directories.' It uses specific verbs and resources, distinguishing it from the sibling 'closeTab' tool which closes a single tab.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 like 'closeTab'. The purpose is implied by the name and description, but the agent would benefit from explicit context about bulk vs. single tab closure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

closeTabA
Destructive

Close editor tab by file path. Prompts to save if dirty. Requires ext.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFile whose tab to close (absolute or workspace-relative)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, and the description adds that it prompts to save if dirty, which is important behavioral context not captured elsewhere. However, 'Requires ext.' is vague and leaves ambiguity about what extension 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no unnecessary words. It front-loads the core purpose and provides key behavioral notes. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 reasonably complete. It covers the action, parameter, and a notable behavior (dirty prompt). However, it lacks details on edge cases like if the file is not already open or what 'Requires ext.' entails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter with a clear description. The tool description adds 'by file path', which confirms the param's role, but doesn't provide additional semantic detail beyond what the schema already offers. With 100% coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'close', the resource 'editor tab', and the identifying mechanism 'by file path'. It also notes behavioral details like prompting to save if dirty. This distinguishes it from siblings like closeAllDiffTabs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing to close a specific tab and mentions a prerequisite ('Requires ext.'), but does not explicitly compare to alternatives or state when not to use it. Guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

commitTransactionA
Destructive

Write all staged edits atomically. All files are written; on partial failure, written files are NOT rolled back (use rollbackTransaction before commitTransaction to verify).

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYesTransaction ID from beginTransaction

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, and the description adds critical detail about no rollback on partial failure, which is not evident from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary action, and every sentence adds value. No redundant or tangential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with annotations and no output schema, the description fully covers atomicity, partial failure consequences, and references to sibling tool, making it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a clear description for transactionId. The description does not add extra meaning beyond what the schema provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool commits staged edits atomically, with a specific verb-resource pair. It distinguishes itself from rollbackTransaction by warning about partial failure behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using rollbackTransaction to verify before committing to avoid partial failures. Implies correct usage after beginTransaction, but lacks explicit when-not-to-use or alternative tool comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contextBundleA
Read-only

Collect IDE context in one call: active file, diagnostics, diff, editors, handoff note, git status.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeDiffNoInclude recent git diff (staged + unstaged). Default: true
includeHandoffNoteNoInclude the workspace handoff note. Default: true
summarizeNoSummarize output for token efficiency: top-5 diagnostics, 20-line active file window, 100-line diff cap, diagnosticSummary string. Default: false

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description lists what is collected but does not disclose additional behaviors like output structure, size limits, or performance implications. Minimal added value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is front-loaded with the action and resource, then lists items. Every word is functional and concise with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple bundling tool with boolean flags and read-only intent, the description adequately covers the purpose. However, given no output schema, a brief note on the output structure would enhance completeness. Still, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear boolean parameter descriptions. The tool description does not add further semantics about the parameters, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it collects multiple IDE contexts (active file, diagnostics, diff, editors, handoff note, git status) in one call. Distinct from sibling tools like getGitStatus, getHandoffNote, etc., which individually fetch each piece.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing multiple context items, but does not explicitly guide when to use this tool versus the individual getter tools (e.g., getGitStatus, getHandoffNote). No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createFileA
Destructive

Create file or directory within workspace. Uses VS Code when connected, native fs fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path for new file or directory
contentNoInitial file content (default: empty)
isDirectoryNoCreate a directory instead of a file (default: false)
overwriteNoOverwrite if file already exists (default: false)
openAfterCreateNoOpen file in editor after creation (default: true)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the destructiveHint annotation by noting the VS Code vs native fs fallback behavior and the ability to create directories. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences that front-load the main purpose. No unnecessary words; every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters and lack of output schema, the description covers core functionality well. It could mention error conditions or permission needs, but the schema and annotations fill most gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, each parameter already has a clear description. The tool description adds little parameter-specific information beyond confirming directory creation and the fallback mechanism.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a file or directory within the workspace, with a specific verb and resource. It distinguishes from sibling tools like deleteFile, renameFile, editText by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like editText for existing files or overwrite scenarios. It provides no when-not-to-use or prerequisite guidance, though the schema partially covers overwrite behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createLinearIssueA

Create a new Linear issue. Requires Linear connector connected. Returns the created issue identifier and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesIssue title.
descriptionNoIssue description (Markdown).
teamKeyNoTeam key (e.g. 'ENG'). If omitted, uses the first team in your workspace.
priorityNoPriority: 0=no priority, 1=urgent, 2=high, 3=medium, 4=low.
labelNamesNoLabel names to attach (must already exist in Linear).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by specifying that it returns the created issue identifier and URL. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words, front-loading the action and key requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and minimal annotations, the description adequately covers the return value and prerequisite. Could mention description format but schema covers it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions; the tool description adds no further semantics, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new Linear issue, and siblings like fetchLinearIssue, updateLinearIssue differentiate it effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions the prerequisite 'Requires Linear connector connected' but does not provide guidance on when to use this tool versus alternatives like updateLinearIssue or fetchLinearIssue.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createPlanB

Create .claude-plan.md in workspace root. Markdown with sections and task checklists.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPlan title
fileNameNoCustom filename (default: .claude-plan.md). Must end in .md
sectionsNoPlan sections with tasks

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. The description omits critical behavioral details like whether it overwrites or errors if the file already exists, and does not mention permissions or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose efficiently with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 is too brief. It fails to explain return values, error conditions, or behavior on file conflict, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds minimal context about the default filename and workspace root, but does not expand on parameter usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a .claude-plan.md file in the workspace root with markdown sections and task checklists, distinguishing it from siblings like updatePlan or deletePlan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 updatePlan for modifications or listPlans for viewing existing plans.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createTerminalC
Destructive

Create VS Code integrated terminal. Options: name, cwd, env vars, shell.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the terminal
cwdNoWorking dir for terminal (must be within workspace)
envNoExtra env vars (key-value pairs, max 50 entries)
showNoShow terminal panel after creation (default: true)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation suggests possible destructive behavior, but the description does not elaborate on implications (e.g., whether creation overwrites existing terminals). Adds no value beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but sacrifices clarity and accuracy. Could be improved by listing actual parameters or noting defaults.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters, no output schema, and a minimal description, the tool lacks important context such as parameter defaults, constraints (cwd must be within workspace), and behavior on conflicts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds a misleading 'shell' option not in schema and omits the 'show' parameter, causing confusion about available inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool creates a VS Code integrated terminal, distinguishing it from sibling tools like disposeTerminal and listTerminals. However, it inaccurately lists 'shell' as an option not present in the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., sendTerminalCommand, waitForTerminalOutput). Does not mention prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ctxGetTaskContextA
Read-only

Unified context for any issue / PR / commit / error ref. Auto-detects ref type (#42, PR-42, sha) and composes issue + linked commits + related traces. Prefer over raw gh / git tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesIssue (`#42` / `GH-42`), PR (`PR-42` / `pull/42`), commit SHA (7-40 hex), or Linear issue (`LIN-42` / `TEAM-123`). Whitespace-trimmed.
maxLinkedCommitsNoCap on linked-commits section. Default 10.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so no destructive behavior. Description adds key behavioral context: auto-detects ref type and composes multiple data sources, which is useful beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. First sentence states purpose and scope, second adds functionality and usage guidance. Perfectly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description gives a high-level summary of returned data (issue, linked commits, traces). Sufficient for understanding the tool's output. Could be more detailed but adequate for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description mentions auto-detection for ref and linked commits for maxLinkedCommits, but adds minimal new meaning beyond what schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it provides unified context for issue/PR/commit/error refs and composes issue + linked commits + related traces. Distinguishes from sibling tools by recommending preference over raw gh/git tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Prefer over raw gh / git tools' giving clear guidance when to use this aggregated tool over more specific siblings. Does not mention when not to use, but this is acceptable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ctxQueryTracesA
Read-only

Unified query over approval / enrichment / recipe-run trails. Filter by traceType, time window, or natural key. Answers 'why did X happen' across sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
traceTypeNoOptional filter — restrict to one source. Omit to get all.
keyNoExact key match (sessionId:toolName / sha:ref / taskId). Substring match on the key; case-sensitive.
qNoCase-insensitive substring search across the trace summary and serialized body. Use for free-form lookup when the key schema doesn't fit.
tagNoRestrict to decision traces carrying this tag (exact match, case-sensitive). Other trace types don't have tags and will be excluded when this filter is set.
sinceNoOnly return traces with ts > this ms-epoch value.
limitNoMax results after filtering. Default 100.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds value by specifying that the tool queries across multiple source types and provides answers, which goes beyond the annotation's safety profile. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose is front-loaded, and every word contributes to describing the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is present, and while the description hints at returning answers, it does not describe the response structure or behavior like pagination. Given the detailed input schema, this gap makes it only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description summarizes three filter types (traceType, time window, natural key) but does not add substantive meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs like 'query' and 'filter', and names the exact resources (approval, enrichment, recipe-run trails). It distinguishes from siblings like ctxSaveTrace by framing it as a query operation that answers 'why did X happen'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides usage by stating it is a 'unified query' over trace types, but does not explicitly contrast with alternatives like ctxSaveTrace or other query tools. The context is clear, but no exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ctxSaveTraceA

Record a problem+solution trace after resolving a task. Future sessions see it via ctxQueryTraces and the session-start digest. Keep problem + solution to one line each.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesWhat the trace is about: issue ref (#42), PR ref (PR-42), commit SHA, or short free text.
problemYesOne-line summary of the problem. What was broken or unclear?
solutionYesOne-line summary of the fix. What was the root cause and what resolved it?
tagsNoUp to 10 short labels for search (`flaky-test`, `perf`, `security`, `migration`). Each ≤32 chars.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint false, destructiveHint false) are consistent. Description adds behavioral constraints like keeping problem and solution to one line each, and explains persistence and visibility across sessions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and effect, second adds usage constraint and future availability. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple write tool with 4 params and no output schema, description covers what, when, how (one line each), and where results are visible. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. Description reinforces constraints like one line for problem/solution and max 10 tags, adding clarity without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Record a problem+solution trace after resolving a task' with a specific verb and resource. It distinguishes from sibling ctxQueryTraces by focusing on recording rather than querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use ('after resolving a task') and mentions future retrieval via ctxQueryTraces and session-start digest. Does not explicitly state when not to use, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deleteFileA
Destructive

Delete workspace file or directory. VS Code (with trash) when connected, native fs fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path to delete
recursiveNoDelete directory contents recursively (default: false)
useTrashNoMove to trash instead of permanent delete (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark it as destructive, and the description adds that it uses VS Code's trash when connected with a native fs fallback. However, it does not disclose other behaviors like permission needs or effects on open files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous words. The action and key behavior are front-loaded, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with three parameters and no output schema, the description covers the core behavior and the trash fallback, which is important for understanding side effects. It lacks return value info but that is acceptable without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for all three parameters, so the description adds no extra meaning beyond the schema descriptions. The mention of 'recursive' and 'useTrash' aligns with schema but does not enrich it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes files or directories, specifying both workspace and absolute paths. It distinguishes from siblings like renameFile or createFile by focusing solely on deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. No prerequisites (e.g., file existence) or conditions (e.g., file not open) are mentioned, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deletePlanA
Destructive

Delete a plan file from the workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameYesPlan filename to delete (e.g., '.claude-plan.md')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true; description adds 'from workspace root' for scope. No mention of irreversibility or side effects beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words, front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Low complexity tool with 1 param and no output schema. Description is sufficient but could clarify what constitutes a 'plan file' beyond the schema example.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with description and example. Description adds no extra semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (Delete), resource (plan file), and location (workspace root). Distinguishes from siblings like deleteFile, createPlan, updatePlan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use vs alternatives (e.g., deleteFile, updatePlan). Does not mention prerequisites such as file existence or impact on active plans.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detectUnusedCodeA
Read-only

Find unused exports, locals, parameters via tsc --noUnusedLocals or ts-prune.

ParametersJSON Schema
NameRequiredDescriptionDefault
includePatternsNoReserved for future use — accepted but ignored.
maxResultsNoMax unused symbols to return (default: 50)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations set readOnlyHint=true, indicating no destructive side effects. The description adds that it uses tsc or ts-prune, which suggests it may be slower or require a project setup, but does not elaborate on other behavioral traits like file access, performance impact, or output format. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence that conveys the essential information without waste. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with well-documented parameters and no output schema, the description covers the purpose and method. It lacks details on the return format or limitations, but given the tool's simplicity and the presence of readOnlyHint, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description does not add new meaning beyond the schema. The description mentions the purpose but not the parameters. The schema already documents includePatterns (reserved) and maxResults. The description's contribution is minimal, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Find' and the resource 'unused exports, locals, parameters', specifying the mechanism (tsc --noUnusedLocals or ts-prune). This is specific and distinguishes it from sibling tools like findReferences or findImplementations, which search for used references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as findReferences or diagnostic tools. The description does not mention exclusions, prerequisites, or scenarios where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disposeTerminalA
Destructive

Close a VS Code terminal by name or index.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTerminal name to dispose
indexNoTerminal index (0-based) from listTerminals

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint: true, alerting that the tool has destructive effects. The description adds clarity by specifying the identification method but does not disclose additional behavioral traits like terminal process termination or state loss. Given annotations, the description adds moderate value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extraneous words. Every part serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 optional parameters and no output schema, the description is mostly complete. It could be improved by noting that at least one identifier is required or that the action is irreversible, but it covers the essential operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for both parameters. The description reiterates 'by name or index' but does not add significant new meaning beyond the schema. According to guidelines, baseline is 3 when coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Close' and the resource 'VS Code terminal by name or index', making the tool's purpose unambiguous. It effectively communicates what the tool does without relying on the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like createTerminal or listTerminals. It does not mention prerequisites (e.g., needing to list terminals first) or specify that at least one of name or index must be provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

editTextA
Destructive

Insert/delete/replace text at 1-based line/col. Atomic multi-edit. Uses VS Code or native fs. Workspace files only.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path to the file
editsYesArray of edit operations to apply atomically
saveNoSave the file after applying edits (default: false)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, so mutation is clear. The description adds that edits are atomic and uses VS Code or native fs, which informs about execution context. However, it does not disclose what happens on failure, file permissions, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the most critical information (insert/delete/replace, 1-based, atomic). 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.

Completeness3/5

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 clarify what the tool returns (e.g., success/failure, updated content). It provides workspace-only constraint but lacks return value details and error scenarios. Sufficient for a simple mutation tool but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already describes each parameter. The description adds the context of 1-based positions and atomicity but does not add meaning beyond the schema for individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (insert/delete/replace), the resource (text in files), and the constraints (1-based line/col, atomic multi-edit, workspace files only). It distinguishes from siblings like 'replaceBlock' or 'searchAndReplace' by specifying atomic multi-editing and line/column positioning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for editing text files with line/col precision but does not explicitly state when to use this tool versus alternatives like 'replaceBlock' or 'stageEdit'. No guidance on when-not-to-use or prerequisites is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enrichCommitA
Read-only

Enrich commit w/ linked issues. Parses #N / GH-N refs from message, fetches issue state via gh, classifies close vs ref. Missing issues flagged unresolved — not errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoCommit SHA or ref. Defaults to HEAD. Passed through to `git show`.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, and the description adds that missing issues are flagged as unresolved (not errors), which is beyond annotations. It does not detail idempotency or all side-effects, but it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the verb 'Enrich'. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately explains the parsing and classification behavior. However, it does not specify the output format, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the 'ref' parameter (defaults to HEAD, passed to git show). The description adds no new parameter-level details, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it enriches a commit with linked issues by parsing #N/GH-N refs, fetching issue state, and classifying. It distinguishes from siblings like fetchGithubIssue or getCommitDetails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but does not explicitly state when to use it versus alternatives. While sibling tool names provide context, the description itself lacks usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enrichStackTraceA
Read-only

Map stack-trace frames to introducing commits via git blame. Parses Node/Python/browser traces, filters to in-workspace files, returns per-frame commit + overall top suspect.

ParametersJSON Schema
NameRequiredDescriptionDefault
stackTraceYesFull stack trace text. Multi-line; any language.
maxFramesNoMax frames to blame. Default 10. Top-of-stack first.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is clear. Description adds behavioral context: parses traces, filters to in-workspace files, returns commit info. Discloses no destructive 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the main action, followed by supported trace formats and output summary. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains return structure (per-frame commit + top suspect). Sufficient for a tool with clear input schema and read-only annotation. Could mention error handling or performance bounds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with descriptions (100% coverage). Description adds little beyond schema, only hinting that stackTrace is multi-line and maxFrames defaults to 10 (already in schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'map', resource 'stack-trace frames to introducing commits', and scope 'via git blame'. Distinguishes from sibling tools like gitBlame and enrichCommit by specifying parsing Node/Python/browser traces and returning per-frame commit plus suspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for debugging stack traces, but no explicit when-to-use or when-not-to-use. Doesn't mention alternatives like gitBlame or testTraceToSource, which could be more appropriate for simpler blame queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluateInDebuggerA
Read-only

Evaluate expression in active debug session. Session must be paused at a breakpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesExpression to evaluate
frameIdNoStack frame ID from getDebugState callStack (0=top frame)
contextNoEvaluation context (default: repl)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating safe read operation. The description adds critical behavioral context: 'Session must be paused at a breakpoint'. This goes beyond annotations and informs the agent of a prerequisite, avoiding errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: first states action, second states prerequisite. No unnecessary words. Every sentence adds value. Ideal for quick consumption by an LLM.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete in terms of usage condition but does not mention the return value or error handling (no output schema available). While the tool name implies evaluation yields a result, explicitly stating the output could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 3 parameters with full descriptions (100% coverage). The tool description does not add extra meaning beyond what the schema provides. Baseline 3 is appropriate since schema already handles parameter explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it evaluates an expression in an active debug session, specifying the verb and resource. It distinguishes from siblings like startDebugging or getDebugState by specifying the prerequisite (paused at breakpoint).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the condition for use: debug session must be paused. It implies when to use (during active breakpoint pause) but does not explicitly mention when not to use or alternatives. However, the context is clear and no sibling tool duplicates this exact function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

executeVSCodeCommandA

Execute VS Code command by ID. Use listVSCodeCommands to discover IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesVS Code command ID to execute
argsNoArguments to pass to the command

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits such as side effects, required permissions, or behavior on invalid commands. For a generic command executor, this lack of information is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the purpose and providing a key usage tip. Every sentence earns its place with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's generic nature and lack of output schema, the description is notably incomplete. It omits details on return values, error handling, and the variable nature of arguments, which are important for an AI agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters well. The description adds value by referencing listVSCodeCommands for discovering command IDs, providing practical guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (execute) and resource (VS Code command by ID), and provides a method to discover valid IDs via listVSCodeCommands, effectively distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to use listVSCodeCommands to discover IDs, which provides a clear prerequisite. However, it does not explicitly state when to use this tool versus alternatives, but the advice serves as implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explainDiagnosticA
Read-only

Bundle diagnostic details + code context (±10 lines) + go-to-definition + callers (up to 5) for a file/line/character position.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path
lineYesLine number (1-based)
characterYesCharacter/column (1-based)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond the readOnlyHint annotation, specifying that it includes ±10 lines of code context, go-to-definition, and up to 5 callers. This clarifies the extent of information returned without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys all essential information without wasted words. Every element (bundle, code context, go-to-definition, callers) is clearly stated and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description adequately explains the return value (diagnostic details, code context, go-to-definition, callers). It covers the essential aspects for a moderately complex tool, though it could benefit from mentioning whether the diagnostics are from all sources or only linting/errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for all three parameters. The description mentions 'file/line/character position' but does not significantly enhance the schema's meaning. The addition of 'code context' and other bundled items is more about output than parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool bundles diagnostic details, code context, go-to-definition, and callers for a specific file/line/character position. It uses a specific verb 'Bundle' and resource 'diagnostic details + code context + go-to-definition + callers', distinguishing it from similar siblings like 'explainSymbol' or 'getHover'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for file/line/character positions but does not explicitly state when to use this tool versus alternatives. No exclusions or sibling comparisons are provided, leaving the AI agent to infer the context from the description and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explainSymbolA
Read-only

Get comprehensive symbol info in one call: type signature, docs, definition location, call hierarchy, and reference count.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path
lineYesLine number (1-based)
columnYesColumn number (1-based)
includeTypeHierarchyNoAlso fetch supertypes/subtypes hierarchy (default: false)
includeCodeActionsNoAlso fetch available code actions at this position (default: false)
includeSiblingsNoAlso fetch sibling symbols in the same file — other functions, classes, and variables defined alongside the target (default: false)
useMemoryGraphNoQuery codebase-memory graph for architectural context: module ownership, ADRs, graph callers (default: false). Requires codebase-memory MCP connected + repo indexed.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses what the tool returns and the optional boolean parameters that enhance output, including a prerequisite for useMemoryGraph. This goes beyond the readOnlyHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that efficiently conveys the tool's purpose and capabilities without extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers key return values and optional flags, but without an output schema, it could be more explicit about the response format or structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds context by listing the returned data types and noting the memory graph prerequisite, adding value beyond parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool aggregates multiple symbol details (type signature, docs, definition location, call hierarchy, reference count) into one call, distinguishing it from sibling tools that return only one aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when comprehensive symbol info is needed, but it does not explicitly state when not to use it or provide alternatives for partial info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetchCalendarEventsA
Read-only

Fetch upcoming Google Calendar events. Returns events for the next N days. Requires Google Calendar connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysAheadNoNumber of days ahead to fetch (default: 7, max: 30).
maxResultsNoMaximum events to return (default: 20, max: 50).
calendarIdNoCalendar ID to query (e.g. 'primary' or an email address). Defaults to the connected calendar.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's 'Fetch' aligns. The description adds the connector requirement and the time scope, but does not elaborate on error behavior if the connector is missing or on pagination limits. It meets the baseline but lacks extra context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, each conveying essential information (fetching events, time range, prerequisite). No extraneous words, and the most important action is front-loaded. It is an model of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description briefly mentions return type ('Returns events' ) but omits details like structure (e.g., summary, start, end). However, the tool's purpose is simple, the parameters are well-defined, and an AI agent can infer the likely output format. Minor gap, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full descriptions for all three parameters (daysAhead, maxResults, calendarId). The description only reiterates 'next N days' which matches daysAhead, adding no new meaning. Schema coverage is 100%, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'upcoming Google Calendar events'. It specifies the scope (next N days) and a prerequisite (Google Calendar connector connected). There are no sibling tools with similar purpose, so it is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions a prerequisite (connector required) and implies the tool is for upcoming events. However, it does not provide guidance on when not to use this tool (e.g., for past events or other calendars) or mention alternatives, which is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetchGithubIssueA
Read-only

Fetch a GitHub issue by URL or owner/repo#number ref. Returns title, body, state, labels, assignees, and author. Requires GitHub connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueRefYesGitHub issue URL (https://github.com/owner/repo/issues/42) or short ref (owner/repo#42).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds beyond annotations by specifying the return fields (title, body, state, labels, assignees, author) and the connector requirement. No contradictions. However, it does not mention error behavior 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the action, then lists return values and a prerequisite. No redundant information or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description covers the return fields and a key prerequisite. It could mention error handling or limitations, but is sufficient for a simple fetch operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a detailed description of the sole parameter issueRef, so the description's statement about 'by URL or owner/repo#number ref' adds minimal additional value. With 100% schema coverage, the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a GitHub issue, specifying two identification methods (URL or short ref). It is distinct from sibling tools like fetchGithubPR (which fetches pull requests), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite of having a GitHub connector connected, but does not explicitly state when to use this tool versus alternatives (e.g., fetchGithubPR for pull requests). The context is clear, but exclusions are implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetchGithubPRA
Read-only

Fetch a GitHub pull request by URL or owner/repo#number ref. Returns title, body, state, branches, labels, review decision, and diff stats. Requires GitHub connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
prRefYesGitHub PR URL (https://github.com/owner/repo/pull/42) or short ref (owner/repo#42).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and description consistently describes a read operation. Adds value by listing returned fields and connector requirement. No contradictions; could mention error handling or pagination but not required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first covers purpose and output, second covers a key prerequisite. No filler, front-loaded, easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one param and no output schema, description covers main usage and result. Could mention error cases, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear param description. Tool description repeats the same info without adding new meaning. Baseline 3 appropriate since schema already documents the param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly specifies verb 'Fetch', resource 'GitHub pull request', and lists returned fields (title, body, state, etc.). Distinguishes from siblings like fetchGithubIssue by focusing on PR-specific data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States prerequisite ('Requires GitHub connector connected'), implying when to use. Does not explicitly exclude alternatives or provide when-not guidance, 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.

fetchLinearIssueA
Read-only

Fetch a Linear issue by identifier or URL. Returns title, description, state, assignee, labels, and priority. Requires Linear connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesLinear issue identifier (e.g. 'LIN-42', 'TEAM-123') or full issue URL.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds the list of returned fields, providing useful context about what data the agent can expect. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences: one stating the action and one listing returns and prerequisites. Every word is informative with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers key return fields and a prerequisite. It lacks error handling details (e.g., invalid issue ID), but for a simple read-only tool this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description of the issueId parameter (identifier or URL). The description adds no additional parameter information beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a Linear issue by identifier or URL, and lists the returned fields (title, description, state, assignee, labels, priority). It distinguishes from siblings like createLinearIssue and updateLinearIssue by being a read-only fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite 'Requires Linear connector connected.' It does not explicitly state when not to use this tool or direct to alternatives, but the context of siblings implies this is for fetching, not mutating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetchSentryIssueA
Read-only

Fetch a Sentry issue and enrich its stack trace with git blame. Returns per-frame commit attribution + top suspect commit. Requires Sentry connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesSentry issue ID (e.g. '12345') or full issue URL (e.g. 'https://sentry.io/organizations/my-org/issues/12345/').
maxFramesNoMax stack frames to blame. Default 10.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, and the description aligns by describing a fetch operation. It further explains the enrichment process and return value, which adds behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences: the first states purpose and return value, the second states the prerequisite. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's purpose, return value, and prerequisite. With no output schema, it correctly describes the output. The input schema fully documents parameters. The tool is simple and well-covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the input schema (100% coverage). The description adds little that is not already in the schema, but it does relate maxFrames to the enrichment process. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a Sentry issue and enriches its stack trace with git blame, returning per-frame commit attribution and top suspect commit. This distinguishes it from sibling tools like fetchGithubIssue or fetchLinearIssue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite that a Sentry connector must be connected, which guides usage. However, it does not explicitly state when to use this tool over alternatives or 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.

fetchSlackProfileA
Read-only

Get the connected Slack workspace name, team ID, and bot user ID. Use to confirm Slack is connected.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation readOnlyHint=true already indicates safe read. Description adds value by specifying exact returned fields. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and output, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description clearly lists the three returned fields. Sufficient for a simple getter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema (100% coverage). Description adds no parameter info, but none needed. Baseline 4 due to no params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Get' with specific resources (workspace name, team ID, bot user ID). Distinguishes from sibling Slack tools like slackPostMessage and slackListChannels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use to confirm Slack is connected' which guides when to invoke it. No explicit alternatives or exclusions, but contextually clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

findFilesA
Read-only

Find files by name/glob pattern in the workspace. Respects .gitignore.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesGlob pattern (e.g. '*.config.ts', 'README*')
directoryNoSubdirectory to search in (relative to workspace)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds the behavioral trait of respecting .gitignore, which is useful beyond annotations. However, no other traits like recursion depth, performance, or whether it returns relative/absolute paths are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the main purpose, second adds the gitignore behavior. No unnecessary words, front-loaded, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple file-finding tool with two parameters and no output schema, the description is adequate but lacks details about return format (e.g., list of paths) and limits. The agent can infer success but may need additional context for full usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description repeats the pattern concept but adds no additional meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds files by name or glob pattern, which is distinct from sibling tools like searchWorkspace (content search) or findReferences (symbol references). The verb 'Find' and resource 'files' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for file-finding tasks and notes .gitignore respect, but does not explicitly contrast with alternatives or provide when-not-to-use guidance. Usage context is implied but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

findImplementationsA
Read-only

Find implementations of interface, abstract method, or abstract class.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the tool is read-only. The description adds no additional behavioral traits beyond the schema. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words. Front-loaded with the core purpose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple code navigation tool with no output schema, the description is mostly complete. However, it could mention the return format (e.g., locations) for full clarity, but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 3 parameters are fully described in the input schema (100% coverage). The description adds no extra meaning; baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool finds implementations of interface, abstract method, or abstract class. It uses a specific verb ('Find') and resource types, distinguishing it from siblings like 'findReferences' and 'goToDefinition'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'batchFindImplementations' or 'findReferences'. The description provides no context for selection or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

findReferencesA
Read-only

Find all references to a symbol at a given position using VS Code LSP.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)
cursorNoCursor from previous call's nextCursor. Omit on first call.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint: true, meaning read-only. The description adds that it uses VS Code LSP, which implies potential blocking behavior but does not detail any additional traits like rate limits or state side effects. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the essential purpose concisely. It is front-loaded with key information and contains no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, and the schema covers parameters well, but no output schema is provided. The description could mention the return format (e.g., list of reference locations) or explain how the cursor parameter enables pagination. Currently, it is adequate but leaves some missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with detailed descriptions for all four parameters (filePath, line, column, cursor). The tool description adds no extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Find), the resource (all references to a symbol at a given position), and the mechanism (using VS Code LSP). It distinguishes itself from sibling tools like findImplementations (finds implementations) and findFiles (finds files).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like findImplementations or batchFindImplementations. It does not mention when not to use it or any prerequisites, leaving 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.

findRelatedTestsA
Read-only

Find test files that cover a source file via import search + name patterns. Optionally includes coverage pct per test file.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesSource file to find tests for (absolute or workspace-relative)
includeCoverageNoCross-reference coverage report if available (default: false)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and description adds details about search method and optional coverage. No contradictions. Good disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no redundant information. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description implies list of test files. Could mention return format for completeness, but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters fully (100%). Description does not add meaning beyond schema, baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'find', resource 'test files', and method 'import search + name patterns'. Distinguishes from siblings like generateTests or runTests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage to locate test files, but no explicit when-to-use or alternatives. Optional coverage parameter is noted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fixAllLintErrorsA
DestructiveIdempotent

Auto-fix lint errors. VS Code source.fixAll when connected, falls back to eslint/biome/ruff.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFile to fix (relative or absolute path)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses behavior: uses VS Code source.fixAll when connected, falls back to linters. Annotations confirm destructive and idempotent. Description adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with purpose. No unnecessary words. Efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with one param, thorough schema coverage, clear annotations, and no output schema, description provides sufficient context including fallback behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter filePath is fully described in schema (100% coverage). Description does not add extra meaning, but baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it auto-fixes lint errors, names specific VS Code command (source.fixAll) and fallback linters (eslint/biome/ruff), distinguishing from sibling tools like applyCodeAction or formatDocument.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage context: connected to VS Code uses source.fixAll, otherwise falls back to linters. No explicit when-not or alternatives, but clear enough for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

foldingRangesA
Read-only

Foldable regions in a file (functions, classes, imports, comments). Returns {startLine, endLine, kind}.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds limited value by listing return fields and examples. No additional behavioral details (e.g., performance, limitations) are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with clear purpose and return format. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately describes the return value format and examples. For a simple read tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description does not add extra meaning beyond the schema's filePath description. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns foldable regions (functions, classes, imports, comments) with {startLine, endLine, kind}. Differentiates from generic getDocumentSymbols by focusing on foldable regions, but does not explicitly distinguish from siblings like selectionRanges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 getDocumentSymbols or findImplementations. Does not mention when not to use it or provide context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

formatAndSaveA
DestructiveIdempotent

Format a file and save it in one call (formatDocument + saveDocument). Formatter errors propagate; save is not attempted on format failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file (absolute or workspace-relative)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructive, idempotent), the description adds that formatter errors propagate and save is skipped on format failure, which is useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the main action and error handling, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 plus annotations cover the needed context well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage describing 'filePath'. The description does not add extra parameter details beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool formats and saves a file in one call, distinguishing it from the sibling tools 'formatDocument' and 'saveDocument'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (combining two steps) and distinguishes from siblings, but doesn't explicitly state when not to use or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

formatDocumentA
DestructiveIdempotent

Format file via VS Code formatter or CLI fallback (prettier/biome/black/gofmt/rustfmt).

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFile to format (relative or absolute path)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint and idempotentHint. The description adds minimal behavioral context (e.g., fallback CLI tools), but does not detail whether it modifies the file in-memory or on disk, or other side effects. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with the core action. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 1 parameter, no output schema, and clear annotations, the description is adequate. It could mention that it formats the entire file or that it uses project config, but overall it provides enough context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the single parameter filePath, and the description does not add semantic meaning beyond the schema's description. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Format' and the resource 'file', and mentions specific CLI formatters. It distinguishes from sibling tools like formatAndSave (which saves) and formatRange (range formatting) by specifying it uses VS Code formatter or CLI fallback for the entire file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for formatting files but provides no explicit guidance on when to prefer this over siblings like formatAndSave or formatRange. No when-not or alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

formatRangeA

Format a line range via LSP formatter. Faster than full formatDocument for large files.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineYes1-based start line (inclusive)
endLineYes1-based end line (inclusive)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not add significant behavioral transparency beyond the annotation readOnlyHint=false. It mentions 'via LSP formatter' which implies standard behavior, but lacks details on side effects, undo capability, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the purpose and includes a performance comparison. No wasted words, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality but lacks details on return values, error conditions, or prerequisites (e.g., file must be open, LSP active). Given the simplicity of the tool, it is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the input schema has 100% description coverage for each parameter, the description does not add new meaning. It provides minimal extra context beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it formats a line range using LSP formatter, with a specific verb and resource. It distinguishes itself from the sibling tool formatDocument by highlighting it is faster for large files, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use this tool ('for large files' to be faster than full formatDocument), implying a choice between range vs full formatting. However, it does not explicitly list alternatives or exclusions beyond the comparison with formatDocument.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generateAPIDocumentationA
Read-only

Generate API docs (markdown/JSON) for TS/JS exported symbols. Extracts fns, classes, interfaces, JSDoc.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesRelative file paths to document (required)
formatNoOutput format (default: markdown)
includePrivateNoInclude non-exported symbols (default: false)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description confirms it extracts symbol types without mutation, adding context about JSDoc extraction. No contradictions, but could elaborate on JSDoc handling and import traversal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, front-loaded with the core purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters fully described in schema and no output schema, the description provides sufficient context about purpose and extracted symbols. Missing explicit output format details (though implied by 'markdown/JSON').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The description adds minimal extra context (e.g., TS/JS focus) but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates API docs in markdown/JSON for TS/JS exported symbols, extracting functions, classes, interfaces, and JSDoc. This distinguishes it from sibling tools like generateTests, getHover, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (when API documentation is needed) but does not explicitly state when not to use it or mention alternative tools like getHover for individual symbol documentation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generateTestsA
Read-only

Generate test scaffold from exported fns/classes. Returns describe/it content; does not write file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPath to the source file
frameworkNoTest framework (default: auto-detect)
outputFileNoSuggested output path (default: auto-derived)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While readOnlyHint already indicates a read-only operation, the description adds that the tool returns describe/it content (test scaffold) and explicitly states it does not write files, providing additional behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, immediately stating the tool's purpose and a key behavioral note, with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and a readOnly annotation, the description sufficiently covers the purpose, output type, and file-writing constraint. It lacks details on error handling or limitations, but these are minor for this simple generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full descriptions for all three parameters (100% coverage). The top-level description adds the nuance that the tool works on files with exported functions/classes, but this only marginally enhances parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates test scaffolding from exported functions/classes, and explicitly notes it returns content without writing files, distinguishing it from sibling tools like runTests or findRelatedTests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for generating test content from exported code and states it does not write files, but lacks explicit guidance on when to use versus alternative test-related tools (e.g., runTests, findRelatedTests).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getActivityLogA
Read-only

Query recent tool call log: names, timing, status, percentiles, co-occurrence.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoFilter by tool name
statusNoFilter by status
lastNoRecent entries to return (default: 50, max: 200)
showStatsNoInclude per-tool stats (call count, avg duration, error count). Default: false
showPercentilesNoInclude per-tool p50/p95/p99 duration percentiles (requires showStats). Default: false
showCoOccurrenceNoInclude tool-pair co-occurrence within the time window. Default: false
coOccurrenceWindowMsNoCo-occurrence window ms (default: 300000, max: 3600000)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description reinforces this with 'Query' and adds specific behavioral details about what the log includes (timing, status, percentiles, co-occurrence), providing context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's function without any extraneous words. It includes key aspects of the log query without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the main purpose and some output details, it lacks information about the return format or potential pagination. Given the absence of an output schema, a bit more detail on the structure of results would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are already well-documented in the JSON schema. The description does not add any additional parameter semantics beyond summarizing the output, which is sufficient given the schema's richness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries the tool call log, specifying details like names, timing, status, percentiles, and co-occurrence. It distinguishes this tool from sibling tools that deal with other logs (e.g., getGitLog, getBufferContent).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given. The description only states what the tool does, leaving the agent to infer usage context from the tool name and siblings. No alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getAnalyticsReportB
Read-only

Session analytics: top tools by call count, hook events, recent automation tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowHoursNoHow many hours back to count lifecycle hook events. Default: 24.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description does not need to restate that. The description adds what data the report contains, which is useful. However, it does not disclose any limitations, rate limits, or data freshness, which are not critical for a read-only report tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that directly states the content of the report. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter, but there is no output schema. The description gives a high-level idea of return data (top tools, hook events, automation tasks) but lacks detail on structure (e.g., is it a list, object, any nested fields). Given the simplicity, it is marginally adequate but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not mention the windowHours parameter or add any meaning beyond the schema. The schema itself provides a clear description and constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the report contents: 'top tools by call count, hook events, recent automation tasks.' It implies the tool retrieves a session analytics report. However, it does not explicitly use a verb like 'retrieves' or 'gets', relying on the tool name for action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like getSessionUsage or getPerformanceReport. No context about prerequisites or when not to use it is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getArchitectureContextA
Read-only

Architectural overview via codebase-memory graph: module boundaries, dependencies, ADRs, hotspot files. Returns structured query plan. Requires codebase-memory connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
aspectsNoAspects to include: 'modules', 'dependencies', 'adrs', 'hotspots', 'all' (default: ['all'])
maxNodesNoMax graph nodes to return per aspect (default: 20)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms a read operation (architectural overview). It adds value by stating the return type ('structured query plan') and the prerequisite (codebase-memory connected). No contradictions; behavior is adequately disclosed beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence captures purpose and scope, the second adds prerequisites and return information. Front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and high schema coverage, the description covers purpose, return type ('structured query plan'), and a key prerequisite. The 'structured query plan' could be more specific, but the overall context is sufficient for a simple read tool with two parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with clear descriptions for both parameters ('aspects' and 'maxNodes'). The description does not add significant meaning beyond the schema, only mentioning the return type. Baseline 3 is appropriate since schema already provides full parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides an 'architectural overview via codebase-memory graph' with specific aspects (module boundaries, dependencies, ADRs, hotspot files). This verb-resource pair is distinct from sibling tools like getDependencyTree or getProjectContext, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite 'Requires codebase-memory connected' but does not explicitly guide when to use this tool versus alternatives (e.g., getDependencyTree, getProjectContext). There is no when-not-to-use or alternative naming, so usage guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getBridgeStatusA
Read-only

IDE bridge status: ext connection, circuit breaker, uptime, tool availability.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds specific status categories beyond annotations, but does not elaborate on behavioral traits like refresh frequency or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description covers the main status aspects. Could mention read-only nature but annotations already do.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. Baseline of 4 applies since description adds no parameter info but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States it provides IDE bridge status including ext connection, circuit breaker, uptime, and tool availability. Clear purpose but does not explicitly differentiate from sibling tools like getConnectorStatus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getBufferContentA
Read-only

Read workspace file from VS Code buffer including unsaved changes. Use before editText. Returns isDirty flag. Workspace files only.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineNoFirst line to include (1-based, default: 1)
endLineNoLast line to include (1-based, default: all lines)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the readOnlyHint annotation by detailing that unsaved changes are included and that the tool is limited to workspace files. It accurately communicates the tool's behavior without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with only two sentences, front-loading the core functionality. Every sentence serves a purpose: stating what it does, when to use it, and what it returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 output schema, the description covers the main functionality and key behavior (unsaved changes). However, it does not clarify behavior when the file is not in the buffer (e.g., whether it reads from disk). This minor gap prevents a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for all parameters. The description does not add further clarification or examples, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a workspace file from the VS Code buffer including unsaved changes, with a specific verb and resource. It also mentions returning an isDirty flag and restricts to workspace files, distinguishing it from sibling tools like editText or getOpenEditors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use this tool before editText, providing clear contextual guidance. While it does not list exclusions or alternatives, the instruction is sufficient for typical usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCallHierarchyB
Read-only

Get the call hierarchy for a function or method. Use direction="incoming" to find callers, "outgoing" to see everything it calls, or "both" (default).

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)
directionNo"incoming"=callers, "outgoing"=callees, "both"=all (default)
maxResultsNoMax callers/callees per direction (default: 50, max: 200)
cursorNoCursor from previous call's nextCursor. Omit on first call.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; description does not contradict and adds the direction behavior. No additional disclosure (e.g., performance, auth) beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundancy. Every sentence serves a clear role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, yet description omits return value explanation. Also does not mention cursor usage despite it being a key parameter. Incomplete for a 6-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds minimal value by explaining the direction enum, but other parameters are already well-described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the call hierarchy for a function/method, with specific verb and resource. However, it does not differentiate from sibling tools like getTypeHierarchy or findReferences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on using the direction parameter for incoming/outgoing/both, but lacks explicit when-not-to-use or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getChangeImpactB
Read-only

Blast radius after editing a file: diagnostics + reference counts for changed symbols.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path of the edited file
changedSymbolsNoSymbols that were changed (optional). Each entry must have a name; optionally a line number to disambiguate overloads.
workspaceOnlyNoFilter references to workspace files only (default: true). External refs (node_modules, stdlib) are counted separately.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the tool is a safe read operation. Description adds that it returns diagnostics and reference counts, but does not disclose potential performance implications, limits, or whether it triggers analysis. With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 10 words, highly concise. Every word earns its place, starting with the key concept 'Blast radius' for immediate understanding. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks detail on output format (e.g., structure of diagnostics, counts) and does not explain how to interpret 'blast radius'. With no output schema, the description should provide more context. Also, given many similar sibling tools, it does not help the agent decide when to invoke this over others.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for all three parameters. The description adds no further meaning beyond the schema, e.g., it does not explain how 'changedSymbols' relate to the output. Baseline 3 is correct when schema is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool computes 'blast radius' after editing a file, providing diagnostics and reference counts for changed symbols. It uses specific verbs and resources, making the purpose clear, though it does not explicitly differentiate from similar sibling tools like findReferences or getDependencyTree.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., findReferences, getDependencyTree). Missing context such as prerequisites (file must be saved?) or after-edit timing. Agent must infer usage from description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getClaudeTaskStatusA
Read-only

Get the status and output of a Claude task enqueued with runClaudeTask.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID returned by runClaudeTask.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation 'readOnlyHint: true' already indicates no side effects. The description ('Get') aligns but adds no further behavioral context (e.g., polling behavior, rate limits). Baseline score with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with 12 words. No filler; every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only status check with one parameter and clear annotations, the description is sufficient. There is no output schema, but the description hints at the return content ('status and output'), which is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema description for taskId is adequate. The description does not add any additional parameter meaning beyond what is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get'), the resource ('status and output of a Claude task'), and the relationship to 'runClaudeTask', which distinguishes it from sibling tools like cancelClaudeTask or listClaudeTasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used after runClaudeTask to check progress, but no explicit when-not-to-use or alternative guidance is provided. However, the context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCodeActionsA
Read-only

Get available code actions (quick fixes, refactorings) for a range in a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineYesStart line (1-based)
startColumnYesStart column (1-based)
endLineYesEnd line (1-based)
endColumnYesEnd column (1-based)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation (true) by describing a read operation. However, it adds no additional behavioral context beyond what annotations provide (e.g., no mention of side effects or analysis triggers). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence (13 words) that clearly states the purpose with no unnecessary words or repetition. Excellent front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 required params, no output schema, and a simple read operation. The description is sufficient for the agent to understand the basic purpose, though it does not specify the return format (e.g., list of action names). Given the simplicity, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all 5 parameters. The description only mentions 'range in a file', which does not add meaning beyond the schema descriptions (e.g., line/column numbers). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Get', the resource 'code actions', and the scope 'for a range in a file'. It clearly distinguishes from siblings like applyCodeAction (which applies the action) and previewCodeAction (which previews).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives (e.g., applyCodeAction, previewCodeAction). The context is implied but no explicit when-to or when-not-to guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCodeCoverageA
Read-only

Parse coverage report (lcov/coverage-summary.json/clover.xml) → per-file line/branch/fn %. Does not run tests.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoCoverage report path. Omit to auto-detect in coverage/
minCoverageNoFilter: only return files below this coverage %

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that it does not run tests, which is important because the name might imply test execution. However, it does not disclose behavior for missing files or auto-detection failures, so additional detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and key behavior (does not run tests). Every word adds value, with no extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parsing tool with no output schema, the description covers the input formats and output metrics adequately. It could mention default behavior when 'file' is omitted, but overall it is sufficiently complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters. The description does not add further semantics beyond outlining the supported report formats and output metrics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as parsing coverage reports (lcov, coverage-summary.json, clover.xml) and producing per-file line/branch/function coverage percentages. It uses a specific verb ('parse') and resource ('coverage report'), distinguishing it from other tools on the server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives. It only states 'Does not run tests,' which is a negative hint, but lacks explicit context on prerequisites or scenarios where this tool is preferred over other reporting tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCodeLensA
Read-only

Code lens items for a file: ref counts, Run/Debug buttons, impl counts from language server.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that results come from a language server but does not disclose other behavioral traits such as possible delays, caching, or error cases. It provides minimal extra value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the purpose. No redundant text. Every word earns its place. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 output schema, read-only annotations), the description is complete enough. It covers the essential purpose and parameter without needing elaboration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers filePath with 100% description coverage. The description does not add any additional meaning or examples beyond what the schema already provides. Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves code lens items for a file, specifying what those items are (ref counts, Run/Debug buttons, impl counts) and the source (language server). This verb+resource+details approach distinguishes it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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. No mention of prerequisites or context for usage. The description is purely functional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCommitDetailsA
Read-only

Full commit details: author, date, message, changed files, optional diff patch.

ParametersJSON Schema
NameRequiredDescriptionDefault
commitHashYesFull or abbreviated commit hash
includePatchNoInclude full diff patch. Default: true. Set false for metadata/stats only.
filePathNoLimit diff to a single file (absolute or workspace-relative)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds value over annotations by specifying returned fields. However, it does not disclose potential performance impact of including patches on large commits or that it operates on the current repository. Annotations already indicate read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise (one sentence) and front-loaded with key information. Could be slightly more structured but avoids redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description lists major output fields. However, it does not specify return format (single object vs. array), nor clarify that it works on the current Git repository. Adequate for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with well-described parameters (commitHash, includePatch, filePath). Description adds minimal extra meaning beyond confirming optional diff patch.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns full commit details including author, date, message, changed files, and optional diff patch. This distinguishes it from sibling tools like getGitLog (lists commits) or getDiffBetweenRefs (compares refs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives such as getGitLog for listing commits or getDiffBetweenRefs for comparing branches. Lacks context for appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCommitsForIssueA
Read-only

Reverse commit→issue lookup from the persisted enrichment log. Returns commits that referenced the given issue, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueYesIssue ref: `#42`, `42`, or `GH-42`. Normalized to `#N` internally.
linkTypeNoOptional filter — only `closes` or only `references`.
workspaceScopeNo`current` (default) filters to this workspace; `any` returns matches from every workspace the log has seen.
limitNoMax results (default 100).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds useful behavioral details: returns newest first, uses enrichment log, and implies no side effects. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first explains the reverse lookup and source, second adds ordering. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description only says 'returns commits'. Lacks details on commit fields, pagination, or error cases. Adequate but could be more complete for an agent to handle responses effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions. Description adds value by explaining issue normalization ('#N internally') and default limit (100), going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool performs a reverse commit-to-issue lookup, returns commits that referenced the issue, and orders them newest first. This distinguishes it from siblings like getCommitDetails or fetchGithubIssue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 (e.g., fetchGithubIssue). Implies usage via 'persisted enrichment log' but lacks context on limitations or preferred scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getConnectorStatusA
Read-only

Returns the auth status of all MCP connectors (GitHub, Linear, Sentry). Shows whether each is connected, when the token expires, and whether re-authorization is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds context about what information is returned (connected, token expiry, re-auth), but does not disclose other behavioral traits like rate limits or side effects. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and annotations present, the description is complete. It describes the return values and scope adequately for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0 parameters, schema coverage is 100%, so description does not need to add parameter info. Baseline score for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns auth status of MCP connectors, listing specific connectors (GitHub, Linear, Sentry) and details (connected, token expiry, re-auth needed). It distinguishes itself from siblings like getBridgeStatus by specifying scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking connector status but does not explicitly state when to use this tool versus alternatives (e.g., getBridgeStatus, other status tools). No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCurrentSelectionA
Read-only

Get the current text selection in the editor

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description adds minimal behavioral context beyond implying a read operation. It does not mention what happens when no selection exists (e.g., returns null) or any other 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 8 words, front-loading the purpose with no extraneous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description could hint at the return format (string? object?). It says 'text selection' but is vague. For a simple tool, it is adequate but could be more precise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. With zero parameters, the baseline is 4, and the description does not need to add parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the current text selection in the editor', specifying the verb (get) and resource (current text selection). It distinguishes from siblings like getLatestSelection and selectionRanges by focusing on 'current' selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 getLatestSelection or selectionRanges. The description lacks any context on appropriate usage or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDebugStateA
Read-only

VS Code debugger state: session info, paused location, call stack, locals. hasActiveSession=false if idle.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds value by detailing the state components (session info, paused location, call stack, locals) and the hasActiveSession flag behavior. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence that front-loads the purpose and key information. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and no output schema. The description lists all relevant state components, making it complete for an agent to understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description does not need to add parameter information. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves VS Code debugger state including session info, paused location, call stack, and locals. It specifies a key field (hasActiveSession=false if idle), distinguishing it from other debugger tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on what the tool retrieves but does not explicitly state when to use it over sibling tools like startDebugging, stopDebugging, or setDebugBreakpoints. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDependencyTreeA
Read-only

Dependency tree (npm/cargo/go/pip). Auto-detects package manager. Returns names and versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMax dependency depth (npm only). Default: 2
packageManagerNoPackage manager to use. Default: auto-detect from manifest files

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true; description adds 'Returns names and versions' which aligns, but lacks details on error handling or behavior when auto-detection fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with key information, no unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema and annotations, the description covers core purpose and output; could mention limitations (e.g., requires manifest files) but generally complete for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear parameter descriptions; the tool description essentially restates schema info, adding minimal new value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'getDependencyTree' with specific package managers listed, and distinguishes from sibling tools like auditDependencies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for dependency tree retrieval, but no explicit guidance on when to use versus alternatives like auditDependencies or getImportTree.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDiagnosticsA
Read-only

Errors/warnings from TS, ESLint, Pyright, Ruff, Cargo, Go vet, Biome. Real-time LSP when ext connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoFilter by file: absolute path, workspace-relative, or file:// URI.
severityNoMin severity to return. Order: error > warning > information > hint. Use 'error' for build-breaking only.
maxResultsNoMax diagnostics to return (default: 100, max: 2000)
topNNoKeep only top-N diagnostics by severity. Sets truncated:true if reduced.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true. Description adds real-time LSP behavior when external tool connected, but does not detail fallback behavior (cached vs. stale) or coverage limitations across listed languages. Some behavioral context but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, skillfully front-loaded: first sentence states exact purpose and languages, second adds behavioral insight. No fluff; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but description omits return format or diagnostic structure. Agents must infer what fields are returned. Lacks completeness for a data retrieval tool without schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers all 4 parameters with full descriptions (100% coverage). Description adds no additional meaning beyond schema fields, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies verb 'get' and resource 'diagnostics' from multiple linters (TS, ESLint, Pyright, etc.), clearly distinguishing from siblings like 'watchDiagnostics' (streaming) and 'explainDiagnostic' (interpretation). Purpose is precise and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 (e.g., watching vs. fetching, explaining vs. raw diagnostics). The name implies one-off retrieval, but description does not state usage context or exclusions, leaving ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDiffBetweenRefsC
Read-only

Diff between two git refs (branches/tags/commits). statOnly for file-level summary only.

ParametersJSON Schema
NameRequiredDescriptionDefault
ref1YesBase ref (branch, tag, or commit hash)
ref2YesComparison ref (branch, tag, or commit hash)
filePathNoLimit diff to a single file (absolute or workspace-relative)
contextNoNumber of context lines around changes. Default: 3
statOnlyNoReturn file-level stat summary only (no patch). Default: false.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=true, so the description does not need to state read-only behavior. It adds minimal information beyond the schema—only mentioning the statOnly parameter behavior. No additional traits (e.g., performance, size limits, error cases) are disclosed, which is a gap given no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, front-loaded sentences with no excess information. Every word adds value: the first sentence defines the tool's core functionality, and the second highlights a key optional behavior. No wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a rich input schema, the description lacks an overview of the output format (e.g., whether it returns patch lines, file list, etc.). Without an output schema, the agent relies on the description for this context, which is missing. The tool is moderately complex (5 parameters), and the description barely covers the 'what' without addressing 'what you get back'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. The description merely echoes the statOnly parameter's purpose, adding little new meaning. Baseline 3 is appropriate as the description does not significantly enhance understanding of parameters beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes a diff between two git refs, specifying the resource (git refs) and action (diff). It does not explicitly distinguish this from sibling tools like getGitDiff, but the name and description imply a focus on comparing two arbitrary refs, which provides enough clarity. Missing explicit differentiation prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like getGitDiff or git diff in sibling tools. The description does not mention prerequisites, context, or scenarios where this tool is preferred, leaving the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDiffFromHandoffA
Read-only

Compute what changed since the handoff note was written: git diff summary + new/resolved diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the readOnlyHint annotation by detailing the output (git diff summary and diagnostics). It does not contradict annotations and provides sufficient behavioral context for a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and concisely details the output. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with no output schema, the description is mostly complete. It explains the purpose and output type, though it could elaborate on the format of the diff summary or diagnostics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description cannot add meaning beyond the schema. The baseline of 4 is appropriate as there is nothing to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes what changed since the handoff note, specifying it provides a git diff summary and diagnostic changes. This distinguishes it from sibling tools like getGitDiff and getHandoffNote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after a handoff note is written but does not explicitly state when to use this tool versus alternatives like getDiffBetweenRefs or getGitDiff. No guidance on 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.

getDocumentSymbolsA
Read-only

List symbols (fns, classes, interfaces, methods) in a file: names, kinds, lines, parents.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path to the file
kindNoFilter to one or more symbol kinds (e.g. ['Class','Function','Method','Interface']). Case-insensitive. Cuts variable noise on large bundled files.
maxDepthNoMax nesting depth to include (0=top-level only, 1=top + immediate children, …). Default: no depth filter. LSP returns a flattened list keyed by 'parent' name; depth is computed by walking the parent chain.
topNNoCap returned symbols. Default 500. Combined with kind/maxDepth filters which apply first.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context. It mentions output fields but does not disclose performance implications or the fact that nesting depth is computed via parent chain, which is documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the core purpose without unnecessary 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately covers the purpose but could be more informative about the output structure (e.g., how 'parents' are represented). The schema covers parameters well, but overall completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is described in the schema. The description does not add further meaning beyond the schema, which is the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists symbols (functions, classes, interfaces, methods) in a file with specific attributes (names, kinds, lines, parents). It distinguishes from sibling tools like getSymbolHistory, getCallHierarchy, etc., which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing file symbols but does not explicitly provide when to use this tool over alternatives such as searchWorkspaceSymbols or getSymbolHistory. No exclusions or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getFileTreeA
Read-only

Workspace file tree. Respects .gitignore. Skips node_modules, .git, dist, build, coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNoSubdirectory to list (relative to workspace, default: root)
maxDepthNoMaximum directory depth (default: 3, max: 10)
includeHiddenNoInclude hidden files/dirs (default: false)
maxEntriesNoMax entries to return (default: 500, max: 2000)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint annotation, description adds behavior: respects .gitignore and skips node_modules, .git, dist, build, coverage. Provides useful constraints but omits details like symlink handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with core purpose. No unnecessary words, effectively communicates key behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main function and constraints. No output schema, but expected return structure is implied. Could mention performance limits or symlink behavior for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, so baseline 3. Description does not elaborate on parameter semantics beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns a workspace file tree, respects .gitignore, and lists skipped directories. Distinguishes from sibling tools like findFiles and getWorkspaceFolders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Implies usage via purpose but lacks context for 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.

getGitDiffA
Read-only

Get the git diff output for the workspace or a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoFilter diff to a single file (absolute or workspace-relative)
stagedNoShow staged (cached) changes. Default: false
contextNoNumber of context lines around changes. Default: 3

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no further behavioral context such as output format or error scenarios, but does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It efficiently communicates the tool's purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic functionality, it does not mention default behavior (e.g., unstaged changes), expected output format, or parameter relationships. Given the tool's three optional parameters and no output schema, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have descriptions in the schema, achieving 100% coverage. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves git diff output for the workspace or a specific file, effectively distinguishing it from sibling tools like getGitLog (commit history) and getDiffBetweenRefs (branch comparisons).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention scenarios like comparing branches or viewing status, leaving the agent to infer usage from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getGitHotspotsC
Read-only

Most frequently changed files in git history. High frequency → active dev or instability.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (default: 90)
limitNoMax hotspot files to return (default: 20)
pathNoSubdirectory or glob to scope analysis (e.g. 'src/'). Default: entire repo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only (readOnlyHint=true). The description adds no further behavioral details, such as how change frequency is calculated or that it returns sorted results. Lacks insight beyond what the tool name implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no wasted words. Could be slightly more informative without losing conciseness, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description does not explain the return format (e.g., whether it includes change counts or just file names). This leaves ambiguity about what the agent can expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter has a clear description. The tool description adds no extra semantic value for parameters, but the schema already handles this adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'frequently changed files in git history', which clearly identifies the tool's purpose. However, it does not explicitly differentiate it from sibling git tools like getGitLog or getGitDiff, but the concept of 'hotspots' 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.

Usage Guidelines2/5

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. Does not mention scenarios like identifying unstable code or areas of high activity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getGitLogA
Read-only

Get recent git log entries for the workspace or a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
maxEntriesNoMax log entries to return (default: 20, max: 100)
filePathNoFilter log to a single file (absolute or workspace-relative)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so description's claim of retrieving logs is consistent. No additional behavioral details beyond read-only nature. Does not describe return format or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy. Front-loaded with verb and resource, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks description of output format (commit details). For a log retrieval tool, providing expected fields would improve completeness. Adequate given simplicity but missing return value information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides full descriptions for both parameters (maxEntries, filePath). Description adds little extra beyond paraphrasing schema; baseline 3 for 100% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Get recent git log entries for the workspace or a specific file', specifying verb, resource, and scope. Differentiated from siblings like getGitDiff and gitBlame.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use for retrieving git log entries, but no explicit guidance on when to use over alternatives like getCommitDetails or getCommitsForIssue, nor 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.

getGitStatusA
Read-only

Git status: branch, staged/unstaged/untracked files, ahead/behind counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoFilter status to a single file (absolute or workspace-relative)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; description explains what data is returned (branch, file states, ahead/behind). Good transparency for a simple 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence that summarizes the tool's output without extra words. Front-loaded content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description covers the core output categories. Could mention output structure or require git repo, but sufficient for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single optional parameter (filePath) fully (100% coverage); description adds no extra detail beyond the schema, so baseline is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns git status information including branch, staged/unstaged/untracked files, and ahead/behind counts. Distinguishes from siblings like getGitDiff and getGitLog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 getGitDiff or gitListBranches. The description is too brief to provide context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getHandoffNoteA
Read-only

Retrieve handoff note from prior session (Desktop or CLI). Call at session start to resume.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the safety profile is clear. The description aligns with this by stating 'Retrieve', but adds no further behavioral details (e.g., what happens if no note exists, or if multiple calls are allowed).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence (68 characters), front-loaded with the action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and zero parameters, the description could be more helpful by indicating the return format (e.g., 'returns a string'). It omits what happens if no prior session exists, which is a completeness gap for a retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and 100% schema coverage (empty schema). Baseline 4 for no parameters applies; the description adds no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve handoff note from prior session', specifying the verb and resource. It distinguishes itself from sibling tools like 'setHandoffNote' by focusing on retrieval. No tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Call at session start to resume', giving explicit when-to-use context. It does not mention alternatives or when not to use, but the purpose is straightforward enough that this is not a major gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getHoverA
Read-only

Get hover information (type info, documentation) for a symbol at a given position.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds context about what the hover info contains (type info, documentation). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, directly conveys purpose without unnecessary words. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with annotations and no output schema. The description hints at the return type but could be more explicit. Adequate for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description adds minimal extra meaning beyond the schema, thus baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets hover information (type info, documentation) for a symbol at a given position. It distinguishes from similar tools like getHoverAtCursor by specifying explicit coordinates, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when hover info at a specific position is needed, but no explicit guidance on when not to use or alternatives. Lacks differentiation from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getHoverAtCursorA
Read-only

Hover docs for symbol at current cursor. Zero-input wrapper around getHover.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description needs less behavioral disclosure. It adds that the tool uses the current cursor context (zero input) and is a wrapper, which is consistent and provides useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, first states purpose, second explains wrapper relationship. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is very simple with zero parameters and read-only. The description fully covers what it does and its relation to getHover. No output schema exists, but that is not a gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. The description is not required to add parameter info. Baseline for zero-parameter tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides hover documentation for the symbol at the current cursor position and identifies itself as a zero-input wrapper around getHover, distinguishing it from sibling tools like getHover and batchGetHover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Zero-input wrapper around getHover', implying use when you need hover for the cursor position and directing to getHover for other symbols or positions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getImportedSignaturesA
Read-only

Resolve imported symbols → type signatures. Use before calling unfamiliar functions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path
maxImportsNoMaximum imports to resolve (default 15, max 20)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the tool's behavior (resolving imported symbols to type signatures) beyond the readOnlyHint annotation. It could further explain how filePath is used or any limitations, but the core behavioral trait is well-covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences, each adding essential information. Purpose and usage are front-loaded with no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters, no output schema, and the readOnlyHint annotation, the description is fully adequate. It tells the agent what the tool does and when to use it, completing the contextual picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for both parameters (filePath, maxImports). The description adds no additional meaning beyond the schema, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'resolve' and the resource 'imported symbols → type signatures', and adds a usage hint. It distinguishes itself from siblings like 'getTypeSignature' and 'getImportTree' by focusing on resolving imported symbols specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using the tool before calling unfamiliar functions, providing clear context for when to invoke it. However, it does not exclude any scenarios or mention alternatives, which would push it to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getImportTreeA
Read-only

Tree of local imports for a file. Useful for understanding deps and finding circular imports.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
maxDepthNoMax recursion depth (default: 3)
includeExternalNoInclude external package imports (default: false)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, indicating safe read. Description adds no new behavioral detail beyond the name and use case; does not describe output format, recursion behavior, or what qualifies as 'local'. With annotations already covering safety, description adds limited context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. All content is relevant and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

At three parameters and no output schema, the description is adequate but could be more complete by outlining the return tree structure, clarifying 'local' scope, and noting any performance considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema describes two of three parameters (maxDepth, includeExternal) with constraints. Description adds no parameter-level information, leaving the 'file' parameter undocumented in both schema and description. Schema coverage is 67%, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool returns a tree of local imports for a file and mentions use cases (understanding deps, circular imports). However, does not explicitly differentiate from similar siblings like 'getDependencyTree' or 'getImportedSignatures'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for dependency analysis and circular import detection, but provides no explicit guidance on when not to use it or alternatives among similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getInlayHintsA
Read-only

Inlay hints (inline type annotations, param names) for a line range. e.g. TS types, Rust lifetimes.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesWorkspace or absolute path
startLineYesFirst line (1-based)
endLineYesLast line (1-based, inclusive)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description need not restate safety. It adds value by explaining what inlay hints are (inline type annotations, param names) and giving examples, but does not disclose other behavioral traits like performance implications or dependency on language servers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with an example, no fluff. Front-loaded with the core functionality. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, yet the description does not specify the return format (e.g., list of objects with position and text). While the tool's purpose is clear, incomplete return info may hinder an agent's ability to parse results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The description reiterates 'line range', matching startLine and endLine, but adds no new semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns inlay hints (inline type annotations, param names) for a line range, with specific examples (TS types, Rust lifetimes). This distinctively identifies the resource and verb, differentiating it from siblings like getHover or getCodeLens.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., getHover, getDocumentSymbols). The description lacks context about prerequisites, language support, or when not to use it, leaving the agent without comparative decision-making info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getLatestSelectionA
Read-only

Get the most recent text selection (even if not in the active editor)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the readOnlyHint annotation by specifying that the selection can come from any editor, not just the active one. This is valuable transparency for a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that conveys the essential information without any fluff. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is fully complete. It explains what the tool does and its key differentiator. No further context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is fully covered. According to the guidelines, baseline for 0 params is 4. No additional parameter information is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the most recent text selection, with the specific nuance that it works even when not in the active editor. This distinguishes it from the sibling tool getCurrentSelection, which presumably only works for the active editor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context by noting the 'even if not in the active editor' behavior, which differentiates it from similar tools. However, it does not explicitly state when to use this tool over alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getOpenEditorsA
Read-only

Open files/tabs with isDirty, isActive when ext connected. Fallback: session-opened files only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true; the description adds context about the returned properties (isDirty, isActive) and fallback behavior (session-opened files only). This goes beyond the annotation to clarify 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with key information. Every word adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description explains what is returned (isDirty, isActive) and the fallback. For a simple list tool with no parameters, this is sufficient, though it could be clearer about the output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to add parameter meaning. Baseline score of 4 is appropriate as the description omits nothing relevant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves open files/tabs and enumerates properties (isDirty, isActive). It distinguishes from siblings like 'openFile' or 'closeTab' by focusing on current open editors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the extension is connected and mentions a fallback, but does not provide explicit guidance on when to use this tool versus alternatives like 'getCurrentSelection' or 'getBufferContent'. No when-not conditions or direct sibling comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPerformanceReportB
Read-only

Live performance assessment: per-tool latency percentiles, throughput, extension health, session counts, and overall health score.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowMinutesNoLookback window in minutes for throughput stats. Default: 60.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds limited behavioral context. The term 'live' implies real-time data but does not clarify caching or latency. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that immediately states the purpose and lists key components. No extraneous words; efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple tool with one optional parameter and read-only annotations. However, it lacks details about the output format or structure, which are not provided by output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage for the single parameter (windowMinutes), and its description in the schema is clear. The tool description does not add further meaning beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the resource (per-tool performance) and lists specific metrics (latency, throughput, etc.), distinguishing it from siblings like getAnalyticsReport. However, the verb 'assessment' is less direct than alternatives like 'get' or 'fetch'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention any prerequisites, limitations, or when not to use it, leaving the agent without contextual boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPlanA
Read-only

Read plan file. Returns title, sections, tasks, and completion status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameNoPlan filename (default: .claude-plan.md)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so no contradiction. Description adds return fields but does not disclose behavior on missing file or other side effects. Adequate but minimal beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, direct sentences with no fluff. Front-loaded with the core action and output. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains return fields (title, sections, tasks, completion status). Lacks details on error handling or default filename behavior, but sufficient for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the single optional parameter is already described in the schema. The description does not add extra meaning beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reads a plan file and returns specific fields (title, sections, tasks, completion status). Distinguishes from sibling tools like createPlan, updatePlan, deletePlan, listPlans by being a read operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage as a read-only operation, but no explicit guidance on when to use versus alternatives (e.g., to modify use updatePlan). Agent can infer from context but lacks direct hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getProjectContextA
Read-only

Cached session-start brief: active file, errors, recent commits, modules. Skips cold-start re-exploration.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxAgeMsNoCache TTL in milliseconds. Default: 86400000 (24 hours).
forceNoBypass cache and regenerate. Default: false.
sectionsNoSections to include. Default: ["all"]. Options: files, errors, git, modules, all.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, which is not contradicted. The description adds that results are cached and can be controlled via maxAgeMs and force parameters. It mentions skipping cold-start re-exploration but lacks details on cache invalidation or what 'cold-start' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences with no filler. Front-loaded with core purpose and key differentiator (cached, skips re-exploration). Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 optional parameters and no output schema, the description gives a reasonable overview of contents. However, it does not describe the return format or structure, leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 3 parameters with descriptions. The description adds the list of content sections (active file, errors, commits, modules) that map to the sections parameter, but does not provide additional parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a cached session-start brief covering active file, errors, recent commits, and modules. It distinguishes from siblings by highlighting caching and avoiding cold-start re-exploration. However, it doesn't explicitly contrast with similar tools like getProjectInfo or contextBundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for a quick, cached overview to avoid recomputation. It does not explicitly state when to use or not use this tool versus alternatives, nor does it mention prerequisites or context where it is most appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getProjectInfoA
Read-only

Project overview: name/version, languages, pkg manager, scripts, deps, config, git. Call at session start.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and description aligns with read-only intent. Description adds context about content (deps, config, etc.) but no extra behavioral details beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each earning its place: first defines purpose, second gives usage. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and zero parameters, the description is sufficient. It could detail the return structure slightly more, but it's adequate for a simple overview tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, baseline 4. Description adds value by specifying the exact scope of the overview, surpassing the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it provides a project overview with specific items (name, version, etc.). It distinguishes from similar sibling tools like getProjectContext by being an initial snapshot, but doesn't explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'Call at session start,' which is explicit usage guidance, but lacks when-not-to-use or alternatives. Implied usage is clear, but no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPRTemplateA
Read-only

PR description from commits and diff stats vs base branch. Returns markdown → pass to githubCreatePR.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoBase branch (default: auto-detect main/master)
styleNobullet (default), prose (paragraph), or conventional (grouped by commit type)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes the tool as generating markdown from commits and diff stats, consistent with readOnlyHint annotation. Adds context about data source (commits and diff stats) and output format (markdown). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no unnecessary words. Front-loaded with purpose and includes key workflow hint. Excellent structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two optional parameters and no output schema, the description fully explains behavior, input, and output. Includes integration hint for downstream tool, making it complete for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear descriptions for both parameters. Description does not add additional meaning beyond schema, but provides context about output usage. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool generates PR descriptions from commits and diff stats vs base branch. Differentiates from sibling fetchGithubPR by specifying it produces new content (markdown) to be passed to another tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to pass output to githubCreatePR, indicating usage in PR creation workflow. However, does not provide explicit when-not-to-use or mention alternative tools like fetchGithubPR for existing PRs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSecurityAdvisoriesA
Read-only

Security audit: CVEs with severity and remediation. Auto-detects npm/yarn/pnpm/cargo/pip-audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageManagerNoPackage manager to audit. Default: auto-detect
severityNoMinimum severity to include in results. Default: all
onlyFixableNoOnly return advisories that have a known fix available

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description adds context about auto-detecting package managers and providing remediation. This enhances transparency beyond annotations, though it does not detail behavior on auto-detection failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the tool's purpose, no redundant information. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters, no output schema, and simple boolean/enum types, the description covers the key aspects. However, it lacks a hint about the output structure (e.g., returns a list of advisories with CVE IDs), which would be helpful for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description mentions 'severity' and 'remediation' but adds minimal new meaning beyond the schema. Baseline 3 is appropriate since schema already documents parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves security advisories (CVEs) with severity and remediation, and auto-detects multiple package managers. This distinguishes it from siblings like 'auditDependencies' by specifying the output (CVEs) and the auto-detection feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use for security audits, but does not provide explicit guidance on when to use this tool versus the closely related sibling 'auditDependencies'. No when-not-to-use or alternative hints are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSemanticTokensA
Read-only

Semantic token types and modifiers for a file from the language server.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineNoFirst line to include (1-based, optional)
endLineNoLast line to include (1-based, inclusive, optional)
maxTokensNoMax tokens to return (default: 2000, max: 5000)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint: true, so the agent knows it's a read operation. The description adds that the data comes from 'the language server', which is additional context. However, it does not disclose any potential delays or prerequisites (e.g., file must be open).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 13 words, front-loaded with the purpose. It contains no redundant information and is highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain the return format or structure of semantic tokens. It also lacks information about error cases or required file state (e.g., file must be saved/open). Given the tool's simplicity, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so all parameters are explained in the schema. The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns semantic token types and modifiers for a file from the language server. It uses a specific verb ('get') and resource ('semantic tokens for a file'), distinguishing it from sibling tools like getHover or getDocumentSymbols.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it is for obtaining semantic token information, but does not mention when not to use it or suggest other tools like getHover or getDocumentSymbols for different needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSessionUsageA
Read-only

Token usage estimate for this session: schema size, call counts, largest tool results.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds value by specifying exactly what is estimated (schema size, call counts, largest tool results), providing context beyond the annotation. There is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 12 words that is front-loaded with the core purpose. Every word earns its place; no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for a simple read-only tool. It covers the return value components. However, it could be slightly more explicit about whether the estimate is cumulative or per-request, though 'for this session' implies cumulative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty with 0 parameters, so schema coverage is 100% trivially. The description adds meaning by explaining what the output contains (estimates of various metrics), which is valuable beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a 'Token usage estimate for this session' and lists the components (schema size, call counts, largest tool results). This distinguishes it from other get* siblings like getActivityLog or getAnalyticsReport.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving session token usage but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like getActivityLog for logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSymbolHistoryA
Read-only

Symbol evolution: LSP definition + git blame on definition site + file commit history. Answers 'why does this exist?' and 'who changed it last?'

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path
lineYesLine number of symbol (1-based)
columnYesColumn number of symbol (1-based)
maxCommitsNoMax commits to return from file history (default: 10)
blameLinesNoLines of blame context around definition site (default: 5)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the three data sources (LSP definition, blame, commit history) and the questions it answers. Annotations already declare readOnlyHint=true, and the description adds valuable behavioral context beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence plus a short clarifying sentence. It is front-loaded and every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should elaborate on the structure of the returned data. It mentions answering questions but omits format details. Parameters like maxCommits and blameLines are not linked to output behavior. Adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so the schema already documents parameters. The description adds no extra parameter meaning, placing this at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description precisely states the tool's purpose: combining LSP definition, git blame, and file commit history to answer 'why does this exist?' and 'who changed it last?'. This clearly distinguishes it from sibling tools like gitBlame or getGitLog, which are more granular.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for historical symbol investigation but does not explicitly state when to use this composite tool versus individual siblings. No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTerminalOutputA
Read-only

Get recent output from a VS Code integrated terminal. Identify by name or index (from listTerminals). Returns last N lines. On headless VPS/SSH, use runInTerminal instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTerminal name to retrieve output from
indexNoTerminal index (0-based) from listTerminals
linesNoRecent lines to retrieve (default 100, max 5000)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. Description adds line limit context (default 100, max 5000) and confirms read behavior. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences conveying purpose, method, and alternative. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers identification, line limits, and alternative in low-complexity tool. Lacks behavior on invalid input, but sufficient given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions. Description adds context linking name/index to listTerminals, adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get', resource 'recent output from a VS Code integrated terminal', and identification method (name or index from listTerminals). Differentiates from sibling runInTerminal by specifying when not to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states alternative tool (runInTerminal) for headless/SSH scenarios, and implies prerequisite of listTerminals to get name/index.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getToolCapabilitiesA
Read-only

Available CLI tools, ext connection state, and which features are functional vs stub-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true. The description adds value by detailing the specific content returned (CLI tools, extension connection state, functional vs stub features). This disclosure helps the agent understand what to expect beyond the annotation's safety hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence of 15 words. It front-loads the key purpose ('Available CLI tools, ext connection state, and which features are functional vs stub-only') with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of parameters and output schema, the description fully covers the tool's purpose and return value. It tells the agent exactly what to expect: a listing of CLI tools, connection state, and feature statuses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the description has no need to add parameter details. Schema coverage is effectively 100%, and the description provides relevant context about the output without needing to explain param behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns 'Available CLI tools, ext connection state, and which features are functional vs stub-only.' This clearly identifies the specific verb (get) and resource (tool capabilities), distinguishing it from sibling tools that focus on individual features or specific data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it's for assessing overall capabilities but does not explicitly state when to use it versus alternatives like searchTools or other get* tools. No exclusion criteria or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTypeHierarchyA
Read-only

Type hierarchy: supertypes (parents) and subtypes (impls/subclasses). Requires LSP support.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)
directionNoWhich direction to traverse (default: both)
maxResultsNoMax results per direction (default: 20)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds the requirement for LSP support, which is useful for the agent. However, it does not describe error behavior (e.g., no LSP) or result structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the core purpose and then adding a critical prerequisite. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters and no output schema, the description is minimal. It lacks details about return format, behavior when direction is 'both', or how maxResults affects output, leaving gaps for more complex use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage of parameter descriptions, so the description adds no additional meaning beyond what the schema provides (baseline 3).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a type hierarchy (supertypes and subtypes), distinguishing it from sibling tools like getCallHierarchy or findImplementations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for exploring type relationships and notes a prerequisite (LSP support), but does not explicitly contrast with alternatives like findImplementations or give when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTypeSignatureB
Read-only

Type signature for symbol at position via LSP hover. Returns clean signature from hover markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
lineYes
columnYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions it uses LSP hover and processes hover markdown, adding behavioral context beyond the readOnlyHint annotation. However, it does not discuss what happens if the symbol is not found or the format of the returned signature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with minimal waste. Key information is front-loaded ('Type signature for symbol...').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (3 params, no output schema), the description is adequate but lacks details about return format or error conditions. It could be more complete, especially since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should explain the parameters. It mentions 'position' but does not elaborate on file, line, or column, leaving the agent to infer their meaning from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the type signature of a symbol at a given position using LSP hover and returns a clean signature from the hover markdown. It is specific and distinguishes from siblings like getHover or signatureHelp.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 getHover or signatureHelp. The description does not specify when to prefer getTypeSignature over sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getWorkspaceFoldersA
Read-only

Get all workspace folders currently open in the IDE

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint: true already indicates a read operation. The description adds minimal value beyond confirming the read nature (e.g., 'Get all... open in the IDE'). It does not disclose any additional behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and annotations cover the read-only behavior, the description is sufficient. It tells the agent what the tool returns (workspace folders). It could be slightly more specific about the return format, but it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add meaning beyond the schema. Schema coverage is 100%, so baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get' and the resource 'all workspace folders currently open in the IDE', making it specific. However, it does not explicitly differentiate this tool from siblings like setActiveWorkspaceFolder or getWorkspaceSettings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., setActiveWorkspaceFolder, getWorkspaceSettings). The description only states what it does without any context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getWorkspaceSettingsA
Read-only

Read VS Code workspace settings. Filter by section (e.g. 'editor', 'typescript'). Returns source scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoSettings section to read (e.g. 'editor', 'typescript'). Omit for all.
targetNoWhich scope to read (default: workspace)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation, adds detail about filtering and return value, and discloses no side effects or destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the action, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions 'Returns source scope' but does not explain what that means or the format of the return value. Given no output schema, this gap reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds only an example for section and a vague note about return value, providing minimal added semantics beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads VS Code workspace settings with filtering capability, distinguishing it from write tools like setWorkspaceSetting and other read tools like getWorkspaceFolders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading settings but does not explicitly contrast with alternatives or provide when-not-to-use guidance. The readOnlyHint annotation helps, but explicit exclusions are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitAddA

Stage files for commit. Omit to stage all tracked (git add -u). addUntracked:true for new files.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoPaths to stage (absolute or workspace-relative). Omit to stage all modified tracked files.
addUntrackedNoAlso stage new untracked files. Default: false.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-destructive. Description adds behavioral detail: when files omitted, stages all tracked (git add -u); addUntracked includes new files. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main use cases and parameter behaviors. No output schema, but effect is clear. Lacks mention of return value (e.g., success message), but acceptable for simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters fully. Description enhances meaning by explaining the effect of omitting 'files' and the role of 'addUntracked', going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool stages files for commit, distinguishes between staging all tracked files vs. including untracked ones. This separates it from sibling tools like gitCommit or gitCheckout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage guidance on how to use parameters (omit files for all tracked, use addUntracked for new files). No explicit comparison to alternatives, but no direct staging siblings exist, so adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitBlameA
Read-only

Per-line last modifier and commit. Trace why code was written or find the introducing commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path to the file
startLineNoFirst line number to blame (1-based, inclusive). Omit for start of file.
endLineNoLast line number to blame (1-based, inclusive). Omit for end of file.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context. It does not disclose whether the file must exist, whether it works on uncommitted changes, or any performance implications. The description primarily focuses on purpose rather than behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences contain all necessary information without waste. Every word contributes to purpose or scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema (line ranges) and read-only annotation, the description provides sufficient context for an agent to understand the tool's output (per-line modifier and commit). No output schema exists, but the purpose is clear enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for all parameters (filePath, startLine, endLine). The description adds no additional meaning beyond the schema; the phrase 'per-line' aligns with line parameters but doesn't enhance their semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides 'Per-line last modifier and commit' and specifies the use case: 'Trace why code was written or find the introducing commit.' This distinctively identifies the tool's purpose and separates it from sibling tools like gitLog or gitDiff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (tracing code origin) but does not explicitly state when to use this tool versus alternatives like gitLog, gitDiff, or getCommitDetails. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitCheckoutA
Destructive

Switch to a branch, or create and switch to a new branch. Use create: true to create from HEAD or a specified base.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchYesBranch name to switch to or create
createNoCreate branch if it doesn't exist. Default: false.
baseNoBase branch or commit to create from (only when create: true). Defaults to HEAD.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint: true. The description adds no behavioral details beyond what the annotation provides, such as effects on uncommitted changes or workspace state. It does not contradict annotations, but the burden of disclosure is minimally addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description comprises two concise sentences with no extraneous information. It front-loads the core purpose and immediately adds parameter guidance, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a simple tool, the description covers the primary use case. It mentions branch switching and creation with optional base. However, it omits details about failure scenarios (e.g., dirty working tree) and return behavior, which would be helpful but are not critical for a basic checkout operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by explaining the interplay between 'create' and 'base' ('use create: true to create from HEAD or a specified base'), which is not fully captured in the schema's individual descriptions. This clarifies the conditional usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('switch to' or 'create and switch to') and the resource ('a branch'). It distinguishes from sibling tools by focusing on branch switching/creation, while siblings like gitAdd or gitCommit handle different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage guidance for the 'create' parameter ('use create: true to create from HEAD or a specified base'), but lacks explicit when-to-use or when-not-to-use instructions relative to sibling tools like gitListBranches or gitStash. Usage is implied but not explicitly contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitCommitA
Destructive

Commit staged changes. Pass files to stage-and-commit in one step. Returns hash, branch, files.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesCommit message
filesNoFiles to stage before committing. Omit to commit already-staged changes.
addAllNoStage all tracked changes before committing (git add -u). Default: false.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description adds value by stating it returns hash, branch, files. It does not contradict annotations and provides reasonable behavioral context for a commit tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load the purpose and include all essential information. No redundant or irrelevant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple commit tool with no output schema and well-documented parameters, the description covers purpose, usage modes, and return values. Could mention error conditions but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear parameter descriptions. The description adds little beyond schema, merely reinforcing the optional files usage. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Commit staged changes') and resource, with explicit alternative usage ('Pass files to stage-and-commit in one step'). It distinguishes itself from siblings by focusing on committing, not staging alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on using the files parameter for combined staging and committing versus omitting it for already-staged changes. Lacks explicit instructions on when to use alternative tools like gitAdd, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitFetchA
Read-only

Fetch updates from a remote without merging. Updates remote-tracking branches so gitListBranches and gitCheckout see the latest state. Use gitPull to fetch and merge in one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteNoRemote to fetch from (default: origin)
allNoFetch from all configured remotes. Default: false.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the readOnlyHint annotation by explaining that the tool updates remote-tracking branches without merging. This behavioral detail helps the agent understand the tool's effects. The description does not contradict the annotation; readOnlyHint is typically interpreted as a safety indicator rather than a strict literal read-only operation, and updating remote references is considered non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise—two sentences that front-load the core purpose and then provide context and an alternative. Every sentence adds value; there is no fluff. This is an excellent example of efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional parameters, no output schema), the description covers the essential points: what it does, its effect on remote-tracking branches, and when to use an alternative. It does not describe the return value or potential errors, but for a fetch operation this is acceptable. The description is nearly complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning for the parameters beyond what the schema already provides. Both parameters ('remote' and 'all') are described in the schema, and the description mentions no extra details about their usage or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Fetch updates from a remote without merging.' It also distinguishes itself from gitPull by noting that gitFetch does not merge, and explains that it updates remote-tracking branches so that gitListBranches and gitCheckout see the latest state. This effectively identifies the tool's verb and resource and differentiates it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions the alternative 'Use gitPull to fetch and merge in one step,' providing clear guidance on when to use gitPull instead. However, it does not elaborate on specific scenarios for using gitFetch versus gitPull, such as preferring gitFetch when one wants to review changes before merging. This slight gap prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitListBranchesA
Read-only

List git branches. Returns local branches with the current branch marked. Pass includeRemote: true for remote-tracking branches.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeRemoteNoInclude remote-tracking branches (e.g. origin/main). Default: false.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, indicating safe read operation. The description's 'list' and 'returns' align with this. It adds minor behavioral context (current branch marking) but no additional side-effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three short sentences, front-loaded with the core purpose, no redundant words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain the return format (e.g., array of strings or objects). While the tool is simple, an agent would benefit from knowing what the output looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the description adds little beyond what the schema already provides for the parameter. The mention of the parameter is redundant, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List git branches' with a specific verb and resource. It adds precision by noting the current branch is marked, distinguishing it from other git tools like gitLog or gitStatus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (listing branches) but does not explicitly mention when not to use it or alternative tools. The parameter hint is helpful but not a full usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitPullA
Destructive

Pull changes from a remote into the current branch. Defaults to origin with merge. Use rebase: true for linear history.

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteNoRemote name (default: origin)
branchNoRemote branch to pull from (default: tracking branch for current branch)
rebaseNoRebase local commits on top of remote changes instead of merging. Default: false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint: true, and the description adds that rebase provides linear history, which implies potential rewriting. However, it does not elaborate on risks like merge conflicts or loss of local commits. With annotations covering destructiveness, the additional context is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded purpose. No redundant or extraneous information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details on what the tool returns after a pull (e.g., merge status, conflict information) and does not mention potential side effects beyond the destructive hint. Given no output schema, it could provide more context on outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 3 parameters with descriptions (100% coverage). The description adds context by stating defaults ('Defaults to origin with merge'), which enhances understanding of parameter behavior beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Pull changes from a remote into the current branch,' specifying the verb and resources. It distinguishes from siblings like gitFetch and gitPush by indicating merge vs rebase, and provides defaults (origin with merge), 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: 'Defaults to origin with merge. Use rebase: true for linear history.' It tells when to use the default and when to use rebase, but does not explicitly exclude alternative tools like gitFetch or explain when to avoid pulling entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitPushA
Destructive

Push the current branch to a remote. Use setUpstream: true on the first push. Force push uses --force-with-lease. Blocked on main/master.

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteNoRemote name (default: origin)
branchNoBranch to push (default: current branch)
setUpstreamNoSet the upstream tracking branch (-u). Use on first push of a new branch. Default: false.
forceNoForce push with --force-with-lease. Blocked on main/master. Default: false.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, but description adds key behavioral traits: force push uses --force-with-lease (safer) and push is blocked on main/master. This goes beyond annotations to convey important constraints and safety behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: first states purpose, second gives setUpstream usage, third explains force push. No unnecessary words, front-loaded with core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all critical aspects: purpose, parameter usage, constraints (blocked branches), and safety (force-with-lease). Lacks mention of error handling or output, but given no output schema and tool simplicity, it's nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, yet description adds value by specifying concrete usage for setUpstream ('Use on first push of a new branch') and force ('Blocked on main/master'). Enhances understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Push the current branch to a remote' with specific verb and resource. It distinguishes from sibling tools like gitPull and gitCommit by focusing on push operation and providing specific behaviors (setUpstream, force push).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use setUpstream ('Use setUpstream: true on the first push') and when force push is blocked ('Blocked on main/master'). Does not directly name alternative tools but context (siblings) implies 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.

gitStashA
Destructive

Stash current changes to get a clean working tree. Required before switching branches with uncommitted changes. Use gitStashPop to restore. Pass includeUntracked: true to also stash new files.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoOptional description for the stash entry
includeUntrackedNoAlso stash untracked (new) files. Default: false.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint: true, and description mentions 'get a clean working tree' implying changes are stashed away. Does not contradict annotations. Could elaborate on the destructive nature, but mentions restoration via pop.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all essential, front-loaded with purpose. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple stash tool with no output schema, the description covers purpose, usage context, sibling differentiation, and parameter guidance. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers both parameters with descriptions (100% coverage). Description adds minimal extra value, e.g., 'to also stash new files' for includeUntracked. Baseline 3 due to full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Stash current changes to get a clean working tree', specifying the verb (stash) and resource (current changes). It distinguishes from sibling tools by mentioning gitStashPop for restoration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Required before switching branches with uncommitted changes.' Provides alternative: 'Use gitStashPop to restore.' Also advises on parameter usage for untracked files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitStashListA
Read-only

List all stash entries in the repository. Returns each entry's index, branch it was stashed from, message, and age. Use before gitStashPop to identify the right entry to restore.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already declares readOnlyHint=true, so the description's behavioral disclosure is limited. However, it adds value by specifying the exact information returned, which is helpful beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the main purpose, followed by a usage hint. Every sentence adds value without unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, read-only), the description is complete. It covers what the tool does, what it returns, and when to use it, leaving no important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters are defined in the input schema, so the description does not need to explain parameters. The baseline score of 4 is appropriate as the description does not add parameter-related information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all stash entries and specifies the returned fields (index, branch, message, age). It effectively differentiates from sibling tools like gitStash and gitStashPop by focusing on listing vs. creating or popping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using this tool before gitStashPop to identify the correct entry to restore, providing a clear use case and context for when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitStashPopA
Destructive

Restore stashed changes to the working tree. Pops the most recent stash by default, or a specific entry by index (from gitStashList).

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoStash entry index to pop (0 = most recent). Default: 0.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations set destructiveHint=true, and description confirms destructive action by using 'pops'. It adds that changes are restored to working tree. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no filler. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 annotations, the description covers operation, default behavior, and index source. No missing essential details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter description already documenting index and default. Description adds value by linking index to gitStashList, providing context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Restore stashed changes' and resource 'working tree'. It clearly distinguishes from siblings like gitStash (creates stash) and gitStashList (lists stashes) by mentioning index from gitStashList.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states default behavior and how to specify an index from gitStashList, providing clear context. It implies when to use (to restore and remove a stash), but lacks explicit exclusions or alternative tools (e.g., gitStashApply if existed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

goToDeclarationA
Read-only

Go to the declaration of a symbol (header file in C/C++, .d.ts entry in TypeScript). Unlike goToDefinition, navigates to the 'declare' statement rather than the implementation.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds language-specific context and clarifies the behavioral difference from goToDefinition. No hidden side effects are mentioned, and there is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the core purpose and then provides supplementary distinction. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity as a navigation action, the description fully covers purpose, usage context, and behavioral nuance. No output schema exists, but the return value (cursor movement) is obvious from context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for all three parameters (filePath, line, column). The description does not add any additional semantic meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool goes to the declaration of a symbol with specific examples (C/C++ header, TypeScript .d.ts). It explicitly distinguishes itself from the sibling tool goToDefinition by contrasting declaration vs implementation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly tells when to use this tool (for declarations) and contrasts with goToDefinition, providing clear guidance on alternative. The when-not-to-use is implied but effectively communicated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

goToDefinitionB
Read-only

Go to the definition of a symbol at a given position using VS Code LSP.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'readOnlyHint' annotation already indicates this is a read-only operation. The description adds 'using VS Code LSP' but does not elaborate on behavior (e.g., what happens if the symbol is not found, whether it opens a new tab). This is adequate given the annotation, but barely adds value beyond it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundancy. Every word contributes to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple navigation tool with full schema coverage and annotations, the description is sufficient. It communicates the essential purpose and mechanism. It does not describe the return value (e.g., navigating in the editor), but that is implied for a 'go to' action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with clear descriptions for all three parameters. The description does not add any extra semantic context beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('go to the definition of a symbol at a given position') and the mechanism ('using VS Code LSP'). However, it does not distinguish itself from closely related sibling tools like 'goToDeclaration' and 'goToTypeDefinition', which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 over alternatives such as 'goToDeclaration' or 'goToTypeDefinition'. There is no mention of context, prerequisites, or 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.

goToTypeDefinitionA
Read-only

Go to the type definition of a symbol. Unlike goToDefinition (navigates to declaration), this navigates to where the type itself is defined.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and the description does not contradict this. The description adds that it navigates to where the type is defined, but does not disclose behavioral traits like what happens if the symbol has no type definition or if it modifies state (though read-only is clear). With annotations present, the description provides marginal extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core purpose and immediately provides differentiation. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (navigation, no output schema) and the presence of sibling differentiators, the description is largely complete. It lacks error handling or return details, but for a navigation tool this is acceptable. The mention of siblings adds enough context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions (filePath, line, column), achieving 100% schema coverage. The description adds no additional parameter information, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool navigates to the type definition of a symbol, using the specific verb 'go to' and specifying the resource 'type definition'. It also distinguishes itself from goToDefinition (declaration) and goToDeclaration, making its purpose unambiguous among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with goToDefinition and mentions the alternative goToDeclaration, guiding when to use this tool (for type definition vs declaration). However, it does not provide explicit when-not-to-use or prerequisites, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jumpToFirstErrorA
Idempotent

Jump to first workspace error (getDiagnostics→openFile→decoration). Returns {found:false} if none.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the full behavioral sequence (get diagnostics, open file, add decoration) and the return condition. While annotations already mark it idempotent, the description adds detail on the exact steps. It does not explicitly state that decorations are modified, but the mention of 'decoration' implies the side effect. Good transparency overall.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences front-loading the action and then the return. Every word adds value, with no redundancy. Ideal structure for a 0-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of parameters and output schema, the description sufficiently covers all needed information: what the tool does, how it works, and what happens if no error exists. Annotations add further clarity on idempotency. The tool's simplicity is matched by a complete description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the input schema is fully covered (100%). The description adds value by explaining the composite behavior, which is more than merely repeating schema info. Baseline for 0 parameters is 4, and the description meets that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Jump to first workspace error' and explains the sequence of underlying calls (getDiagnostics→openFile→decoration). It also specifies the return value when no errors exist, providing a precise purpose distinct from sibling tools like getDiagnostics or openFile alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through its action statement but lacks explicit guidance on when to use this composite tool versus individually calling getDiagnostics or openFile. No when-not or alternatives are mentioned, so the agent must infer context from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

launchQuickTaskA

Launch context-aware Claude task from named preset. Same dispatch path as sidebar + CLI. 5s cooldown per preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetIdYesPreset id. Must be one of the enum values.
sourceNoCaller source for cooldown telemetry. Default: mcp.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the 5s cooldown per preset beyond the annotations. Annotations already indicate non-destructive and open-world behavior. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three short sentences, front-loading the purpose and adding key behavioral info without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of launching a task, the description lacks details on return values, error handling, or task lifecycle. The schema covers parameters well, but the tool's overall behavior is only partially described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with enums and descriptions. The description adds no further parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it launches a Claude task from a named preset and mentions it uses the same dispatch path as sidebar and CLI, which distinguishes it from other task tools like runClaudeTask or resumeClaudeTask, though not explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The cooldown constraint is mentioned, but there is no comparison with sibling tools like runClaudeTask to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listClaudeTasksA
Read-only

List your Claude tasks, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status. Omit for all tasks.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's 'List' is consistent. Description adds optional filtering but no further behavioral details (e.g., pagination, limits). Bar is lower due to annotations, but additional context would be welcome.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Information is front-loaded and clearly communicated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and annotations present, the description covers the essential purpose and filter capability. Could mention return format or scope ('your tasks' is implicit), but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the single 'status' parameter. Tool description's 'optionally filtered by status' adds no new meaning beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List your Claude tasks' as a specific verb-resource pair. Distinguishes from sibling list tools like listPlans and listVSCodeTasks by specifying 'Claude tasks'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 over alternatives. The description implies usage for listing Claude tasks, but does not mention when not to use or suggest other tools for different task types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listPlansA
Read-only

List all plan files in the workspace root. Returns filenames with titles from frontmatter.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so no contradiction. The description adds that it returns filenames with titles from frontmatter, but does not disclose further behavioral traits like pagination or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. All information is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with no parameters and a read-only annotation, the description is complete: it states the purpose and return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters and 100% coverage, so the description cannot add meaning beyond what is already known. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'plan files in the workspace root', and the output 'filenames with titles from frontmatter'. It distinguishes itself from sibling tools like createPlan, updatePlan, deletePlan, and getPlan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing all plan files, but lacks explicit guidance on when to use this tool versus alternatives like getPlan or createPlan. No when-not or criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listTerminalsA
Read-only

List active VS Code terminals: names, indices, output capture availability.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the readOnlyHint annotation by specifying that the tool returns names, indices, and output capture availability. It does not contradict annotations and provides useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no extraneous words, making it easy to read and process.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with no parameters and no output schema, the description adequately communicates the purpose and the data returned. It is complete enough for an agent to understand how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add parameter information. The description is sufficient given the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'active VS Code terminals', and specifies the returned information (names, indices, output capture availability), making it easy to understand the tool's purpose and distinguishing it from sibling tools like getTerminalOutput or sendTerminalCommand.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use or not use this tool versus alternatives. While the context of sibling tools implies it is for getting an overview of terminals, no direct guidance is provided, making it adequate but not exceptional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listVSCodeCommandsA
Read-only

List all registered VS Code commands (up to 2000). Filter by substring to find IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional substring filter on command IDs

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds useful context beyond annotations, such as the 2000-item limit and filtering capability. It does not contradict annotations nor omit critical behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extraneous words. Every word adds value, and the structure is optimal for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and the presence of an output schema (absent), the description is adequate but lacks explicit mention of the return format (e.g., list of command IDs). This gap could confuse an agent about what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the 'filter' parameter is already described in the schema as 'Optional substring filter on command IDs'). The description ('Filter by substring to find IDs') adds no new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (list), resource (registered VS Code commands), includes a constraint (up to 2000), and mentions filtering. It distinguishes from sibling tools like executeVSCodeCommand and listVSCodeTasks by focusing on command ID discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (filter to find IDs) but does not explicitly address when to use this vs. alternatives like listVSCodeTasks or executeVSCodeCommand. No exclusions or contextual guidance are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listVSCodeTasksA
Read-only

List VS Code tasks from tasks.json and extensions. Returns name, type, group, source.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter tasks by type (e.g. 'shell', 'npm')

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint: true. Description adds return fields but does not disclose other behaviors like scope (all tasks? current workspace only?) or potential performance issues.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, efficient sentence that front-loads the action and lists return fields. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with 1 optional parameter, the description is adequate. However, it could clarify scope (e.g., current workspace) or task sources to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with description for 'type'. Tool description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'List', resource 'VS Code tasks', and specifies return fields (name, type, group, source). Distinct from sibling tools like runVSCodeTask.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives like runVSCodeTask or listVSCodeCommands. 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.

openDiffA
Destructive

Open a diff view comparing old file content with new file content. Creates temporary files on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
oldFilePathYesPath to the old file
newFilePathYesPath to the new file
newFileContentsYesContents for the new file version
tabNameYesName for the diff tab

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses the side effect of creating temporary files on disk, which goes beyond the destructiveHint annotation. It provides clear behavioral context without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that convey the essential purpose and side effect without extraneous information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is mostly complete for a simple diff tool, but it does not explain how temporary files are managed (e.g., cleanup) or what the diff view looks like. Given the lack of output schema, these details would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have descriptions in the input schema (100% coverage), so the description adds no additional meaning. The baseline of 3 is appropriate given the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a diff view comparing old and new file content, with the specific verb 'Open' and resource 'diff view'. It also mentions creating temporary files, distinguishing it from sibling diff tools like getDiffBetweenRefs or getDiffFromHandoff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing file contents but does not provide explicit guidance on when to use this tool over alternatives like getDiffBetweenRefs or getDiffFromHandoff. No 'when not to use' or alternative suggestions are included.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openFileA
Idempotent

Open a file in the editor and optionally select a range of text

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path to the file to open
startLineNoLine to scroll to (1-based). Takes precedence over startText.
startTextNoText pattern to find and scroll to. Ignored if startLine is set.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-destructive and idempotent behavior. The description adds value by specifying the optional range selection feature, but does not disclose details like behavior when file is already open or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words. It efficiently conveys the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple open file tool without output schema, the description is mostly complete. However, it could mention error scenarios or behavior when the file path is invalid, but it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds 'optionally select a range of text' but does not provide additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a file in the editor and optionally selects a range, distinguishing it from sibling tools like getFileTree or getBufferContent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 such as getBufferContent for reading or openDiff for comparing files. 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.

openInBrowserA

Write HTML to temp file and open in default browser. For visual reports and dashboards.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesFull self-contained HTML document content
filenameNoBasename only, must end in .html. Default: report-<timestamp>.html

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses writing to a temp file and opening the browser, which aligns with annotations (readOnlyHint=false, openWorldHint=true). It adds useful detail beyond annotations, though it could mention environment dependencies (e.g., default browser availability).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, no unnecessary words. Every sentence provides value. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description covers purpose, action, and use case. It could mention that it creates a temporary file and potential limitations (e.g., headless environments), but overall it is complete enough for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema's parameter descriptions. The schema already explains 'html' and 'filename' sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Write HTML to temp file and open in default browser') and the intended use case ('For visual reports and dashboards'). It distinguishes itself from sibling tools, as none others open browser content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use ('For visual reports and dashboards'), but does not explicitly state when not to use or mention alternatives. Given the absence of closely related siblings, this is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

organizeImportsA
DestructiveIdempotent

Organize/sort imports in workspace file. Uses VS Code ext when connected; falls back to Biome or Prettier.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesFile to organize imports in (relative or absolute path)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint and idempotentHint. The description adds value by explaining the fallback mechanism (VS Code ext when connected, else Biome/Prettier), which goes beyond annotation information. However, it does not detail what exactly happens (e.g., does it remove unused imports? only sort?).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no unnecessary words. The key information (what it does and fallback behavior) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the fallback strategy but lacks details on exactly what 'organize/sort' entails (e.g., sorting order, removal of unused imports). No output schema is provided, so the description should clarify expected results. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for filePath. The description adds no additional parameter semantics beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Organize/sort imports in workspace file', specifying the verb (organize/sort) and resource (imports in workspace file). It distinguishes itself from sibling tools like formatDocument or fixAllLintErrors by focusing specifically on imports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions fallback behavior (VS Code ext vs Biome/Prettier), but does not explicitly state when to use this tool over alternatives like formatAndSave or fixAllLintErrors. The usage context is implied rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parseHttpFileA
Read-only

Parse VS Code REST Client file (.http/.rest). Returns method, URL, headers, body per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the .http or .rest file within the workspace

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description matches annotation readOnlyHint=true. It adds detail on return structure (method, URL, headers, body per request) but does not cover behavior like file size limits or performance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that efficiently conveys purpose and return data; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple input and no output schema, the description is adequate but does not specify output format (array vs object) for multiple requests.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description for filePath is 100% covered, and the tool description does not add additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses VS Code REST Client files and returns request components, using a specific verb and resource. It implicitly distinguishes from sibling like sendHttpRequest by focusing on parsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., sendHttpRequest). It does not mention prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepareRenameA
Read-only

Check if symbol can be renamed. Returns canRename:false with reason if not. Use before renameSymbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYes1-based line number
columnYes1-based column number

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it returns a boolean/reason, consistent with readOnlyHint annotation. Adds context about pre-check behavior without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy, perfectly concise while conveying purpose and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple check tool with full schema coverage and annotations, the description is complete and provides necessary usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so description adds no extra parameter info. Baseline 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks if a symbol can be renamed and returns canRename:false with reason if not, differentiating it from renameSymbol.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use before renameSymbol', providing clear when-to-use guidance. It does not explain when not to use, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

previewCodeActionA
Read-only

Preview edits a code action would make without applying. Use before applyCodeAction.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineYesStart line (1-based)
startColumnYesStart column (1-based)
endLineYesEnd line (1-based)
endColumnYesEnd column (1-based)
actionTitleYesExact action title from getCodeActions output

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description confirms the read-only nature by stating 'without applying,' which aligns with the annotation 'readOnlyHint: true.' However, it adds no extra behavioral details beyond what the annotation already provides (e.g., no mention of what happens if the action is invalid 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence immediately states the core purpose, and the second provides usage guidance. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple preview tool with no output schema, the description covers the essential purpose and usage. It could be more complete by briefly describing what the preview output looks like (e.g., a diff or list of changes), but it is sufficient for an agent to understand how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 6 parameters, so the schema already explains each parameter in detail. The tool description does not add any additional meaning or context about the parameters, so it provides no extra value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Preview edits a code action would make without applying' clearly states the tool's purpose. It specifies the verb 'preview' and the resource 'edits a code action would make,' and distinguishes it from the sibling 'applyCodeAction' by advising to use before applying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use before applyCodeAction,' providing clear context for when to use this tool. It names the sibling tool as the subsequent step, but does not mention when not to use it or alternatives like 'getCodeActions' to list available actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

previewEditA
Read-only

Preview what editText or searchAndReplace would do as a unified diff, without writing to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace-relative or absolute path to the file
operationYesType of edit to preview
startLineNoStart line (1-based, lineRange only)
endLineNoEnd line inclusive (1-based, lineRange only)
newContentNoReplacement content for the line range
searchNoPattern to search for (searchReplace only)
replaceNoReplacement text (searchReplace only)
useRegexNoTreat search as a regex (searchReplace only, default false)
caseSensitiveNoCase-sensitive search (searchReplace only, default true)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool produces a unified diff (behavior) and does not write to disk (safety). This aligns with and adds value beyond the readOnlyHint annotation, explaining the exact output format and confirming no 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core purpose. Every word is informative; no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly states the output format (unified diff), which is sufficient for an agent to understand the return value. All required parameters are covered by the schema, and the description adds essential context about the operation types.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema, as it simply groups parameters under 'editText or searchAndReplace' without elaborating on individual fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: to preview what editText or searchAndReplace would do as a unified diff without writing to disk. This clearly identifies the verb (preview), resource (editText/searchAndReplace operations), and differentiates from the tools that actually perform the edits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage before applying editText or searchAndReplace to see the diff. However, it does not explicitly mention when not to use or compare with other preview-like siblings such as previewCodeAction. The context is clear but lacks explicit guidance on alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

readClipboardA
Read-only

Read system clipboard. Returns up to 100 KB of text.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a useful behavioral constraint (100 KB limit) beyond the annotation's readOnlyHint. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and directly states the action and a key constraint, with no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters, the description is complete. It could mention behavior for non-text clipboard content, but 'text' already implies that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add parameter information. Baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads the system clipboard and returns text, with a size limit. This distinguishes it from its sibling 'writeClipboard'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's purpose is clear from the name and description, but there is no explicit guidance on when to use it versus alternatives. However, the sibling 'writeClipboard' implies the read-write distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refactorAnalyzeA
Read-only

Refactor impact: rename safety, ref/caller counts, risk level (low/medium/high). Use before renameSymbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes output (rename safety, ref/caller counts, risk level) beyond annotations (readOnlyHint=true). No contradictions, but could elaborate on computational cost or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first describes tool output, second gives usage guidance. No filler, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers tool purpose and output for a read-only analysis tool with no output schema. Could mention expected return structure or error handling, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds no extra parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states it analyzes refactor impact for renaming, providing safety, reference/caller counts, and risk level. It also distinguishes itself by recommending use before renameSymbol, which is a sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Directly instructs to use before renameSymbol, giving clear context. Lacks explicit when-not-to-use scenarios, but the directive is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refactorExtractFunctionB
Destructive

Extract lines into a named function. Uses VS Code Extract Function when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesFile path (relative to workspace)
startLineYesStart line (1-indexed)
endLineYesEnd line (1-indexed)
functionNameYesName for the extracted function

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions using 'VS Code Extract Function when available', which hints at integration behavior. However, it does not elaborate on side effects like file modification, error conditions, or undo capability. The annotation 'destructiveHint: true' already flags mutability, so the description adds limited value beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, front-loaded sentences with no redundancy. Every word contributes to understanding the tool's purpose and key behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool (destructiveHint: true) with four required parameters and no output schema, the description lacks crucial context such as expected behavior on failure, whether the file is saved automatically, or any validation conditions. The brevity leaves the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for all four parameters (file, startLine, endLine, functionName). The description adds no additional parameter information or usage examples, so it meets the baseline for schema-rich tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Extract' and the resource 'lines into a named function', making the tool's purpose unambiguous. It distinguishes itself from sibling refactoring tools like 'refactorAnalyze' and 'refactorPreview' by specifying the exact action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'refactorPreview' or manual editing. The description does not mention prerequisites, conditions, or when not to use it, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refactorPreviewA

Preview refactoring edits across files without applying. Use getCodeActions first.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
startLineYesStart line (1-based)
startColumnYesStart column (1-based)
endLineYesEnd line (1-based)
endColumnYesEnd column (1-based)
actionTitleYesExact action title from getCodeActions output

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It correctly communicates that the tool does not apply edits (non-destructive). However, it does not describe the output format (e.g., diff, list of changes) or any side effects, leaving the agent with partial understanding of 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no wasted words, and efficiently conveys the core purpose and a critical prerequisite. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 6 parameters and no output schema, the description does not explain what the preview output looks like (e.g., inline diff, list of file changes) or provide example usage. For a multi-file refactoring preview tool, this leaves the agent with incomplete context to anticipate results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with clear descriptions (filePath, line/col ranges, actionTitle). The tool description adds no extra parameter-level detail beyond the schema, which is acceptable given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Preview refactoring edits across files without applying', providing a specific verb (preview) and resource (refactoring edits). It distinguishes itself from siblings like applyCodeAction (which applies) and getCodeActions (which retrieves actions) by emphasizing the non-applying aspect and the prerequisite step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to 'Use getCodeActions first', establishing a clear prerequisite for the tool's workflow. It implies the tool is for previewing before applying, though it does not explicitly state when not to use it or provide alternatives beyond the implied sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renameFileA
Destructive

Rename or move workspace file/directory. Uses VS Code when connected, native fs fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
oldPathYesCurrent absolute or workspace-relative path
newPathYesNew absolute or workspace-relative path
overwriteNoOverwrite if target already exists (default: false)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the destructiveHint annotation by explaining the dual-mode operation (VS Code vs native fs). This aids the agent in understanding potential behavior differences, though more specifics about overwrite consequences could be included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no unnecessary words. Front-loaded with core action, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (rename/move with overwrite option and connection-dependent behavior), the description is adequate but could mention that moves across directories are supported. Output schema is absent but not critical here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema parameter coverage is 100% with descriptions. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it renames or moves a workspace file/directory, using a specific verb and resource. It distinguishes from sibling tools like createFile and deleteFile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context about using VS Code when connected and native fs fallback, guiding usage based on connection status. However, it lacks explicit alternatives or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renameSymbolA
Destructive

Rename symbol across all files via LSP. Returns affected files and edit counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)
newNameYesNew name for the symbol

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, meaning the tool modifies files. The description adds that it returns affected files and edit counts, providing transparency about the output. However, it does not disclose potential failure modes (e.g., LSP not supporting rename) or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's action and output. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool modifies files and has no output schema, the description is somewhat terse. It mentions the return value but lacks details on prerequisites, LSP dependencies, or safety warnings. Useful but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a description. The tool description adds no additional meaning beyond the schema, as the parameters (filePath, line, column, newName) are self-explanatory. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renames a symbol across all files via LSP, and specifies the output as affected files and edit counts. This differentiates it from sibling tools like renameFile, which renames a file, not a symbol.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for renaming symbols across files via LSP, but does not explicitly state when to use this tool versus alternatives like find-and-replace or other refactoring tools. No when-not or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replaceBlockA
Destructive

Replace exact text block in a workspace file by content match, no line numbers. Fails clearly if not found or ambiguous.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute file path
oldContentYesThe exact text to find and replace (must match precisely, including whitespace)
newContentYesThe text to replace oldContent with
saveNoSave after replacing (default: true)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so description's role is to add context. Description adds failure behavior but does not explicitly confirm file modification or consequences. It adds some value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. Essential details are front-loaded: verb, resource, method, failure case. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with no output schema. Description covers purpose, matching method, and failure behavior. Sufficient for an agent to understand usage and constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 4 parameters with descriptions. Description does not add additional semantic meaning beyond what schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (replace), resource (exact text block in workspace file), method (by content match, not line numbers), and failure behavior (clear fail if not found or ambiguous). It distinguishes from siblings like searchAndReplace or editText.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions 'no line numbers' implying when to use this over line-number-based edits, and that it requires an exact match. It doesn't explicitly mention when not to use or name alternatives, limiting clarity on alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resumeClaudeTaskA

Re-run a failed, cancelled, or completed Claude task with same prompt. Returns new taskId.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to resume (must be in done, error, or cancelled state).
timeoutMsNoOverride the timeout for the resumed task (ms, 5000–600000). Defaults to the original task's timeoutMs.
effortNoOverride the effort level for the resumed task. Defaults to the original task's effort.
fallbackModelNoOverride the fallback model for the resumed task. Defaults to the original task's fallbackModel.
maxBudgetUsdNoOverride the spend cap in USD for the resumed task. Defaults to the original task's maxBudgetUsd.
startupTimeoutMsNoOverride the startup timeout for the resumed task. Defaults to the original task's startupTimeoutMs.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this tool is not read-only and not destructive. The description adds that it re-runs with the same prompt and returns a new taskId, which aligns with the annotations and provides moderate context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: two sentences, front-loaded with the core action, and contains no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and no output schema, the description covers the basic return (new taskId) but lacks detail on response structure, differences between parameters, and full behavioral context. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions in the schema (100% coverage), so the description adds little extra meaning. The phrase 'same prompt' relates to taskId but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool re-runs a Claude task with the same prompt for failed, canceled, or completed states, and returns a new taskId. This distinctly differentiates it from siblings like runClaudeTask (new task) and cancelClaudeTask.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for resuming existing tasks but does not explicitly state when to use this over runClaudeTask or other alternatives. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollbackTransactionA
Read-only

Discard all staged edits for a transaction without writing anything to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYesTransaction ID from beginTransaction

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description contradicts annotations: claims mutation (discard staged edits) but readOnlyHint=true. Annotation Contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, action verb first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Overall adequate for a simple tool, but contradiction undermines completeness. Could mention that it only applies to existing transactions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, description adds no extra meaning beyond the schema for transactionId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it discards staged edits for a transaction, distinguishing it from commitTransaction and beginTransaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage as counterpart to commitTransaction, but lacks explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runClaudeTaskA

Enqueue Claude subprocess task. Returns taskId for getClaudeTaskStatus, or stream=true to block.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesPrompt to send to Claude
contextFilesNoWorkspace-relative or absolute paths to add as context (max 20).
timeoutMsNoTask timeout in ms (5000–600000). Default: 120000.
streamNoBlock + stream via progress. Default: false (return taskId).
modelNoModel override, e.g. "claude-haiku-4-5-20251001".
effortNoThinking budget: low/medium/high/max.
fallbackModelNoFallback model if primary overloaded/unavailable.
maxBudgetUsdNoSpend cap in USD. Omit for no cap.
startupTimeoutMsNoAbort if no output within this ms of spawn.
systemPromptNoSystem prompt override. Max 4096 chars.
useAntNoRun this task with the ant binary instead of claude. Requires ant on PATH or --ant-binary configured.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool enqueues a task (mutation) and returns either a taskId or streams output. Annotations are minimal (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds value by explaining the return behavior, but lacks details on queue behavior, rate limits, or side effects. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and outcome. Every word earns its place. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 11 parameters (complex) and no output schema. The description only mentions return type (taskId or stream) but does not describe error cases, response format, or side effects. For a complex tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description does not add extra parameter meaning beyond what is already in the schema. The naming and schema descriptions are sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Enqueue Claude subprocess task') and the resource. It distinguishes from siblings by mentioning taskId for status queries and stream mode for blocking, which directly contrasts with getClaudeTaskStatus and cancelClaudeTask.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use this tool (enqueue a task) and offers two usage paths (async with taskId vs stream). It implicitly contrasts with siblings, but does not explicitly state when not to use it or alternatives beyond the one sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runCommandA
Destructive

Execute allowlisted command. Returns stdout, stderr, exit code, timing. No shell for security.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesCommand basename (must be in allowlist, no paths)
argsNoCommand arguments
cwdNoWorking dir (absolute or workspace-relative, default: workspace root)
timeoutNoTimeout in milliseconds (default: 30000, max: 600000)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and open-world hints. Description adds 'no shell for security' and specifies return values. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and concise. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (command execution with destructive potential) and no output schema, the description is adequate. It covers key return values and security context, though could mention format of outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description does not add meaning beyond the input schema, which already describes each parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it executes an allowlisted command and returns stdout, stderr, exit code, and timing. It distinguishes from siblings by emphasizing 'allowlisted' and 'no shell for security', but does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 runInTerminal or sendTerminalCommand. It does not explain prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runInTerminalA
Destructive

Execute command and wait for completion. Returns exit code and output. Prefer over runCommand.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesShell command to run (no metacharacters or newlines)
nameNoTerminal name (from listTerminals). Uses active if omitted.
indexNoTerminal index (0-based) from listTerminals. Used if name omitted.
timeoutNoSeconds to wait for completion (default: 30, max: 300)
showNoFocus terminal panel while running (default: true)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations destructiveHint and openWorldHint are present but description adds minimal beyond 'wait for completion'. No caution about side effects or external access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence plus recommendation, no wasted words, front-loaded with action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description only says 'Returns exit code and output' without format details or error handling. Lacks behavioral context for a destructive/open-world tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 5 parameters with full descriptions. Description adds no extra parameter details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Execute command and wait for completion' with return values. Distinguishes from sibling 'runCommand' via direct recommendation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Suggests preference over runCommand but lacks explicit conditions for use, prerequisites like listing terminals, or when to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runTestsA

Run tests (Vitest/Jest/Pytest/Cargo/Go). Returns pass/fail, failures, file:line. Cached 30s.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoTest name pattern or file path to filter tests
runnerNoRunner to use (vitest/jest/pytest/cargo-test/go-test). Default: all detected
noCacheNoSkip cache and force a fresh run. Default: false
timeoutMsNoSubprocess timeout in ms. Default: 300000 (5 min). Increase to 600000 for full project runs (>1000 tests).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-destructive behavior. Description adds caching (30s) and return format, which are useful beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description covers return format and caching. Could mention prerequisites (e.g., test files must exist), but adequate for a test runner.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for each parameter. Description adds no additional meaning to parameters; baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it runs tests, lists supported runners (Vitest/Jest/Pytest/Cargo/Go), and mentions return format (pass/fail, failures, file:line). Distinguishes from sibling 'findRelatedTests'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage (running tests) but no explicit guidance on when to use vs alternatives, or when not to use. No prerequisites or exclusion criteria mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

runVSCodeTaskA
Destructive

Run VS Code task by name. Waits for completion, returns exit code. For build/test/lint tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the task to run
typeNoTask type filter (e.g. 'shell', 'npm') to disambiguate tasks with the same name
timeoutNoSeconds to wait for task completion (default: 60, max: 300)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true; description adds that the tool waits for completion and returns exit code. This provides some behavioral context but does not elaborate on potential side effects beyond the existing annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no unnecessary words. Front-loaded with the core action and key behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with full schema, description covers return value (exit code) and typical usage. Could mention error handling for non-existent tasks, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% parameter description coverage. The description adds no additional meaning beyond what is already in the schema for name, type, and timeout.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Run'), resource ('VS Code task by name'), behavior ('Waits for completion, returns exit code'), and use cases ('For build/test/lint tasks'). This distinguishes it from siblings like runCommand or runInTerminal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for build/test/lint tasks but does not explicitly state when to use this tool versus alternatives like runCommand or runInTerminal, nor does it provide exclusions or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

saveDocumentA
Destructive

Save workspace document via VS Code buffer when ext connected. No-op otherwise (editText writes to disk).

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file to save

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior. Description adds conditional behavior (only when extension connected) and clarifies the write path, adding value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words, front-loaded with key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with a clear destructive hint, the description covers purpose, usage, and condition completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter 'filePath' fully; description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Save workspace document' with verb and resource, and distinguishes from sibling 'editText' by specifying the mechanism (buffer vs disk).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when it's a no-op and that editText is the alternative for direct disk writes, providing clear usage context and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshotAndAnnotateB
Read-only

Correlate browser state with IDE state: dev server URL, diagnostics, git diff summary, and Playwright steps to capture screenshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to screenshot. If omitted, derived from package.json dev script.
waitForSelectorNoCSS selector to wait for before screenshotting (e.g. '#app')
fullPageNoCapture full scrollable page (default: false)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description need not repeat safety. The description adds behavioral context by listing what the tool returns (dev server URL, diagnostics, git diff summary, Playwright steps), which informs the agent of the tool's output beyond the name. However, it does not elaborate on any side effects or state changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that packs multiple elements, making it dense but not easily parseable. It could be improved by front-loading the primary action and structuring the output items more clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lists key outputs (dev server URL, diagnostics, git diff summary, Playwright steps, screenshot) but lacks details on format or structure. It provides a reasonable overview for a complex tool but leaves some ambiguity about the exact return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description does not add additional meaning beyond the schema; it only mentions 'dev server URL' indirectly relating to the url parameter. The agent can infer parameter usage from schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool correlates browser and IDE state and captures a screenshot, distinguishing it from the sibling 'captureScreenshot' by emphasizing context gathering. However, the verb 'Correlate' is somewhat vague, and the tool's primary action could be more explicitly stated as capturing an annotated screenshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'captureScreenshot'. The description does not mention contexts where correlation is beneficial or when to prefer other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchAndReplaceA
Destructive

Find and replace across workspace files. Supports regex with capture groups. Returns modified files.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesText or regex pattern to search for
replacementYesReplacement text. For regex mode, supports $1, $2, etc. capture group references.
globNoFile glob pattern to limit scope (e.g. '**/*.ts', 'src/**/*.py'). Omit to search all text files.
isRegexNoTreat pattern as a JavaScript regex. Default: false (literal string match).
caseSensitiveNoCase-sensitive match. Default: true.
dryRunNoPreview changes without writing files. Default: false.
includeIgnoredNoSearch inside .gitignored files (e.g. node_modules, build output). Default: false.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint: true; description adds that it returns modified files. No additional warnings or details on 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the main action and return info. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output format details (e.g., diff, file list). No output schema. For a destructive tool with 7 parameters, more completeness would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with full descriptions. Description mentions regex and capture groups, but this is redundant with schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Find and replace across workspace files' with specific verb+resource. Distinguishes from sibling tools like editText by emphasizing cross-file scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus other tools like editText or replaceBlock. Does not mention when-not or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchToolsA
Read-only

Find tools by keyword or category. Use before tools/list to avoid loading all schemas. In --lazy-tools mode, call this first to find the tool name, then tools/schema for the full schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoKeyword to match against tool name and description
categoriesNoFilter by categories (e.g. lsp, git, terminal, debug, editor, analysis, github, bridge)
limitNoMax results to return (default 10, max 50)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only nature is confirmed by annotations (readOnlyHint=true). The description adds search behavior and a recommended workflow, but does not detail output format or limitations beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: one states purpose, one gives usage guidelines. No redundant information, perfectly front-loaded for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the usage workflow is well explained, the description does not specify the output format (e.g., list of tool names, full details). Without an output schema, this omission leaves ambiguity for the agent about what 'find tools' returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have descriptions in the input schema (100% coverage). The description adds no new semantic information beyond mentioning 'keyword or category', so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it finds tools by keyword or category, and positions it as a search alternative to tools/list, which distinguishes it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this before tools/list to avoid loading all schemas, and in --lazy-tools mode, call this first and then tools/schema for full schema. Provides clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchWorkspaceA
Read-only

Search workspace files via ripgrep. Returns matching lines with file paths and line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch pattern (text or regex)
fileGlobNoOptional glob to filter files (e.g. '*.ts')
isRegexNoTreat query as regex (default: false)
caseSensitiveNoCase-sensitive search (default: true)
maxResultsNoMax results to return (default: 50, max: 200; pass higher value explicitly for broader searches)
contextLinesNoLines of context around matches (default: 0, max: 5)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the readOnlyHint annotation by specifying the use of ripgrep, indicating fast file content search, and describing the return format. It does not conflict with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences. It is front-loaded with the main action and returns. Slightly more structure could improve readability but it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format well. It also implies the tool is for content search. For a search tool with detailed schema, this is fairly complete, though pagination or sorting is not mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description does not add additional meaning beyond what the schema already provides, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches workspace files via ripgrep and returns matching lines with file paths and line numbers. This specific verb+resource distinguishes it from similar sibling tools like searchWorkspaceSymbols or findFiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool over alternatives. While the name and description imply general text search, there is no guidance on when not to use it or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchWorkspaceSymbolsB
Read-only

Search workspace symbols (classes, fns, vars, interfaces) by name via LSP.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSymbol name or partial name
maxResultsNoMax results (default: 50, max: 200)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, so description adds no further behavioral detail. It is consistent but does not disclose additional traits like auth, rate limits, or behavior for empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the action. It is concise but could be slightly improved by noting partial matching (though schema covers this).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, no output schema, read-only), the description is adequate but lacks details on return format or limits. Sibling tools are not differentiated, affecting completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with descriptions (100% coverage), so the description adds minimal additional meaning beyond 'by name' which aligns with the query parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Search', the resource 'workspace symbols', and specifies symbol types (classes, fns, vars, interfaces) with mechanism 'via LSP'. It distinguishes from siblings like 'searchWorkspace' and 'navigateToSymbolByName' by focusing on symbol names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., searchWorkspace for text search, navigateToSymbolByName for navigation). The description lacks context for when to prefer this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selectionRangesB
Read-only

Hierarchical selection ranges at position: identifier→expression→block→function→class.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based)
columnYesColumn (1-based)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation declares readOnlyHint=true, so the description only adds that the ranges are hierarchical. It does not disclose any additional behavioral traits such as permission requirements, side effects, or response structure, but it is consistent and non-contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single sentence with an arrow notation to convey the hierarchy. It is front-loaded and wastes no words. However, it could be slightly expanded for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description hints at the return structure (hierarchical ranges), but it does not explain the format or provide examples. It is adequate for a simple read-only tool but leaves some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for filePath, line, and column. The description adds the concept of position and hierarchy but does not provide significant new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly indicates the tool returns hierarchical selection ranges at a given position, listing the hierarchy (identifier→expression→block→function→class). It is specific about the resource and action, but it does not explicitly contrast with siblings like 'foldingRanges' or 'getCurrentSelection'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 or when not to use it. There is no mention of prerequisites, context, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendHttpRequestA

HTTP/HTTPS request → status, headers, body. Body truncated at maxResponseBytes (default 50 KB).

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYesHTTP method
urlYesFull URL (http:// or https://)
headersNoOptional request headers as key/value pairs
bodyNoRequest body. JSON: pass serialized string + Content-Type: application/json. Ignored for GET/HEAD.
timeoutMsNoTimeout in ms (default: 30000, max: 120000)
maxResponseBytesNoBody cap in bytes (default: 51200, max: 1048576).
followRedirectsNoFollow HTTP redirects (max 10 hops, default: true)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the openWorldHint annotation, the description discloses that the body is truncated at maxResponseBytes (default 50 KB). This adds valuable behavioral context not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loading the output (status, headers, body) and key constraint (truncation). No wasted words, efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal; it lacks details on return format structure, error handling, or how headers/body are represented. Given 7 parameters and no output schema, more context would be beneficial but the schema descriptions partially compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining truncation behavior and default for maxResponseBytes, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends HTTP/HTTPS requests and returns status, headers, and body. This differentiates it from specialized fetch tools like fetchGithubIssue, though it does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., specialized fetchers or parseHttpFile). The description only states what it does, not when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendTerminalCommandA
Destructive

Send text/command to VS Code terminal. Fire-and-forget; use getTerminalOutput to check results.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText or command to send to the terminal
nameNoTerminal name to send to
indexNoTerminal index (0-based) from listTerminals
addNewlineNoAppend newline to execute as command (default: true)
isCommandNoFalse for short stdin responses to prompts (max 512 chars, no shell metacharacters).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint, openWorldHint), description adds fire-and-forget behavior and need to check results separately. Good context without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with key action and usage pattern front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core behavior and result retrieval. Could briefly mention error handling for invalid terminals, but not essential for a fire-and-forget tool. Good overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all parameters with descriptions (100%). Description does not add additional meaning beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Send' with resource 'VS Code terminal'. Explicitly states fire-and-forget nature and distinguishes from sibling getTerminalOutput for result retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use for sending commands without waiting for output; use getTerminalOutput to check results. Directs to appropriate alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setActiveWorkspaceFolderA
Idempotent

Set active workspace folder for file ops. Useful in multi-root workspaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the workspace folder to activate

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint: true, indicating safe repeated calls. The description adds minimal context (file ops, multi-root) but does not elaborate on side effects, permissions, or behavior beyond the annotation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core action and purpose. Every word is informative with no redundancy. Ideal length for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter, no output schema, and clear annotations, the description provides sufficient context to understand when and how to use it. Could hint at prerequisites (e.g., workspace must be multi-root) but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers the single parameter 'path' with a clear description matching the tool's purpose. With 100% schema coverage, the description adds no further parameter details, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action 'Set active workspace folder' and its purpose 'for file ops', with specific context 'Useful in multi-root workspaces'. This distinguishes it from sibling tools like getWorkspaceFolders (read-only) and setWorkspaceSetting (general setting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage in multi-root workspaces but does not provide explicit guidance on when to use vs. alternatives (e.g., when to choose this over getWorkspaceFolders or other folder-related tools). No exclusion scenarios are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setDebugBreakpointsA

Set breakpoints in a file (replaces existing). Supports conditions, logpoints, hit counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesAbsolute path to the file
breakpointsYesBreakpoints to set (replaces existing ones for this file)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the replacement behavior ('replaces existing'), which is a key behavioral trait. However, it omits details about error handling, interaction with active debug sessions, or side effects. With no annotations, the description carries the full transparency burden, and while it reveals one important behavior, others are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficiently structured sentence with no unnecessary words. It front-loads the primary purpose and follows with supported features.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the replacement behavior and supported features, but does not mention the return value, error states, or if breakpoints are immediately active. Given the tool's moderate complexity, the description is adequate but leaves some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds marginal value. It mentions 'conditions, logpoints, hit counts' which map to the optional fields in the breakpoints array, but does not provide additional semantic detail beyond what the schema already includes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'set' and the resource 'breakpoints in a file'. It distinguishes from sibling debugging tools by specifying the action of setting breakpoints and noting that it replaces existing ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for setting breakpoints programmatically, but no explicit guidance is given on when to use this vs alternatives like UI breakpoints. No exclusions or prerequisites are mentioned, though the context of sibling tools suggests it is the primary breakpoint-setting tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setEditorDecorationsA
Idempotent

Place visual decorations (highlights, inline text) on file lines. Grouped by ID; replaces on each call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesGroup name for decorations (alphanumeric + hyphens)
fileYesAbsolute path to the file to decorate
decorationsYesDecorations to apply

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the idempotentHint annotation, the description adds the key behavioral trait that decorations are replaced on each call, giving the agent a clear understanding of the tool's 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy: first sentence states purpose, second explains grouping and replacement. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality and behavior, and the schema fully documents parameters. It could mention return value or error handling, but given the tool's nature, the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full 100% coverage with descriptions for all parameters. The description adds no additional semantic detail beyond what the schema offers, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool places visual decorations on file lines and explains grouping by ID with replacement behavior, distinguishing it from sibling tools like clearEditorDecorations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (e.g., to set/replace decorations by ID) but does not explicitly mention when not to use or alternative tools, though the sibling 'clearEditorDecorations' exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setHandoffNoteA
DestructiveIdempotent

Save context note that persists across sessions. Use when switching between CLI and Desktop.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesContext summary: what you worked on, key findings, and next step.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint=true and idempotentHint=true. The description adds that the note persists across sessions, which is useful context. However, it does not elaborate on further behavioral details like overwrite behavior or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no unnecessary words, front-loading the purpose and usage context. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple save operation with no output schema, the description adequately explains the tool's purpose and persistence behavior. It could mention return value or confirmation, but the sibling tool getHandoffNote covers retrieval, so completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers the single parameter with a clear description. Since schema_description_coverage is 100%, the description adds no additional semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves a context note that persists across sessions, and explicitly distinguishes its use case (switching between CLI and Desktop) from sibling tools like getHandoffNote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('Use when switching between CLI and Desktop'), providing clear context. It does not mention when not to use it or alternatives, but the guidance is sufficient for a simple tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setWorkspaceSettingA
Destructive

Write VS Code workspace setting (dot notation e.g. editor.tabSize). security.* writes blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesSetting key in dot notation (e.g. 'editor.tabSize')
valueYesNew value for the setting
targetNoWhich scope to write to (default: workspace)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive hint; description adds context that security.* writes are blocked, which is non-obvious and valuable beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with clear action, example, and constraint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple write tool with no output schema. Includes a key restriction. Could mention return status or side effects but still informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. Description reinforces the key parameter example but adds no additional semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it writes VS Code workspace settings, uses dot notation, and mentions a restriction on security.* settings. Distinguishes itself from read and other write tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for writing workspace settings and notes blocked security keys, but no explicit when-to-use or alternatives compared to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

signatureHelpA
Read-only

Function signature and param info at a call site. Returns active sig, param index, overloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesWorkspace or absolute path
lineYesLine number (1-based, inside a function call)
columnYesColumn (1-based, inside a function call)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that it returns active signature, param index, and overloads, providing useful behavioral context beyond the safety hint. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with key purpose and output. Every word adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain return values. It does so with 'active sig, param index, overloads', which is sufficient for a simple info tool. Could detail parameter names/types but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no additional meaning beyond the schema. The phrase 'at a call site' is implicit from the parameters line/column inside a function call. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides function signature and parameter info at a call site, specifying what it returns (active signature, param index, overloads). This distinguishes it from siblings like getHover or getTypeSignature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing signature help at a call site but does not explicitly state when to use it versus alternatives (e.g., getHover, getTypeSignature). No guidance on when not to use or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slackListChannelsA
Read-only

List public Slack channels the bot has access to. Returns id, name, member count.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax channels to return (1–200). Default: 100.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds value beyond annotations by specifying return fields (id, name, member count). Annotations already indicate read-only. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, efficient with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter, the description provides complete information: action, scope, and output fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers parameter 'limit' fully with description, range, and default. Description adds no additional parameter semantics, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'List', resource 'public Slack channels', and scope 'bot has access to'. Distinguishes from sibling tools like 'slackPostMessage'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool, but lacks explicit when-not or alternative usage directions. However, no competing sibling exists for listing channels.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slackPostMessageA

Post a message to a Slack channel. Use channel name (e.g. 'general') or channel ID. Optionally reply in a thread by providing threadTs.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesChannel name (e.g. 'general') or channel ID (e.g. 'C12345').
textYesMessage text (Markdown supported via mrkdwn).
threadTsNoThread timestamp to reply in. Omit to post as a new message.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so mutation is expected. The description adds no further behavioral details like success/failure responses or permissions, but it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, and no unnecessary words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 3 parameters and no output schema, the description covers the essential aspects. Could mention Markdown support explicitly, but schema already does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying channel can be name or ID and threadTs is optional for replying, going beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Post a message to a Slack channel,' specifying the verb and resource. It distinguishes from siblings like slackListChannels by focusing on posting, not listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use the tool (channel name or ID, optional thread reply) but does not provide explicit guidance on when not to use it or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spawnWorkspaceA

Spawn claude-ide-bridge for a workspace dir. Returns pid/port/authToken once lock appears; optionally waits for extension handshake.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the workspace directory to open
portNoPort for the spawned bridge (optional; picks a free port if omitted)
timeoutMsNoMax ms to wait for bridge lock (and extension handshake when waitForExtension=true). Default 30000.
tokenNoFixed auth token for the spawned bridge (optional)
waitForExtensionNoIf true, poll /health on the spawned bridge until extensionConnected=true. Shares the timeoutMs budget.
codeServerNoIf true, also spawn `code-server` against the workspace (prereq: installed on PATH with extension pre-loaded). Implicitly enables waitForExtension.
codeServerPortNoPort for the spawned code-server (default: 8080). Ignored when codeServer=false.
codeServerBinNoOverride code-server binary path (default: 'code-server' on PATH).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the return value (pid/port/authToken), waiting for a lock, and optional extension handshake. It does not mention side effects or safety, but for a spawn tool, these are the key behaviors. It adds value beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous information. The first sentence states the core action, the second details the output and optional behavior. Front-loaded with the verb and resource, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 8 parameters and no output schema, the description covers the main purpose, return value, and key optional behavior (waitForExtension). However, it does not explain advanced options like codeServer or what 'bridge lock' means. The schema compensates for these gaps, so it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not repeat parameter descriptions but adds context about the return flow and waitForExtension behavior, which helps understand the overall semantics but does not significantly enhance individual parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'spawn' and the resource 'claude-ide-bridge for a workspace dir', and distinguishes itself from sibling tools by specifying the unique action of spawning a bridge, which no other sibling tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (to spawn a bridge for a workspace) and mentions the optional waitForExtension behavior, giving implicit guidance on when to set that parameter. However, it does not explicitly exclude 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.

stageEditB
Read-only

Stage a file edit inside a transaction. Supports lineRange and searchReplace operations (same params as previewEdit). Does NOT write to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYesTransaction ID from beginTransaction
filePathYesWorkspace-relative or absolute path to the file
operationYesType of edit
startLineNoStart line (1-based, lineRange only)
endLineNoEnd line inclusive (1-based, lineRange only)
newContentNoReplacement content for the line range
searchNoPattern to search for (searchReplace only)
replaceNoReplacement text (searchReplace only)
useRegexNoTreat search as regex (searchReplace only)
caseSensitiveNoCase-sensitive match (searchReplace only, default true)

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description states 'Stage a file edit' which modifies transaction state, contradicting the readOnlyHint annotation (true) that implies no state mutation. This is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff, front-loaded with key information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's role in a transaction lifecycle, description lacks details about prerequisites (active transaction), post-staging steps (commit), or return values. Missing crucial context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond the schema; it only references 'same params as previewEdit' without elaborating.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool stages a file edit inside a transaction, supporting lineRange and searchReplace operations, and explicitly says it does NOT write to disk. This distinguishes it from siblings like 'editText' and 'previewEdit'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage within a transaction but does not provide explicit when-to-use or when-not-to-use guidance compared to siblings. It mentions same params as previewEdit but no exclusion criteria or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

startDebuggingA

Start debug session from .vscode/launch.json. Pass configName to select configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
configNameNoName of the launch configuration to use

TDQS

A3.5/5.0
Behavior2/5

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 omits side effects, prerequisites (e.g., .vscode/launch.json must exist), or what happens when 'configName' is invalid. This lack of transparency reduces the score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences—with no filler. Every word adds value, making it efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 adequate but not exhaustive. It lacks mention of return values (e.g., success/failure) or additional behavioral context that would fully inform an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds minimal value beyond the schema definition. The description says 'Pass configName to select configuration', which largely mirrors the schema's 'Name of the launch configuration to use'. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Start debug session from .vscode/launch.json', which clearly identifies both the action and the specific resource. It distinguishes the tool from siblings like 'stopDebugging' and 'evaluateInDebugger'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies passing 'configName' to select configuration, but does not provide explicit guidance on when to use this tool versus other debug-related siblings like 'setDebugBreakpoints' or 'evaluateInDebugger'. No exclusions or alternative suggestions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stopDebuggingA

Stop active debug session. No-op if none running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description adds important context: no-op behavior when no session active. Does not detail other side effects, but for a stop action this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states action, second covers edge case. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters or output schema, the description fully covers purpose and key behavior, including the no-op case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist and schema coverage is 100%, so description adds no param info. Baseline 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'stop active debug session', specifying verb and resource. Distinguishes from sibling 'startDebugging' and other debug tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes 'No-op if none running', guiding when it is safe to call. Does not mention alternatives but context implies it is the inverse of startDebugging.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

testTraceToSourceA
Read-only

Map a test pattern to covered source lines from lcov.info or coverage-summary.json — no instrumentation needed. Without per-test coverage, returns whole-suite coverage filtered by filename pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
testPatternYesTest name or filename pattern to match against coverage data
coverageDirNoDirectory to search for coverage files (default: coverage/)
minCoverageNoOnly show files at or above this line coverage % (default: 0)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context beyond readOnlyHint annotation by specifying file dependencies and fallback behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences that capture core functionality, file formats, and fallback behavior without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input and fallback but lacks output format details and error handling, which would be helpful given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage; the tool description adds no further semantic detail beyond the schema parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it maps test pattern to covered source lines using lcov.info or coverage-summary.json, with a fallback to whole-suite coverage. Distinguishes from siblings like getCodeCoverage by specifying file formats and no instrumentation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for tracing test patterns to source lines but does not explicitly state when to use over alternatives like getCodeCoverage, nor provides exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unwatchFilesA

Stop watching files for a previously registered watcher by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the watcher to remove

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose behavioral traits such as what happens if the watcher ID is invalid, whether the operation is idempotent, or if there are side effects. The description is too brief given the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the essential action and target without wasted 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.

Completeness3/5

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 minimally viable. It explains what the tool does but lacks return value information or error behavior. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action (stop watching files) and targets a previously registered watcher by ID. This clearly distinguishes it from the sibling tool watchFiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or alternatives. The context implies it is the inverse of watchFiles, but there is no mention of prerequisites or when not to use (e.g., if watcher doesn't exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

updateLinearIssueA

Update an existing Linear issue. Pass only the fields you want to change. Requires Linear connector connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIssue identifier (e.g. 'ENG-42') or URL.
titleNo
descriptionNo
priorityNo0=no priority, 1=urgent, 2=high, 3=medium, 4=low.
stateNoWorkflow state name (e.g. 'In Progress', 'Done').
assigneeNoAssignee name or email.
labelNamesNoLabel names to set (replaces existing labels).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, consistent with update. Description adds partial update hint but doesn't disclose error handling, idempotency, or side effects beyond the stated behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences with no wasted words. Front-loaded with purpose, then usage guidance, then prerequisite.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core purpose and partial update pattern adequately. Lacks mention of return value or error handling, but for a simple mutation tool this is sufficient. Could be enhanced with a note about response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, so many parameters are described in schema. The description reinforces partial update but adds no new parameter-specific meaning beyond what schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing Linear issue' – a specific verb and resource. It distinguishes from siblings like createLinearIssue by implying the issue already exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: 'Pass only the fields you want to change' indicates partial update. Requires connector. However, it does not explicitly state when not to use (e.g., for new issues use createLinearIssue).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

updatePlanA
Idempotent

Update plan file: mark tasks done/undone, add tasks or sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameNoPlan filename (default: .claude-plan.md)
markCompleteNoTask texts to mark as complete (substring match)
markIncompleteNoTask texts to mark as incomplete (substring match)
addTasksNoTasks to add to a section
addSectionsNoNew sections to append

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true. The description says 'update' which implies mutation but does not disclose additional behavioral traits. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with purpose and covers the main actions without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 5 parameters and no output schema, the description lacks context about prerequisite plan existence, combined operations, and return value. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description adds no new semantic meaning beyond summarizing the actions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'update' and the resource 'plan file', and lists specific actions: mark tasks done/undone, add tasks or sections. This differentiates it from siblings like createPlan and deletePlan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 createPlan or getPlan. No context on 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.

waitForTerminalOutputA
Read-only

Block until regex matches terminal output. Returns {matched, matchedLine, elapsed} or timedOut.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesJS regex to match against terminal output lines
nameNoTerminal name (from listTerminals). Uses active if omitted.
indexNoTerminal index (0-based) from listTerminals. Used if name omitted.
timeoutNoSeconds to wait (default: 30, max: 300)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool blocks execution, returns specific fields (matched, matchedLine, elapsed), and has a timeout. Annotations already set readOnlyHint=true, so the description adds the blocking behavior. However, it does not fully explain the timedOut return state or error scenarios.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and return value. Every word adds value; no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides the return shape. It lacks details about timeout behavior and error conditions, but is sufficient for core functionality. The tool is simple and the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% parameter description coverage, so the description adds no extra meaning beyond what is already documented in the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Block until regex matches terminal output') and the resource (terminal output), and specifies the return shape. It distinguishes from siblings like getTerminalOutput (retrieves output) and sendTerminalCommand (sends command) by emphasizing blocking and pattern matching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies its use when waiting for a pattern, but does not mention when not to use it or provide alternatives. The parameter descriptions hint at using listTerminals to get name/index, but this is baseline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watchActivityLogA
Read-only

Long-poll for new activity log entries. Pass lastId as sinceId on next call.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceIdNoReturn entries with id > sinceId. Omit on first call.
maxEntriesNoMax entries to return (default: 10, max: 50)
timeoutMsNoLong-poll ms (default: 2000, range: 1000–30000)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint: true. The description adds the long-polling behavior, but lacks details on idle behavior, error handling, or what happens on timeout. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no redundancy, front-loaded with purpose. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description does not explain the response format or error conditions. For a polling tool, return content (e.g., empty array on timeout) is important context. The parameter descriptions are adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for all three parameters. The description reinforces the 'sinceId' usage but adds no new semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Long-poll for new activity log entries', specifying the verb (long-poll) and resource (activity log entries). It distinguishes from sibling 'getActivityLog' by indicating it's for new entries via polling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to 'Pass lastId as sinceId on next call', providing some usage guidance. However, it does not explicitly contrast with 'getActivityLog' or state when to use this polling variant over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watchDiagnosticsA
Read-only

Long-poll for diagnostic changes. Use after edits to wait for LSP re-validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoOptional: only watch diagnostics for this specific file
timeoutMsNoMax wait time in milliseconds (default: 10000, max: 30000)
sinceTimestampNoOnly return if diagnostics changed after this timestamp (from a previous watchDiagnostics call)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that the tool is a long-poll, which implies a blocking behavior—a key trait not captured by the 'readOnlyHint' annotation. However, it does not explicitly mention that it may return immediately if no changes exist or that it blocks until a timeout. Still, it adds significant behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact with two sentences, front-loading the purpose and usage. Every word contributes meaning, making it highly concise without sacrificing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a tool that returns diagnostic changes but lacks details on the return format (e.g., list of diagnostics or just a signal) and does not explicitly state that it is a blocking call, which is important given the 'long-poll' nature and the timeout parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all three parameters. The description does not add any parameter-specific meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Long-poll for diagnostic changes. Use after edits to wait for LSP re-validation.' It uses a specific verb ('long-poll') and resource ('diagnostic changes'), and effectively distinguishes itself from the sibling 'getDiagnostics' which returns current diagnostics rather than polling for changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use it 'after edits to wait for LSP re-validation,' providing clear context for when to invoke the tool. It implies an alternative (polling) without naming it explicitly, but the guidance is strong enough for an agent to understand the intended use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watchFilesA
Read-only

Watch glob pattern for file changes (created/modified/deleted). Use unwatchFiles to stop.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID for this watcher (used to unwatch later)
patternYesGlob pattern to watch (e.g., '**/*.ts', 'src/**/*.{js,jsx}')

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include readOnlyHint=true, indicating the tool does not modify state. The description adds context about watching file changes, which aligns with read-only behavior. No deeper behavioral details are given (e.g., how events are delivered), but the annotations already cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two well-structured sentences. The first sentence states the core action, and the second references the sibling tool for stopping. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple watch tool with two parameters and no output schema, the description covers the basic purpose and the counterpart tool. However, it lacks details on how the results are delivered (e.g., events, callbacks, or streaming). This is a gap that could affect an agent's ability to handle the tool's output correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema fully describes the two parameters (id and pattern). The description mentions 'glob pattern', which mirrors the pattern parameter's description, but adds no new semantic information beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool watches a glob pattern for file changes (created/modified/deleted). It distinguishes from the sibling tool 'unwatchFiles' by mentioning it as the stop counterpart. The purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (to watch file changes) and explicitly mentions the alternative 'unwatchFiles' to stop. However, it does not elaborate on when not to use it or compare to other watch-related siblings like watchActivityLog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

writeClipboardA
Idempotent

Write text to system clipboard. Max 1 MB.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to write to clipboard

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true. The description adds the 1 MB size constraint, which is a useful behavioral detail beyond annotations. However, it does not mention that the clipboard is overwritten, though that is implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. It front-loads the action and includes the constraint, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 all necessary information: what it does and a critical constraint. It is complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'text' parameter with 100% coverage. The description adds the 1 MB limit, which is not present in the schema, thus adding meaningful value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (write text) and the target resource (system clipboard), and the size limit helps differentiate it from tools like readClipboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives like readClipboard. The only contextual hint is the 1 MB limit, but no when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation2/5

With 175 tools, many have overlapping purposes (e.g., getHover, getHoverAtCursor, batchGetHover; runCommand, runInTerminal, sendTerminalCommand). Descriptions attempt to differentiate, but the sheer number increases the chance of agent misselection.

Naming Consistency5/5

All tool names follow a consistent camelCase verb_noun pattern (e.g., addLinearComment, searchAndReplace, fetchGithubIssue). No mixture of conventions detected.

Tool Count1/5

175 tools is far too many for any practical MCP server. This extreme count overwhelms agents and violates typical scoping expectations (3-15 tools ideal). The server tries to do everything, leading to bloat.

Completeness4/5

The tool set is remarkably broad, covering file editing, git, code analysis, debugging, testing, project management, AI tasks, and external integrations. Minor gaps exist (e.g., no direct PR merge tool), but overall coverage is impressive.

Maintenance

ActivityActive
ResponsivenessResponsive

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes any stdio-based MCP server to the internet via HTTP/SSE transport, enabling remote agents to access MCP tools over a network.
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    This server bridges a stdio MCP server to HTTP, allowing MCP clients that communicate over HTTP to use the server's tools. It includes a per-tool allow/deny filter for security.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Minimal MCP server allowing Python functions to be served as MCP tools over stdio or HTTP, with a built-in client for connecting to MCP servers.
    2
    Apache 2.0

Latest Blog Posts

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/Oolab-labs/patchwork-os'

If you have feedback or need assistance with the MCP directory API, please join our Discord server