Skip to main content
Glama

AIOProductOS plugin for Claude Code

claude-plugin MCP server

Hosted connector on Glama MCP Registry

Connect your AIOProductOS workspace to Claude Code and work your whole product from chat — feedback, revenue, tasks, releases, analytics, and code activity joined on one customer record.

One install gives you:

  • The workspace connection — the AIOProductOS remote MCP server: 71 tools over the product spine, and it doesn't just read. It's a fully autonomous PM surface — read the spine and write to it across the whole strategy-to-delivery ladder: capture and vote on ideas, promote them into features, set initiatives and objectives & key results, plan sprints and releases, run experiments, log decisions, write pages, and create/update/delete tasks — plus post to team channels, capture insights, and merge/unmerge people. OAuth sign-in, no API keys.

  • /aioproductos:triage — Monday-morning product triage: surfaces the top 3 customer-evidenced insights, scores them transparently from real revenue and usage, and (after you confirm) creates the tasks, assigns a named AI teammate, and schedules them into the next sprint.

  • The aioproductos-triage skill — the full triage doctrine, available whenever you ask "what should we work on next?"

What you can do

Read the spine — customer 360, product brain, weekly signal memo, roadmap drift; analytics: NPS, NRR, funnels, retention, path analysis; list ideas, initiatives, tasks, features, objectives, sprints, releases, pages, experiments, insights, conversations, channels, bookings, identity merges, codebase map.

Write to the spine — no jumping back to the web UI:

  • Discovery — capture ideas, vote on them, promote an idea into a feature

  • Strategy — create/update initiatives, objectives and key results, decisions, experiments

  • Roadmap — create/update features, releases, pages

  • Delivery — create/update tasks, comment, create/update sprints

  • Customers & comms — capture insights, post to channels, merge/unmerge end users

  • AI artifacts — review artifacts, revert to a prior version

Everything is scoped to your organization and your role's permissions, and writes go through the same guardrails as the app.

Writes someone else can see. Three groups reach beyond your own workspace, so they're worth knowing about before you connect: reply_to_conversation, add_note and resolve_conversation act on your support inbox and a visitor sees the reply; post_to_channel and reply_in_channel post to team channels as you; cancel_booking and reschedule_booking change a booked meeting and notify the guest.

One destructive tool. delete_task is permanent, cascades to subtasks, and has no undo — so it requires confirm: "DELETE" alongside the task id. A task id alone can never trigger it; the assistant has to ask you first. Nothing else deletes anything.

Related MCP server: PM-Skills MCP

Interactive apps

Three tools render a working interface in the conversation rather than a wall of JSON (MCP Apps, SEP-1865). They aren't screenshots — each one calls back into this same MCP:

Ask for

You get

What it writes

list_tasks

Board — your tasks grouped by status, ranked by priority

change a status → update_task

get_weekly_signal_memo

Weekly signal — this week's themes with the evidence behind each

a theme → create_task, linked to its feature

analyze_funnel

Funnel — conversion per step with the live MRR behind each one

read-only

Hosts that support MCP Apps (Claude, ChatGPT, VS Code, Goose and others) render them inline. Everywhere else the tools return exactly the text they always did — the app is an enhancement, never the only copy of the answer.

Install

/plugin marketplace add AIOProductOS/claude-plugin
/plugin install aioproductos@aioproductos

On first use, the AIOProductOS connector will prompt you to sign in with your workspace account and approve access. All data is scoped to your organization and your role's permissions.

Requirements

An AIOProductOS workspace (aioproductos.com). New organizations get a 14-day onboarding runway on their own data, and every plan carries a 30-day money-back guarantee. Your AI usage is never metered — flat plans, no credit meters.

What the triage looks like

This week's triage — top 3 (evidence-backed). Confirm before I create them.

# | Insight (source)              | Proposed task            | Score
--+-------------------------------+--------------------------+------
1 | "Need SAML" — 3 accts, $4.2k  | SSO/SAML for enterprise  | 2.4
2 | Onboarding drop 38% (funnel)  | Shorten signup form      | 240
3 | Churned acct cited exports    | CSV export on reports    | 4.0

Want me to create, assign (Ada · Backend AI), and schedule all 3 into Sprint W27?

Every number traces to a record on the spine — accounts, MRR, funnel steps — not a planning-poker vibe. Effort stays a human call, and nothing is written until you confirm.

Other ways to connect

  • Any MCP host: custom connector URL https://platform.aioproductos.com/api/mcp

  • CLI/stdio: npx @aioproductoscom/mcp

  • Docs: aioproductos.com/mcp

Support

Questions, feedback, feature requests: office@aioproductos.com — a human founder answers every email.

License

MIT — see LICENSE. The plugin is free; it drives a paid AIOProductOS workspace.

Available Tools

71 tools
add_noteAdd Internal NoteAInspect

Add an INTERNAL note to a support conversation — visible only to your team, never sent to the end-user — and return the result. A write. Use it to record context or hand off; resolve conversation_id via list_conversations. conversation_id and body are required. For a public reply use reply_to_conversation instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesInternal note text, teammates-only (required).
conversation_idYesConversation id to note on, from list_conversations (required).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint false). The description adds that the note is internal and visible only to the team, and that it returns the result. 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?

Three efficient sentences: purpose, usage guidelines, and required parameters. 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?

For a simple 2-param tool with no output schema, the description fully covers purpose, behavior, prerequisites, and alternatives. Nothing missing.

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 clarifying that conversation_id should be resolved via list_conversations and that the body is for teammates-only, which goes 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 clearly states the action ('Add'), the resource ('INTERNAL note to a support conversation'), and distinguishes it from the sibling tool 'reply_to_conversation' by specifying it is team-only and never sent to the end-user.

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 ('record context or hand off'), how to find the required conversation_id (via list_conversations), and when not to use (for public reply, use reply_to_conversation instead).

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

analyze_funnelConversion FunnelA
Read-onlyIdempotent
Inspect

Build a conversion funnel from the product's own events: distinct users per step, step-to-step conversion %, and drop-off, evaluated in the exact order you pass. Needs product-analytics events flowing; returns empty counts when none match. Pass steps as an ordered list of 2+ event names — call it with NO steps first to get the menu of available event names rather than guessing them. Optional product_id and window_days (default 30, valid 1–365). Pairs with analyze_paths to see where the drop-offs go.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNoOrdered list of 2+ event names forming the funnel; omit to get the menu of available event names first.
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).
window_daysNoLookback window in days (optional; default 30).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readonly, idempotent, non-destructive. Description adds essential behavioral details: evaluation order matters, returns empty counts on no match, and prerequisites (needs events flowing) beyond what annotations provide.

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

Conciseness4/5

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

Four sentences, all adding value: purpose, usage guideline, prerequisite, parameter help. Front-loaded with main function. Slightly wordy but 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, but description explains return metrics (distinct users, conversion %, drop-off) and empty behavior. Mentions prerequisite and sibling tool. Could hint at pagination or ordering details, but sufficient for agent to invoke 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 covers all 3 parameters with descriptions. Description adds valuable context: suggests calling with no steps to get menu, clarifies window_days default and valid range (1-365), and explains product_id optionality referencing whoami.

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 builds a conversion funnel with specific metrics (distinct users, step-to-step conversion %, drop-off) and explicitly distinguishes from sibling tool analyze_paths by stating it pairs with it to see where drop-offs go.

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 when-to-use guidance: call without steps to get menu of events, pairs with analyze_paths, requires product-analytics events, and explains behavior when no events match.

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

analyze_npsNPS (revenue-weighted)A
Read-onlyIdempotent
Inspect

NPS for the product: the standard −100…100 score AND revenue-weighted NPS (each respondent weighted by their account MRR), plus detractor accounts ranked by MRR-at-risk (highest first). Surfaces when your biggest customers are the unhappy ones even if the headline looks fine. Computed deterministically off survey responses inside window_days (default 90, valid 1–365); returns an empty result when none fall in the window. product_id optional (primary product when omitted). Quantify sentiment after get_product_brain, then dig into a detractor with get_customer_360.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).
window_daysNoLookback window in days (optional; default 90, i.e. the last quarter).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds that computation is deterministic, based on survey responses within a window, and returns empty if no responses. It also notes product_id optional and default window. This 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?

Three sentences, front-loaded with main outputs, efficient. Every sentence adds value without redundancy.

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, the description explains all returned items (scores, weighted NPS, detractor accounts) and edge cases (empty result). With two simple params and no nested objects, it 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%, so baseline is 3. The description adds minor elaboration (e.g., 'last quarter' for window_days, 'primary product' for product_id) 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 the tool computes standard and revenue-weighted NPS along with detractor ranking. It uses specific terms like 'NPS for the product' and lists outputs, 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 implicit workflow guidance: 'Quantify sentiment after get_product_brain, then dig into a detractor with get_customer_360.' It also hints at when to use by highlighting a scenario (biggest customers unhappy). No explicit when-not-to or alternatives, but context is clear.

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

analyze_nrrNet Revenue RetentionA
Read-onlyIdempotent
Inspect

Net Revenue Retention (revenue-weighted) next to logo retention (count-weighted), the expansion/contraction/churn split, and the accounts that lost the most MRR (ranked, highest loss first). The divergence is the point: '92% of logos but 78% of revenue' means a big account churned. Computed deterministically off subscription movements inside window_days (default 90, valid 1–365); empty when none fall in the window. Quantify revenue health, then follow the top-losing accounts into get_customer_360.

ParametersJSON Schema
NameRequiredDescriptionDefault
window_daysNoLookback window in days (optional; default 90, i.e. the last quarter).

TDQS

A4.5/5.0
Behavior4/5

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

The description aligns with annotations (readOnly, idempotent, not destructive) and adds behavioral details: computation is deterministic, uses subscription movements within window_days, returns empty when no data falls in the window, and the window range is 1–365. This is transparent and covers key behavior beyond the annotations.

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

Conciseness5/5

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

The description is concise and dense with useful information. Every sentence serves a purpose: defining outputs, explaining the concept, noting computation details, and providing a usage recommendation. There is no repetition or filler, 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.

Completeness5/5

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

Given there is no output schema, the description adequately covers what the tool returns (NRR, logo retention, split, top-losing accounts) and how it works (deterministic, window-based). For a tool with one optional parameter, this provides sufficient context for an AI agent to invoke it 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 baseline is 3. The description enhances the parameter by explaining the default value (90 days, 'i.e. the last quarter') and the valid range. This adds practical context that helps the agent understand the parameter's meaning and constraints.

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 computes Net Revenue Retention (NRR) along with logo retention, expansion/contraction/churn split, and a ranked list of top-losing accounts. It distinguishes itself from sibling analytics tools like analyze_nps and get_retention by specifying revenue-weighted metrics and a focus on highest-loss accounts.

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 guidance on when to use the tool ('Quantify revenue health') and suggests a follow-up action ('follow the top-losing accounts into get_customer_360'). However, it does not explicitly exclude scenarios where other retention tools might be more appropriate, so there is mild room for improvement.

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

analyze_pathsUser Path FlowA
Read-onlyIdempotent
Inspect

Trace what users do AFTER a start event — the journey flow (Sankey) from the product's own events. Returns the next-step transitions ranked by user count (most common first), empty when no events match. Pass start to anchor on an event, or omit for the most common start (call analyze_funnel with no steps to list the event names). Optional product_id and window_days (default 30, valid 1–365).

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoEvent name to anchor the flow on (optional; the most common start event when omitted — analyze_funnel with no steps lists the event names).
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).
window_daysNoLookback window in days (optional; default 30).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds that results are empty when no events match and that transitions are ranked by user count, plus notes that the tool uses the product's own events. This adds context 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, front-loaded with the core purpose, and then concise parameter guidance. No wasted words; every sentence earns its place.

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

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 adequately covers the return type (ranked transitions, empty when no matches). It also explains parameter defaults and valid ranges. A slight gap is the lack of detail on the structure of a transition, but it is sufficient for an agent to invoke the tool correctly.

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

Parameters5/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 meaningful extra context: for 'start', it explains that omitting uses the most common start and references analyze_funnel; for 'window_days', it provides default and valid range; for 'product_id', it directs to whoami. This significantly aids an AI agent.

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 traces user actions after a start event, returning a journey flow as a Sankey diagram ranked by user count. It distinguishes itself from sibling tools like analyze_funnel by specifying the focus on post-event transitions.

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 explains when to use the tool (to see next-step transitions after an event) and provides an explicit alternative for listing event names via analyze_funnel. However, it does not explicitly state when not to use it, such as for cumulative metrics.

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

cancel_bookingCancel BookingA
Idempotent
Inspect

Cancel a scheduled booking (call/meeting) and return the result — the invitee is notified per the scheduling settings. A write. Resolve booking_id via list_bookings first; never guess it. To move it instead of cancelling, use reschedule_booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYesBooking id to cancel, from list_bookings (required).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false (write) and idempotentHint=true. The description adds that the invitee is notified per settings, enhancing transparency 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?

Three sentences: purpose, behavior, and sibling guidance. Front-loaded, efficient, no redundancy.

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?

With 1 parameter, no output schema, and annotations present, the description suffices: covers usage, parameter source, and behavioral note. Nothing missing.

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 booking_id with description; the tool description adds valuable guidance to resolve via list_bookings and never guess, improving parameter meaning.

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 cancels a booking, distinguishing from reschedule_booking. It specifies the action, resource, and outcome (invitee notified).

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 when-to-use: resolve booking_id from list_bookings first; and when-not-to: use reschedule_booking for moving. Offers clear context and alternative.

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

capture_insightCapture InsightAInspect

Write a piece of customer feedback to the spine (the agent's own hand, not just reading) and return the created insight. Fires the same insight.created webhook a manual capture does — a real side-effect, so only capture genuine signal. Resolve account_id via get_customer_360 and feature_id via list_features and tie them when known; kind='opportunity' marks a prioritisable ask. Only body is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe verbatim feedback / insight text (the only required field).
kindNo'insight' = raw signal; 'opportunity' = a prioritisable ask (optional).
titleNoShort display title (optional).
account_idNoAccount id it's about, from get_customer_360 (optional).
feature_idNoFeature id to link on the spine, from list_features or pm_meta (optional).
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool fires the same insight.created webhook as a manual capture, indicating a real side-effect. This adds behavioral context beyond the annotations (which already mark readOnlyHint=false). It does not contradict any annotations.

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

Conciseness4/5

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

The description is three sentences long, with the main action front-loaded. Each sentence contributes essential information (function, side-effect, parameter guidance). It is efficiently written without 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?

Given the tool has 6 parameters (1 required) and no output schema, the description covers the return value (created insight), side-effect, and parameter sourcing. It is complete enough for a creation tool, though it could elabor on error handling or idempotency, but annotations already address idempotency as false.

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?

With 100% schema coverage, the description still adds significant value by telling how to source parameter values (e.g., account_id from get_customer_360, feature_id from list_features) and clarifying that kind='opportunity' marks a prioritisable ask. This goes beyond the schema's field 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 a specific verb 'Write' and resource 'customer feedback to the spine', clearly distinguishing it from siblings like create_feature or create_task. It also mentions returning the created insight, leaving no ambiguity about the tool's function.

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 'only capture genuine signal' and provides guidance on resolving account_id and feature_id from specific tools (get_customer_360, list_features). It explains the role of kind='opportunity', offering clear context for when to use this tool versus other creation tools, though it lacks explicit when-not-to-use statements.

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

comment_on_taskComment on TaskAInspect

Add a comment to a task, authored as the connected member, and return the created comment. Use to record progress, a decision, or a handoff — the comment is visible to the whole org, so keep it work-relevant. Resolve the task id first with get_task or list_tasks; both id and body are required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id, from list_tasks or get_task.
bodyYesComment text; posted as the connected member and visible to the whole org.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate mutation and non-destructiveness. Description adds that comments are authored as the connected member, visible to the whole org, and returns the created comment—valuable 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 wasted words, front-loaded with core action. Efficient and clear.

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, usage, prerequisites, visibility, and return value. No output schema, but the description sufficiently explains what to expect. Minor gap on format of returned comment, but 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. Description reiterates schema info (both required) with minor context (id from get_task/list_tasks, body visible). Adds marginal meaning.

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 (add a comment), the target (task), and authorship (connected member). It distinguishes from siblings like create_task or update_task by focusing on commenting.

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 when-to-use examples (record progress, decision, handoff) and prerequisites (resolve task id). No explicit when-not-to-use, 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.

create_decisionLog DecisionAInspect

Log a decision and return it. status is 'decided' (default) | 'proposed' | 'revisit'; a 'decided' one stamps the decision time. Optionally weld it to a feature / release / objective via link_type + link_id (verified in-org). Only title is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe decision in a line (required).
statusNoDecision status (optional; default 'decided').
link_idNoId of the linked feature/release/objective, from list_features / list_releases / list_objectives (optional).
link_typeNoWhat it's linked to (optional; pair with link_id).
rationaleNoWhy — the reasoning (optional).

TDQS

A3.9/5.0
Behavior4/5

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

The annotations provide no behavioral hints, so the description carries the full burden. It discloses that a 'decided' status stamps the decision time, linking is verified in-org, and the tool returns the decision. This adds meaningful behavioral context beyond the schema.

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

Conciseness5/5

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

The description is extremely concise—two sentences that front-load the primary action and then unpack key details. No redundant words or 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 create tool with 5 parameters and no output schema, the description covers the main points: required field, status options, linking behavior, and verification. It is missing details on error handling or return format, but these are not critical for agents.

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 baseline is 3. The description adds value by explaining the side effect of 'decided' status (timestamps) and that link_id is verified in-org, which is not in the schema descriptions.

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 the verb 'Log' and resource 'decision', and clarifies that the tool creates a decision record. It also distinguishes the decision's status options and linking capability, though it doesn't explicitly contrast with sibling tools like create_feature or create_objective.

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 by mentioning required and optional fields, and suggests linking to other entities. However, it does not explicitly state when to use this tool versus alternatives (e.g., update_decision or list_decisions) or provide exclusion criteria.

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

create_experimentCreate ExperimentAInspect

Create a PM experiment (a Build-Measure-Learn hypothesis) and return it. state is 'hypothesis' (default) | 'build' | 'measure' | 'learn'. Only title is required. This is the PM tracker list_experiments reads, not the analytics A/B engine.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoBuild-Measure-Learn stage (optional; default 'hypothesis').
titleYesExperiment title / the hypothesis in a line (required).
metricNoThe metric it moves, e.g. 'activation rate' (optional).
targetNoTarget change, e.g. '+5pp' (optional).
hypothesisNoThe full hypothesis (optional).
product_idNoProduct, from whoami (optional).

TDQS

A4/5.0
Behavior3/5

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

Description adds return behavior and state enumeration beyond annotations, but does not mention side effects, permissions, or limitations. Annotations already indicate non-readOnly, so the added value 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 sentences, each earning its place: first defines action and object, second clarifies state values, required field, and context against sibling tool. 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 creation, required fields, state options, and differentiates from analytics engine. Does not describe return structure or relationships, but is fairly complete given no output schema and 6 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?

Schema coverage is 100% so baseline is 3. Description reinforces that only title is required and explains state enum, but does not add significant new meaning beyond 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?

Clearly states it creates a PM experiment (a Build-Measure-Learn hypothesis) and returns it. Distinguishes from the analytics A/B engine via explicit mention.

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?

Clearly implies use for PM experiment creation and distinguishes from A/B testing tool. Does not explicitly specify when to use vs other Create tools, but 'only title is required' gives helpful usage guidance.

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

create_featureCreate FeatureAInspect

Create a feature on the product spine and return it (id, key, name, status). The key is generated from the name; status starts 'active'. product_id defaults to the org's primary product when omitted (pass one from whoami for a multi-product org). Only name is required — create a feature here before linking tasks to it with create_task.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFeature name (the only required field), e.g. 'SAML SSO'.
product_idNoProduct to create it under, from whoami (optional; the org's primary product when omitted).
descriptionNoWhat the feature is / why it matters (optional).
objective_idNoObjective (goal) to align this feature under directly when there's no intermediate initiative, from list_objectives (optional).
initiative_idNoInitiative to align this feature under for line-of-sight, from list_initiatives (optional).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are present and the description adds behavioral details beyond them: key generated from name, status starts 'active', product_id defaults to primary product. No contradictions. The description provides useful context without being redundant.

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 are front-loaded with the main purpose. Every word earns its place. No extraneous 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?

Given the tool has 5 parameters and no output schema, the description covers the key points: required fields, defaults, return values, and usage context with create_task. It does not explain error handling or edge cases, but for a create tool this 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 description coverage is 100%, so the baseline is 3. The description adds an example and clarifies the key generation and product_id default, but the parameter descriptions in the schema already adequately document each field. Minimal added 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 the verb 'create' and resource 'feature', specifies the return values (id, key, name, status), and explains key generation and default status. It distinguishes the tool from siblings like create_task by stating the order of operations.

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 on when to use this tool ('create a feature here before linking tasks to it with create_task') and explains the default behavior for product_id. It does not explicitly state when not to use, but the context is clear enough for an AI agent.

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

create_ideaCreate IdeaAInspect

Create an idea in the backlog and return it (starts with 0 votes, status 'new'). Link the evidence it came from with insight_id (from list_insights). product_id defaults to the primary product. Only title is required. Grow it with vote_idea, then promote_idea turns the winner into a roadmap feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoThe idea in more detail (optional).
titleYesIdea title (the only required field), e.g. 'Bulk-edit tasks'.
insight_idNoCustomer insight this idea came from, from list_insights (optional; welds evidence to the idea).
product_idNoProduct to scope it to, from whoami (optional; the primary product when omitted).

TDQS

A4.8/5.0
Behavior5/5

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

Discloses default behavior (status 'new', 0 votes, product_id defaults to primary product) and links to evidence via insight_id. Annotations are consistent; description adds value 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?

Three sentences, front-loaded with purpose, each sentence adds value. Efficient and well-structured.

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?

Complete for a creation tool: explains what is returned, required/optional fields, defaults, and workflow context. No output schema, but description compensates.

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 4 params (100%). Description adds extra meaning: default values for votes/status, product_id default, relationship of insight_id, and that only title is required.

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 'Create an idea in the backlog and return it'. Specific verb+resource, distinguishes from siblings like update_idea, list_ideas, vote_idea.

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 (creating an idea) and gives workflow hints ('Grow it with vote_idea, then promote_idea'). However, no explicit exclusions 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.

create_initiativeCreate InitiativeAInspect

Create an initiative — a strategic effort that groups features and rolls up to a goal — and return it. Link it to a goal with objective_id (from list_objectives) to build line-of-sight. status ∈ planned|active|paused|done|abandoned (default planned); timeframe is free text ('H2 2026'). product_id defaults to the primary product. Only name is required. Then align features to it via create_feature / update_feature (initiative_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesInitiative name (the only required field), e.g. 'Win enterprise'.
statusNoLifecycle status (optional; default 'planned').
timeframeNoFree-text timeframe, e.g. 'Q3 2026' or 'H2 2026' (optional).
product_idNoProduct to scope it to, from whoami (optional; the primary product when omitted).
descriptionNoWhat the initiative is / why it matters (optional).
objective_idNoGoal this rolls up to, from list_objectives (optional; builds line-of-sight).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations show non-readonly, non-destructive, creation behavior. Description adds defaults (status='planned', product_id from primary product), fact that it returns the initiative, and how to build line-of-sight. 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 paragraph with no fluff; first sentence captures purpose. Every sentence adds value: resource definition, linking, defaults, required field, post-creation steps.

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 key aspects for a creation tool: purpose, parameters, defaults, downstream actions. Lacks return value format (no output schema) and error handling, but sufficient for agent selection.

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 coverage 100%, and description adds extra context: explains purpose of objective_id, defaults for product_id and status, enum values, and that only name is required. Provides example 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?

Description clearly states 'Create an initiative' with specifics on what an initiative is (strategic effort grouping features, rolling up to goal). Distinguishes from siblings by mentioning linking to goals and aligning features via other 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 advises when to use: creating initiatives, linking to goals via objective_id. Provides prerequisite (use list_objectives) and follow-up actions (create_feature/update_feature). Lacks explicit when-not-to-use 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.

create_objectiveCreate Objective (OKR)AInspect

Create an objective, optionally with key results, and return it. period is free text (e.g. 'Q3 2026'); product_id and parent_id (a parent objective) are optional and verified in-org. Each key result takes name + optional unit / start_value / target_value. Only name is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObjective name (the only required field), e.g. 'Reach $50k MRR'.
periodNoFree-text period, e.g. 'Q3 2026' (optional).
parent_idNoParent objective id to nest under, from list_objectives (optional).
product_idNoProduct to scope it to, from whoami (optional).
descriptionNoContext for the objective (optional).
key_resultsNoKey results to attach (optional; up to 10).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, which aligns with the mutation action described. The description adds that fields are verified in-org, but does not cover all behavioral traits (e.g., atomicity of key result creation). No contradictions exist.

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, front-loaded with the main action, and contains no redundant 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 covers the core creation action and key constraints. While it lacks details on return format (e.g., includes objective ID), it is adequate given the schema richness and lack of output schema. It could be more complete but is not deficient.

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 meaning beyond the schema by explaining free-text period, verification of IDs, and key result structure. This helps the agent understand parameter usage beyond the basic schema properties.

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 'Create an objective, optionally with key results, and return it.' It uses a specific verb and resource and distinguishes itself from sibling tools like update_objective and list_objectives.

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 optional fields and constraints (e.g., period is free text, product_id/parent_id verified in-org). However, it does not explicitly state when to use this tool versus alternatives like update_objective, though it is implied.

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

create_pageCreate PageAInspect

Create a Page (in-product doc / PRD on the spine) and return it (id, title). body is plain text — blank-line-separated blocks become paragraphs; omit it for a blank page. title defaults to 'Untitled'. product_id / parent_id (a parent page) are optional and verified in-org.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoPage content as plain text; blank lines separate paragraphs (optional).
iconNoAn emoji icon for the page (optional).
titleNoPage title (optional; 'Untitled' when omitted).
parent_idNoParent page id to nest under, from list_pages (optional).
product_idNoProduct to scope it to, from whoami (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds context about body parsing, default title, and verification of product_id/parent_id in the organization, which goes 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 very concise, using two sentences that front-load the core action and return value, then details parameters efficiently 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?

Given 5 optional parameters, no output schema, and existing annotations, the description adequately covers creation behavior, return format, and key constraints. It lacks details on the icon parameter beyond being optional, but overall is 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%, so baseline is 3. The description adds value by explaining body formatting (blank lines create paragraphs), title default, and that product_id/parent_id are verified in-org, which the schema's descriptions (just 'optional') do not convey.

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 ('Create') and resource ('a Page'), specifies it returns id and title, and explains the body format and defaults. It distinguishes itself from siblings like update_page and list_pages 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 Guidelines4/5

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

The description explains when to use the tool (to create a page), but does not explicitly state when not to use it or mention alternatives like update_page. However, the sibling context makes the distinction clear.

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

create_releaseCreate ReleaseAInspect

Create a release and return it (id, version, changelog, released_at). Omit released_at for an unreleased/draft entry. product_id defaults to the org's primary product. Only version is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesVersion string (required), e.g. 'v2.4.0'.
changelogNoWhat shipped (optional).
product_idNoProduct, from whoami (optional; the primary product when omitted).
released_atNoShip time, ISO 8601 (optional; omit for a draft).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations (all false) indicate the tool is not read-only, not idempotent, not destructive, and not open-world. The description aligns by stating it 'Create a release', implying a side effect. It adds behavioral details about return fields and draft behavior, but does not discuss permissions, rate limits, or potential failures. The description carries some burden but is not exhaustive.

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

Conciseness5/5

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

The description is two efficient sentences. The first sentence front-loads the primary purpose and output fields. The second sentence provides essential parameter guidance. No 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?

Given no output schema, the description explicitly lists the return fields. It covers all parameter semantics and default behavior. However, it omits potential error scenarios (e.g., duplicate version) and lifecycle interactions (e.g., effect on related entities). Still, for a create tool, it is adequately complete.

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 meaning beyond property descriptions: it clarifies the default for 'product_id' and the semantics of omitting 'released_at' for drafts. This compensates for the schema's lack of such context.

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: 'Create a release and return it (id, version, changelog, released_at).' It uses a specific verb ('Create') and resource ('release'), and distinguishes from siblings like 'update_release' by being the creation counterpart.

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 omit 'released_at' for drafts and notes that 'product_id' defaults to the primary product. It also specifies that only 'version' is required. However, it does not explicitly advise when to use this tool over alternatives like 'update_release' or 'list_releases', which would strengthen this dimension.

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

create_sprintCreate SprintAInspect

Create a sprint and return it (id, name, goal, state, dates). state is 'future' (default) or 'active'; start_date / end_date are optional ISO 8601. Only name is required. Schedule tasks into it by passing the returned sprint id as sprint_id on create_task / update_task.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoThe sprint goal (optional).
nameYesSprint name (the only required field), e.g. 'Sprint 12'.
stateNoLifecycle state (optional; default 'future').
end_dateNoEnd, ISO 8601 (optional).
start_dateNoStart, ISO 8601 e.g. '2026-07-15T00:00:00Z' (optional).

TDQS

A4.4/5.0
Behavior5/5

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

The description clearly discloses that the tool creates a resource (consistent with readOnlyHint=false), returns specific fields, and sets a default state. It adds behavioral context beyond annotations, such as mentioning that start_date/end_date are optional ISO 8601 strings and that the returned id can be used for task scheduling. 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 sentences, each packing essential information without redundancy. The main action and return are front-loaded, and the post-creation usage tip is a natural extension.

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 lack of an output schema, the description compensates by listing return fields. It provides sufficient context for a straightforward creation tool with 5 parameters and full schema descriptions. Minor gaps: no mention of error conditions or permissions, but not critical 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 description primarily reinforces schema info (name required, state default). It adds marginal value by explicitly stating 'Only name is required' and hinting at the purpose of the return value (for task scheduling), but does not enrich parameter meaning beyond what the 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?

The description starts with a specific verb-resource pair ('Create a sprint') and lists the returned fields (id, name, goal, state, dates). It clearly distinguishes from sibling tools like update_sprint and list_sprints by focusing solely on creation and hinting at downstream integration with create_task/update_task.

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 'Only name is required' and explains optional fields and defaults (state defaults to 'future'). It provides post-creation guidance on scheduling tasks via sprint_id. However, it does not explicitly state when to prefer this tool over alternatives like update_sprint or list_sprints.

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

create_taskCreate TaskAInspect

Create a task and return the created task. list_id defaults to the org's first list when omitted; feature_id / insight_id link it to the spine and sprint_id schedules it into a sprint. Resolve list/status/feature/insight/member ids via pm_meta and sprint_id via list_sprints — never guess them. Only title is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title (the only required field).
list_idNoList to create the task on; resolve the id via pm_meta (optional; the org's first list when omitted).
priorityNoPriority level, urgent highest (optional).
sprint_idNoSchedule into a sprint (optional; resolve the id via list_sprints).
status_idNoInitial status; resolve the id via pm_meta (optional).
feature_idNoFeature id to link on the spine, from pm_meta or list_features (optional).
insight_idNoInsight id to link on the spine, from list_insights (optional).
descriptionNoTask body / details (optional).
assignee_member_idsNoMember ids to assign, from pm_meta (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate the tool is not read-only and not destructive. The description adds behavioral context: defaults (list_id), linking to spine/sprint, and that only title is required. 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?

The description is two sentences with no wasted words. First sentence states purpose and return value; second sentence provides critical usage guidance. 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?

Given 9 parameters, 100% schema coverage, and no output schema, the description adds sufficient integration context (ID resolution, defaults). It does not cover error handling or response format, but for a creation tool the description 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?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds value by explaining defaults (list_id) and ID resolution methods, which goes beyond 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 clearly states the tool creates a task and returns it, with specific verb-resource pairing. It distinguishes from siblings like update_task and delete_task by focusing on creation. The description also clarifies default behavior and linking parameters.

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 explicit guidance on how to resolve IDs via pm_meta and list_sprints, and warns against guessing. It implicitly directs when to use this tool (creation) versus siblings, but lacks an explicit exclusion statement for alternative tools.

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

delete_taskDelete TaskA
DestructiveIdempotent
Inspect

PERMANENTLY delete a task and return the deleted id. Irreversible — there is no undo. Cascades: the task's comments, assignees, tags, attachments, time entries, outcomes, events, relations, and its SUBTASKS are deleted with it; experiment/insight/meeting links to it are cleared. Resolve the id via list_tasks and confirm intent first — prefer update_task (e.g. move it to a done/archived status) when you only want it off the active board.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id to permanently delete, from list_tasks (required).
confirmYesSafety gate — must be exactly "DELETE". Required so a bare task id can never trigger a permanent, cascading delete. Confirm with the human FIRST, in plain language naming the task, then pass it.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description details irreversible cascading deletion of comments, assignees, tags, attachments, time entries, outcomes, events, relations, subtasks, and clearing of experiment/insight/meeting links. It also discloses the return value (deleted id), providing essential safety context. 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?

Compact three-sentence description, front-loaded with the critical permanence warning. Every sentence earns its place—irreversibility, cascading effects, and usage alternatives—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 destructive mutation tool, the description covers preconditions (resolve id, confirm), cascading effects, and return value despite lacking an output schema. The rich annotations and schema complement this well, making it effectively complete.

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 telling how to obtain the id (via list_tasks) and emphasizing the need for confirmation, which complements the schema's confirm parameter description. This slight extra guidance justifies a 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 opens with 'PERMANENTLY delete a task and return the deleted id,' giving a specific verb, resource, and outcome. It clearly distinguishes itself from siblings like update_task and list_tasks by emphasizing irreversibility and deletion scope.

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 instructs to resolve the id via list_tasks and confirm intent first, and recommends update_task as a safer alternative when only removing from the active board. This provides clear when-to-use and when-not-to-use guidance with a named alternative.

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

get_codebase_mapCodebase MapA
Read-onlyIdempotent
Inspect

The auto-generated codebase brain map for one product: a plain-language summary, the module/node/edge counts, when the map was last generated, and the labels of the modules it found. Read-only; returns the latest generated map, empty when none has been generated for the product yet. Use it to ground 'where in the code does X live?' questions and to see how the codebase splits into modules before discussing architecture or scoping engineering work. Optional product_id, from whoami; omit for the org's primary product.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds context that the map is auto-generated and returns empty when not yet generated, which is useful beyond the annotations. 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.

Conciseness4/5

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

The description is well-structured with a clear opening, usage guidance, and parameter note. It is slightly verbose but every sentence adds value; could be tightened but still effective.

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?

With no output schema, the description fully explains the return content (summary, counts, etc.) and edge case (empty when not generated). It covers the single optional parameter and provides usage context, making it complete for this 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 coverage is 100% with a description for product_id. The description adds that it comes from whoami and omission defaults to the org's primary product, providing 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 clearly states the tool returns an 'auto-generated codebase brain map for one product' and lists its contents (summary, counts, timestamps, module labels). It distinguishes from all sibling tools by being the only codebase-map-focused 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 advises using it to answer 'where in the code does X live?' questions and before discussing architecture. It also explains the optional product_id behavior. However, it doesn't explicitly state when not to use it or name alternatives, though no direct alternatives exist among siblings.

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

get_conversationRead Support ConversationA
Read-onlyIdempotent
Inspect

Read one support conversation: the visitor plus the full message thread, oldest first. Read-only. Resolve the conversation_id first with list_conversations — never guess it.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYesConversation id, from list_conversations.

TDQS

A5/5.0
Behavior5/5

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

Description adds read-only affirmation (aligns with readOnlyHint) and details ordering (oldest first) and content (visitor + thread), complementing 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, each sentence necessary 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?

Despite no output schema, description explains return content and ordering, and parameter semantics are fully addressed. No gaps.

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 describes conversation_id as from list_conversations; description reinforces this with explicit instructions and warning, adding significant 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 clearly states the tool reads a support conversation including visitor and full message thread, oldest first. It distinguishes from list_conversations (which lists conversations) and other siblings.

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 instructs to resolve conversation_id using list_conversations and never guess it, providing clear prerequisite and prohibition.

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

get_customer_360Customer 360A
Read-onlyIdempotent
Inspect

Everything about ONE customer, resolved by id, email, domain, or company name: profile, subscription + MRR, how many users sit under the account, and their verbatim feedback. Read-only; returns the matched account, or an empty result when nothing matches the query. The money + people + voice join on one record — call it before answering anything about a specific account.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe account to resolve: an account id, a user's email, a company domain (e.g. 'acme.com'), or a company name.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, and the description confirms 'Read-only'. It also adds that it returns an empty result on no match and that data is joined from multiple sources, beyond what annotations cover.

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 fluff. It front-loads the core purpose and scoping, 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.

Completeness5/5

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

Despite no output schema, the description sufficiently explains the return structure (profile, subscription+MRR, users, feedback) and the join concept. This covers the agent's need for outcome 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?

The schema covers the single parameter 'query' with 100% description of its possible values (id, email, domain, company name). The description adds usage context but no new parameter-level detail, 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 everything about one customer using multiple identifiers (id, email, domain, company name) and lists specific fields (profile, subscription+MRR, users, feedback). This distinguishes it from sibling tools like get_conversation or list_tasks.

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 calling it 'before answering anything about a specific account' and notes it is read-only. While it doesn't explicitly exclude other use cases, the 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.

get_device_candidatesDevice-Graph Identity CandidatesA
Read-onlyIdempotent
Inspect

Clusters of ≥2 end_users seen on the same device: 'anon_bridge' (high confidence — an anonymous visitor later identified) or 'device_shared' (low confidence — review only). Read-only; returns the candidate clusters, empty when none are found. Use it to find merge targets, then act with merge_end_users.

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 discloses the tool is 'Read-only' and returns 'empty when none are found.' It provides additional context beyond annotations by explaining the two cluster types and their confidence levels. No contradictions with annotations (readOnlyHint=true, destructiveHint=false).

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 core function, and contains no redundant 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?

Given no output schema, the description explains what is returned (clusters of end users with two types) and that it can be empty. This is mostly complete, though it could explicitly state the return type (e.g., a list).

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 schema coverage is 100%. The description implicitly clarifies that no input is needed, which aligns with the empty schema. No additional parameter semantics 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 that the tool returns clusters of end users seen on the same device, distinguishing two types ('anon_bridge' and 'device_shared') with confidence levels. It also explicitly ties to the use case of finding merge targets, differentiating it from sibling tools like merge_end_users.

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 guides usage: 'Use it to find merge targets, then act with merge_end_users.' This provides clear context for when to use this tool vs. alternatives. It lacks explicit when-not-to-use scenarios, but the clear purpose makes the guidance sufficient.

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

get_pageRead PageA
Read-onlyIdempotent
Inspect

Read one Page (doc / PRD) by id and return its full content. Read-only. Resolve the id first with list_pages — never guess it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage id, from list_pages.

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds 'Read-only' and states it returns 'full content', reinforcing safe behavior. 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 the action, no superfluous 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?

Simple read tool with one parameter, annotations cover behavioral traits fully, and description adequately explains output. Complete for its complexity.

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 has 100% coverage with a 'from list_pages' hint, and the description adds further context that the id must come from list_pages, complementing 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 'Read one Page' with specific resource 'Page (doc / PRD)' and outcome 'return its full content'. Distinguishes from sibling tools like list_pages (listing) and update_page (writing).

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 instructs to 'Resolve the id first with list_pages — never guess it', providing clear prerequisite and a constraint on usage.

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

get_pm_playbookPM PlaybookA
Read-onlyIdempotent
Inspect

How to operate as a product manager on AIOProductOS. No arguments and no side effects — returns the same operating guide as plain text every call (deterministic): how to ground in the product brain, keep work welded to the spine (insight→feature→task→outcome), prioritise on evidence (affected accounts + MRR + reach), and what 'done' means. Call it FIRST, before planning or prioritising, to load the house rules the other tools assume.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds that it has 'no side effects', is 'deterministic', and describes the content of the guide. This goes beyond annotations by detailing what the guide contains and how it behaves, with 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.

Conciseness4/5

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

Single paragraph, front-loaded with purpose and usage. The description is concise but slightly lengthy due to listing guide contents. Every sentence adds value, though some could be tighter. Still, it is well-structured.

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 parameters and no output schema, the description is complete. It explains the return value (plain text guide), determinism, and a high-level summary of content. Rich annotations cover behavioral aspects. No further information is needed.

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 (100% coverage). The description briefly states 'No arguments', which is sufficient. Baseline for 0 parameters is 4, and no additional parameter semantics are needed or provided.

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 an operating guide for PM on AIOProductOS, a specific verb+resource. It distinguishes itself from sibling tools by being deterministic, having no arguments, and being a 'first call' prerequisite.

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 'Call it FIRST, before planning or prioritising', providing clear when-to-use. Does not explicitly exclude alternatives or state when not to use, but the 'FIRST' implies it is a prerequisite. No explicit alternative naming, but context with siblings suggests it loads rules assumed by others.

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

get_product_brainProduct Brain SnapshotA
Read-onlyIdempotent
Inspect

A grounded snapshot of the org's product so YOU can reason about it. Returns one JSON object with: revenue + top paying accounts (ranked by MRR), web + product analytics headline metrics, the feature list, recent verbatim customer signals (newest first), and open-work counts — each block empty when that source isn't flowing yet. The time-windowed sections (revenue, cost, web + product analytics, feature usage) honour window (7 | 30 | 90 days, default 30). Single call, no pagination. Start here to ground, then go deeper with the dedicated list_* reads and the analytics tools. Optional product_id (the org's primary product when omitted).

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoTime window in days for the revenue, cost, and analytics sections (optional; 7, 30, or 90; default 30).
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that blocks are empty when sources aren't flowing and that time-windowed sections honor the `window` parameter. 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.

Conciseness4/5

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

Description is moderately sized but every sentence contributes value. It is well-structured, starting with the purpose, then detailing return content, then usage guidance. Could be slightly tighter but effective.

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 adequately explains the return structure (JSON with blocks) and handles both parameters. It covers edge cases (empty blocks) and dependencies (window). Sufficient for a single-call 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%, with both parameters already described. The description adds minimal extra meaning: it explains which sections the window applies to and that product_id defaults to primary product. 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 uses specific verbs ('get a grounded snapshot') and clearly states it returns revenue, accounts, analytics, features, customer signals, and work counts. It distinguishes from sibling tools by advising to 'start here to ground, then go deeper with dedicated list_* reads.'

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 tells when to use this tool ('start here to ground') and directs to alternatives ('go deeper with dedicated list_* reads and analytics tools'). Also notes single call, no pagination, and optional product_id.

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

get_retentionCohort RetentionA
Read-onlyIdempotent
Inspect

Weekly cohort retention for the product: users grouped by first-seen week (one row per cohort, newest last), with the share still active each subsequent week — a lower-triangular grid. Needs product-analytics events flowing; returns empty cohorts when the product has none. window_days default 56 = 8 weekly cohorts (min 7; roughly one extra cohort per added 7 days). product_id optional (primary product when omitted).

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id, from whoami (optional; the org's primary product when omitted).
window_daysNoLookback window in days (optional; default 56 = 8 weekly cohorts).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent; the description adds the specific retention structure, window_days meaning, and product_id optionality, providing useful 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 a single paragraph that efficiently conveys the core concept, structure, and key parameters without fluff. Every sentence adds value.

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 parameter set (2 optional params) and no output schema, the description fully covers what the tool does, when to use it, and what to expect. No 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?

Schema coverage is 100%, but the description adds value by explaining the default window_days in terms of cohorts (56 = 8 weekly) and the optionality of product_id (primary product when omitted).

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 'weekly cohort retention' with a specific structure ('lower-triangular grid'), and it distinguishes from siblings by its analytic nature (focused on retention metrics).

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 specifies prerequisites ('Needs product-analytics events flowing') and behavior when conditions aren't met ('returns empty cohorts'), providing context for when to use the tool.

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

get_roadmap_driftRoadmap DriftA
Read-onlyIdempotent
Inspect

Planned vs shipped features over a window: a drift score (0-100, 100 = perfect alignment), counts (planned / shipped / on-time / slipped / unplanned / orphaned), median slip days, and the top slipped + unplanned ships. Deterministic, no LLM cost. window = week | month | quarter (default quarter); optional product_id. Read-only; returns the drift report, zeroed when nothing was planned or shipped in the window. Use it in planning reviews to check delivery against the roadmap, then open the slipped features with list_features.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoLookback window to compare planned vs shipped over (optional; default quarter).quarter
product_idNoProduct id, from whoami (optional; spans all the org's products when omitted).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds valuable context: deterministic, no LLM cost, edge case 'zeroed when nothing was planned or shipped'. Enhances understanding 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?

Four sentences, front-loaded with core output, then behavioral details and usage advice. 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.

Completeness5/5

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

No output schema, but description fully lists return fields (drift score, counts, median slip days, top slipped/unplanned ships) and covers edge case. Complete for an AI agent to understand and use the 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 coverage is 100%, but description adds functional context: explains window options with default quarter, product_id optional and from whoami, and clarifies that omitting product_id spans whole org. Provides usage-relevant meaning.

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 tool returns 'planned vs shipped features over a window' with specific metrics (drift score, counts, median slip days). Distinguishes from siblings by naming a follow-up action with list_features, implying uniqueness in providing drift analysis.

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 recommends using it in 'planning reviews to check delivery against the roadmap' and suggests a next step. Lacks explicit when-not or alternatives, but context is clear.

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

get_taskGet TaskA
Read-onlyIdempotent
Inspect

Get one task by id and return it with its full comments and assignees. Read-only. Resolve the id first with list_tasks — never guess it; pair with update_task or comment_on_task to act on what you read.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id, from list_tasks.

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds behavioral detail: returns full comments and assignees, reinforces read-only nature, and emphasizes id provenance. 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. First sentence states purpose, second gives actionable guidance. Front-loaded with clear verb and object.

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 read tool with rich annotations, this description covers purpose, return content, id sourcing, and composition with sibling tools. No output schema needed. Completely adequate for effective selection and invocation.

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 100% of parameters with description 'Task id, from list_tasks.' Description adds crucial context by explicitly stating 'Resolve the id first with list_tasks — never guess it,' clarifying the parameter's source and 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?

Clearly states 'Get one task by id' with specific resource and scope. Specifies return includes 'full comments and assignees'. Distinguishes itself from sibling tools like update_task and comment_on_task by contrasting read vs. write roles.

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 resolve id with list_tasks first and never guess it. Also instructs to pair with update_task or comment_on_task for subsequent actions, providing clear when-to-use and 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.

get_weekly_signal_memoWeekly Signal MemoA
Read-onlyIdempotent
Inspect

The Weekly Product Signal Memo — the last 7 days of customer signal clustered into themes (insights grouped by feature, ranked by the revenue behind them) with verbatim quotes, week-over-week deltas (new / repeated / stronger / weaker), concluded experiments, and shipped releases. Deterministic — every count is off real rows, no fabricated quotes. Optional week (ISO 'YYYY-Www') for a past week; generate=1 rebuilds + persists the current week now. Read-only apart from that rebuild; returns the persisted memo, empty when the requested week has none. Open a weekly review with it, then drill into a theme with list_insights.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekNoISO week to fetch, format 'YYYY-Www' e.g. '2026-W27' (optional; the latest persisted week when omitted).
generateNoPass '1' to rebuild and persist the current week's memo now instead of reading the stored one (optional).

TDQS

A4.5/5.0
Behavior4/5

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

The description adds that the memo is deterministic (based on real rows, no fabricated quotes) and read-only except for the generate rebuild. This complements the annotations (readOnlyHint, idempotentHint) by explaining the rebuild behavior and the absence of quotes. It provides useful 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.

Conciseness4/5

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

The description is three sentences long and front-loaded with the core output. Each sentence provides distinct value (output content, behavioral traits, usage guidance). It could be slightly more concise, but it is well-structured and informative.

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 complexity (clustered themes, multiple data categories) and the absence of an output schema, the description thoroughly explains what the memo contains (themes, quotes, deltas, experiments, releases) and its behavior (deterministic, empty when none). This is complete for the user to understand what to expect.

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 description adds significant meaning beyond the input schema: it specifies the ISO week format ('YYYY-Www'), explains that generate='1' rebuilds and persists the memo, and clarifies that both are optional. This fully compensates for the schema's simple 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 returns the Weekly Product Signal Memo, a clustered summary of customer signals with themes, deltas, experiments, and releases. It distinguishes itself from the sibling 'list_insights' by indicating that list_insights is used for drilling into a theme after viewing the memo.

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 suggests using the tool to open a weekly review and then drill into a theme with list_insights. It explains the optional week and generate parameters, providing clear context for usage. However, it does not explicitly state when not to use it or list alternatives beyond list_insights.

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

list_artifact_versionsArtifact VersionsA
Read-onlyIdempotent
Inspect

Version history of an artifact's AI reviews (F5): every review run is a version with its score, model, cost, who/what generated it, and whether it's the current one. Read-only; returns the version list, empty when the artifact has never been reviewed. Use it to see how a feature/experiment/page's review changed over time and to pick the version_id to pass to revert_to_version. Takes the same target_id/target_type you'd pass to review_artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYesId of the reviewed feature/experiment/page — the same id passed to review_artifact.
target_typeYesWhat kind of artifact target_id is: a feature (spec), an experiment (plan), or a page (doc/PRD).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint false, idempotentHint true. Description adds that it's read-only and returns version list with details (score, model, cost, etc.), empty when never reviewed. 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 paragraph of three sentences, front-loaded with purpose, includes all necessary information without redundancy 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?

No output schema, so description bears the burden. It mentions return fields (score, model, cost, etc.), empty case, and relationship to revert_to_version. Lacks pagination or ordering details, but adequate for a list endpoint.

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. Description adds value by cross-referencing parameters to review_artifact, e.g., 'takes the same target_id/target_type you'd pass to review_artifact.' This contextual tie-in is helpful.

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 lists version history of AI reviews for an artifact, specifying the verb 'list' and resource 'artifact versions'. Distinguishes from siblings like review_artifact and revert_to_version by explaining it provides data for the latter.

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: to see review changes over time and to pick version_id for revert_to_version. Also ties parameters to review_artifact. No negative guidance, 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.

list_bookingsList BookingsA
Read-onlyIdempotent
Inspect

Upcoming confirmed bookings on the org's scheduling. Read-only; returns the bookings, empty when none are scheduled. Pass include='all' for full history.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoPass 'all' for history (optional).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive. The description adds context that results are empty when none are scheduled and clarifies the parameter's effect on history retrieval. 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.

Conciseness4/5

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

Three short sentences with no fluff. The first sentence is a noun phrase instead of an active verb phrase, slightly reducing clarity, but overall very 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's simplicity (1 optional param, no output schema), the description covers the main purpose, parameter behavior, and return scenario. Adequate for an agent to use 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% for the only parameter. The description repeats the schema's instruction ('Pass include='all' for history') with slight rewording, adding marginal value. Falls at 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 action (list) and resource (bookings), specifying 'upcoming confirmed' which differentiates it from other list tools. It also explains the effect of the optional parameter.

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 viewing upcoming bookings and mentions the include parameter for history, but does not provide explicit guidance on when not to use this tool or direct comparisons to sibling tools like cancel_booking or reschedule_booking.

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

list_channelsList Comms ChannelsA
Read-onlyIdempotent
Inspect

List the team Comms channels the connected member belongs to (membership-scoped). Read-only; returns the member's channels, empty when they belong to none. Call read_channel with a channel_id to read one.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds the detail of returning empty when member belongs to no channels, which is useful 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 concise sentences. Front-loaded with primary purpose, then usage note. 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?

Fully covers the tool's behavior given zero parameters and no output schema. Mentions empty result and directs to related tool for single read.

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, so baseline 4 applies. 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 the tool lists team Comms channels scoped to membership, specifies read-only, and notes empty case. It distinguishes from read_channel by suggesting using that tool to read a single channel.

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 directs to use read_channel for reading a single channel, providing a clear alternative. Does not explicitly state 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.

list_conversationsList Support ConversationsA
Read-onlyIdempotent
Inspect

List support-chat conversations in the inbox (open + snoozed by default; pass status='all' to include closed). Read-only; returns the matching conversations, empty when the inbox is clear. Optional product_id to scope to one product; open a full thread with get_conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoPass 'all' to include closed (optional).
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool is 'Read-only' and returns 'empty when the inbox is clear', which is useful behavioral info beyond annotations. 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.

Conciseness4/5

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

The description is two sentences, front-loading the main purpose and default behavior. It is efficient and well-structured, with 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?

The description explains the return value (matching conversations, empty when clear) and covers optional parameters. With no output schema, this is sufficient. The tool is simple and the description adequately supports selection among siblings.

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 context for both parameters: for status, it explains the effect of passing 'all'; for product_id, it clarifies the source (from whoami) and default behavior. This adds meaningful guidance.

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 'support-chat conversations in the inbox', and the default scope (open + snoozed). It differentiates from siblings like get_conversation by noting that opening a full thread is a separate 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?

The description provides clear usage context and mentions an alternative: 'open a full thread with get_conversation'. It does not explicitly state when not to use, but the context is sufficient for correct selection.

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

list_decisionsList DecisionsA
Read-onlyIdempotent
Inspect

List the org's logged decisions — title, rationale, status, and any linked feature/release/objective — newest first. Returns an empty list when none. Optional status filter (decided | proposed | revisit). Resolve a decision id here before update_decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (optional).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds return order (newest first), empty list behavior, and field listing, which go 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 the core functionality, then usage guidance. Every sentence is valuable 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?

Given the low complexity (1 optional param, no output schema), the description covers all needed: result structure, ordering, filtering, and relationship to update_decision.

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 one enum parameter. Description repeats the filter options and enum values, adding no new semantic meaning beyond what the 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 verb 'list', resource 'decisions', key fields returned (title, rationale, status, linked items), ordering (newest first), and empty list behavior. Distinguishes from update_decision by noting resolution 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?

Provides explicit guidance to resolve a decision id before using update_decision. Context is clear for a list-and-filter tool, but no explicit alternatives or when-not scenarios are given.

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

list_experimentsList ExperimentsA
Read-onlyIdempotent
Inspect

List product experiments. Returns an array where each experiment carries its hypothesis, the metric it moves, the target, its current state, and — once concluded — the verdict and the decision that came out. Read-only; empty when none match. Use it to see what's being tested before proposing new work, and cite a concluded verdict as evidence when you create_task or review_artifact. Optional product_id (from whoami) and state filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOnly experiments in this state, e.g. 'running' (optional).
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds: 'Read-only; empty when none match' and describes the return structure (array of experiments with fields). This provides behavioral detail beyond annotations, though it doesn't discuss pagination or rate limits. 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.

Conciseness4/5

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

The description is fairly concise (three sentences) but could be more structured. It front-loads the main purpose and then adds details and usage guidance. No redundant phrases.

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 simple nature of the tool (list with two optional filters), the description covers purpose, return structure, parameters, and usage context. It lacks explicit enumeration of state values or pagination, but these are minor gaps. Overall sufficient for correct invocation.

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; the description reinforces parameter meaning by noting 'from whoami' for product_id and 'e.g. running' for state. This adds context beyond the schema's brief descriptions. However, it does not enumerate all possible state values.

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 product experiments' and details the return structure (hypothesis, metric, target, state, verdict, decision). It distinguishes from sibling tools like 'create_experiment' and 'update_experiment' by emphasizing the read-only nature and specific use case (seeing what's being tested).

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: 'see what's being tested before proposing new work' and 'cite a concluded verdict as evidence when you create_task or review_artifact'. Also explains optional filters (product_id, state) and the empty result case. No contradictions with sibling tools.

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

list_featuresList FeaturesA
Read-onlyIdempotent
Inspect

The product's feature catalogue with description, status, and when each was last touched — richer than pm_meta (which is just id+name for resolution). Read-only; returns the matching features, empty when none. Optional product_id and free-text q over name+key; use a feature id from here to link a task or insight on the spine.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text search over feature name + key (optional).
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it returns empty results when none match, but otherwise doesn't reveal behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

Two sentences, front-loaded with key purpose and differentiation. No wasted words; structure 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?

Complete for a simple list tool with good schema and annotations. Covers return behavior and parameter usage. No pagination info, but acceptable given tool 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 coverage is 100% with descriptions, but description adds context: q is free-text search over name+key, and product_id scopes to product from whoami. This adds meaningful detail 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?

Description clearly states the tool lists the product's feature catalogue with description, status, and last touched. It distinguishes itself from sibling pm_meta by noting pm_meta provides only id+name for resolution.

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 it's read-only and returns empty when no matches, and describes optional parameters. Provides contrast with pm_meta but doesn't explicitly exclude other alternatives 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.

list_ideasList IdeasA
Read-onlyIdempotent
Inspect

List the org's ideas — the native, votable idea backlog — ranked by vote count (highest first). Each returns its title, status, vote count, author, and the feature it was promoted to (if any). status ∈ new|under_review|planned|promoted|declined (optional filter). Read-only; empty when none. Ideas are distinct from insights: an idea is a proposal a team votes on; an insight is a piece of customer evidence. Resolve an idea id here before update_idea / vote_idea / promote_idea.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (optional).
product_idNoOnly ideas for this product, from whoami (optional).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint; description adds that it returns empty when none and explains ranking and fields, providing 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?

Every sentence adds value, no waste. Well-structured with clear sections for behavior, return fields, filtering, and usage hints.

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 fully explains return fields, filtering options, read-only nature, and relationship to other tools. Complete for a list 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 already describes both parameters (100% coverage), but description adds clarity on status enum values and optional nature, slightly improving understanding.

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 lists ideas ranked by vote count, includes details on returned fields, and distinguishes from 'insights' by explaining the difference. Very specific verb and resource.

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 read-only and suggests using this to resolve an idea ID before mutating tools. Mentions distinction from insights, but doesn't explicitly list cases 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.

list_identity_mergesIdentity Merge HistoryA
Read-onlyIdempotent
Inspect

List the org's end-user merge history. Returns an array of merge events, newest first, where each carries its event id, kind (merge or unmerge), the target and source end-user ids, the reason, who ran it, when, and — for merges — whether it has already been reverted. Read-only; empty when no merges have ever run. Use it to audit identity changes and to find the event id to pass to unmerge_end_users (only un-reverted merges can be undone).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to return (optional; default 50, max 200).

TDQS

A4.5/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: 'Read-only; empty when no merges have ever run.' and details the return structure. It confirms idempotent and non-destructive behavior consistent with annotations, with 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 concise, front-loaded with the core purpose, and each sentence adds value. It efficiently states the action, return format, and usage guidance without extraneous text.

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 optional parameter, no output schema), the description is complete. It explains what is returned, the ordering (newest first), and how to use the output (to find event id for unmerge). No 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?

The input schema already fully documents the single parameter (limit) with its description covering default, max, min. The tool description adds no additional parameter semantics, 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 the tool lists the org's end-user merge history, returning an array of merge events with specific fields (id, kind, target/source user ids, reason, etc.). It distinguishes itself from sibling tools like merge_end_users and unmerge_end_users by being a read-only listing operation.

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 usage context: 'Use it to audit identity changes and to find the event id to pass to unmerge_end_users (only un-reverted merges can be undone).' It implies when to use but doesn't explicitly state when not to use, though the read-only nature is clear.

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

list_initiativesList InitiativesA
Read-onlyIdempotent
Inspect

List the org's initiatives — the strategic layer between goals and features (goal → initiative → feature → epic → release). Each returns its name, status, timeframe, the objective it rolls up to (if any), and its linked-feature count. Read-only; empty when none. Resolve an initiative id here before create_feature / update_feature (initiative_id) or update_initiative.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoOnly initiatives for this product, from whoami (optional; all products when omitted).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying return fields (name, status, timeframe, objective, linked-feature count) and noting 'empty when none', enhancing transparency 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 concise (three sentences), front-loads the purpose, and every sentence adds value without redundancy.

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 read-only list tool with good annotations and one optional parameter, the description covers purpose, hierarchy, return fields, usage workflow, and safety, leaving no 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%, and the description does not add extra meaning for the single parameter 'product_id' beyond what the schema's description already provides. 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 it lists the org's initiatives and places them in a hierarchy (goal → initiative → feature → epic → release), distinguishing from siblings like create_initiative or update_initiative.

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 resolve an initiative id before using create_feature/update_feature or update_initiative, providing clear usage context. Does not explicitly state when not to use, but the guidance is strong.

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

list_insightsSearch InsightsA
Read-onlyIdempotent
Inspect

Search the captured insight backlog (voice of customer) — the read twin of capture_insight. Read-only; returns the matching insights newest first, empty when nothing matches. Filters: status, kind (insight|opportunity), feature_id, account_id, product_id, and free-text q over title+body; limit default 50, max 200. Use it to survey the evidence behind a feature or account before prioritising — resolve feature_id via list_features and account_id via get_customer_360.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text search over title + body (optional).
kindNo'insight' = raw signal; 'opportunity' = a prioritisable ask (optional).
limitNoMax rows to return (optional; default 50, max 200).
statusNoOnly insights in this workflow status (optional).
account_idNoOnly insights about this account; resolve the id via get_customer_360 (optional).
feature_idNoOnly insights linked to this feature; resolve the id via list_features or pm_meta (optional).
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already mark it as read-only and idempotent. Description adds ordering, empty results, limit bounds, and filtering details, providing useful 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?

Two sentences with front-loaded purpose and structured details; 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 read-only, filtered list tool with no output schema, the description covers all necessary context: ordering, empty results, limit bounds, filter parameters, and cross-references to resolve IDs.

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, but description adds usage hints like resolving IDs via other tools and default/max limits, 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?

Description clearly states the tool searches the insight backlog, is read-only, returns results newest first, and distinguishes itself as the 'read twin of capture_insight'.

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 tells when to use (survey evidence before prioritising) and how to resolve IDs via list_features and get_customer_360, differentiating from capture_insight.

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

list_objectivesList OKRsA
Read-onlyIdempotent
Inspect

List the org's OKRs. Returns an array of objectives, each with its key results and live progress (0..1 between start and target), so you can prioritise toward what the team is actually trying to move. Read-only; empty when none are set. Read it before prioritising — tie proposed tasks to the objective they move, and cite the live progress when arguing priority. Optional product_id, from whoami.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.5/5.0
Behavior4/5

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

Description adds behavioral details beyond annotations: explains return structure (objectives with key results and progress 0..1), confirms read-only, and explains empty case. 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, then usage guidance. Every sentence adds value; 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?

Given no output schema, description fully explains what the tool returns and how to use it. For a simple list tool with one optional param, all needed context is provided.

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 for one parameter; description adds value by noting the source ('from whoami') and that it's optional, beyond the schema's own description.

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 'List the org's OKRs' with specific verb and resource. Distinguishes from sibling tools like create_objective and update_objective by focusing on reading objectives for prioritization.

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 instructs 'Read it before prioritising' and advises to tie tasks to objectives and cite progress. No when-not or alternatives mentioned, but usage context is clear.

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

list_pagesList PagesA
Read-onlyIdempotent
Inspect

List the in-product docs / PRDs (Pages) on the spine. Returns an array of pages with title + id only — no content, so it stays cheap to scan. Read-only; empty when none exist. Use it to find the page id, then read the full content with get_page; pair with review_artifact (target_type 'page') to critique a draft PRD. Optional product_id, from whoami.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. Description adds 'cheap to scan' and 'empty when none exist', which are helpful but not critical.

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: first states purpose and return, second gives usage guidance. No waste, front-loaded.

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 1 optional param, no output schema, the description fully covers purpose, return format, and usage context.

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 product_id with description. Tool description reinforces 'optional, from whoami'. Since schema coverage is 100%, baseline 3, but adds value with usage hint.

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 'List', resource 'Pages', and context 'on the spine'. Distinguishes from get_page (full content) and review_artifact (critique).

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 instructs to use for finding page ID then call get_page, and pair with review_artifact. Mentions optional product_id from whoami.

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

list_releasesList ReleasesA
Read-onlyIdempotent
Inspect

List shipped releases. Returns an array, newest first, where each release carries its version, changelog, and ship date. Read-only; empty when nothing has shipped. Use it to answer 'what did we ship recently?', to ground a changelog or launch summary in real ship dates, and to see what went out before reading get_roadmap_drift. Optional product_id, from whoami.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idNoProduct id to scope to, from whoami (optional; spans all products when omitted).

TDQS

A4.7/5.0
Behavior5/5

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

Adds beyond annotations: 'Read-only' confirms readOnlyHint, 'empty when nothing has shipped' explains edge case, 'newest first' details ordering. 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?

Four concise sentences front-load purpose and return structure, then provide usage guidance and parameter hint. 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 param and no output schema, description covers return format, ordering, edge case, usage scenarios, sibling relationship, and parameter source. Fully 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% and description repeats 'Optional product_id, from whoami', adding no new meaning beyond schema 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?

Clearly states 'List shipped releases' and describes return structure (array, newest first, with version/changelog/ship date). Distinguishes from siblings like create_release and get_roadmap_drift through usage context.

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 tells when to use: to answer 'what did we ship recently?', ground changelogs, and before reading get_roadmap_drift. Provides explicit scenario and sibling reference.

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

list_sprintsList SprintsA
Read-onlyIdempotent
Inspect

Sprints — name, goal, state, and window, newest first. Read-only; returns the matching sprints, empty when none exist. See the delivery cadence (active + recent), and resolve a sprint_id here before scheduling a task via create_task / update_task. Optional state filter (e.g. 'active').

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFilter by state, e.g. 'active' (optional).

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description reinforces read-only and adds 'returns empty when none exist' and 'newest first'. No contradictions, but adds only moderate 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 informative sentences, no fluff. Purpose is front-loaded. 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?

Simple tool with one optional param and no output schema. Description covers what is returned, sorting, use case, and optional filter. Sufficient for effective use. Could hint at project scope but not necessary.

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 optional parameter 'state' is described in schema and repeated in description ('Optional state filter (e.g. 'active')'). Schema coverage is 100%, so baseline 3. No additional meaning added.

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 lists sprints with specific fields (name, goal, state, window) sorted newest first, and is read-only. It distinguishes from sibling tools like create_sprint and update_sprint by explicitly being a read-only listing.

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: use to see delivery cadence and resolve sprint_id before scheduling tasks via create_task/update_task. Mentions optional state filter. Lacks explicit when-not-to-use alternatives, 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.

list_tasksList TasksA
Read-onlyIdempotent
Inspect

List the org's board tasks and return the matches with their status, priority, assignees, and any linked feature/insight/sprint. Optionally narrow by status_id or list_id — resolve either via pm_meta. Read-only; returns an empty list when nothing matches. Use it to find a task id before get_task, update_task, or comment_on_task.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idNoOnly tasks on this list; resolve the id via pm_meta (optional).
status_idNoOnly tasks in this status; resolve the id via pm_meta (optional).

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and destructiveHint=false; description adds 'Read-only; returns an empty list when nothing matches,' providing behavioral consistency and detail 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?

Three concise sentences: main action, optional filters, usage advice. Front-loaded, no fluff, every sentence adds value.

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 lists return fields (status, priority, assignees, linked items) and empty-list behavior. Sufficient for a simple 2-param 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?

Schema coverage is 100%; description adds meaning by explaining the parameters' purpose (narrow by list/status) and directing to pm_meta for ID resolution, enhancing 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 clearly states the tool lists board tasks with specific fields (status, priority, assignees, linked items). It distinguishes from siblings like 'get_task' (single task) and mutation 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 advises using it to find a task ID before get_task, update_task, or comment_on_task. Suggests resolving IDs via pm_meta, providing clear when-to-use and alternative guidance.

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

merge_end_usersMerge End-UsersAInspect

Merge source end-users into a target and return the merge result, including the merge event id (also recoverable later via list_identity_merges): all FK rows (events, insights, tasks, …) are re-pointed onto the target and the sources are tombstoned. A write; reversible for 30 days via unmerge_end_users. Get the candidate ids from get_device_candidates first — never guess which users to fold together. target_end_user_id and source_end_user_ids are required.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoWhy the merge (optional, recorded).
target_end_user_idYesUUID of the end-user to keep, from get_device_candidates.
source_end_user_idsYesUUIDs of end-users to fold into the target, from get_device_candidates.

TDQS

A4.4/5.0
Behavior4/5

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

Discloses effects beyond annotations: writes are performed, FK rows are re-pointed, sources are tombstoned, and the operation is reversible for 30 days. Annotations are destHint=false, etc., but the description adds meaningful context without 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 paragraph front-loaded with the main action and result. Every sentence adds value: what the tool does, how IDs come from candidates, reversibility, and required params. 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, the description mentions return includes merge event id and references list_identity_merges for later recovery. Covers all key aspects: inputs, effects, reversibility, and prerequisites. Could specify return format more but sufficient for a write 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% with descriptions for all three parameters. The description reinforces that 'target_end_user_id' and 'source_end_user_ids' are required and links them to get_device_candidates. Adds minor value beyond schema by clarifying that source IDs are UUIDs from candidates.

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 ('Merge source end-users into a target'), specifies the resource ('end-users'), and mentions the outcome ('return the merge result, including the merge event id'). It distinguishes from sibling tools like 'unmerge_end_users' and 'get_device_candidates'.

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: 'Get the candidate ids from get_device_candidates first — never guess which users to fold together.' Also notes the operation is reversible via 'unmerge_end_users' and that required parameters are both given. Lacks explicit when-not-to-use 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.

pm_metaPM MetadataA
Read-onlyIdempotent
Inspect

List the org's PM lists, statuses, members, and features as id+name pairs. Read-only; returns arrays for resolution only (list_features carries the richer catalogue). Call it to turn a name into an id before create_task / update_task — never guess an id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context by stating 'Read-only; returns arrays for resolution only' and clarifying that list_features is richer. 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?

The description is three sentences with no waste. The first sentence states the main action, the second provides behavioral context, and the third gives usage guidance. 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?

Given no output schema, the description explains the return format (arrays of id+name pairs) and the purpose. It notes that list_features is richer, which helps the agent choose. Minor omission: it could specify that it returns all PM metadata in one call, but the information is 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?

The tool has no parameters, so baseline is 4. The description does not need to add parameter details, and it mentions the output format (id+name pairs) which is useful.

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 lists the org's PM lists, statuses, members, and features as id+name pairs. It distinguishes itself from list_features by noting that list_features carries the richer catalogue. The verb 'list' and the specific resources are unambiguous.

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 the tool: 'Call it to turn a name into an id before create_task / update_task — never guess an id.' It also clarifies its limited scope compared to list_features, providing a clear when-not-to-use alternative.

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

post_to_channelPost to ChannelAInspect

Post a message to a team Comms channel you belong to, as the connected member, and return the posted message. It appears live for teammates and is org-visible — keep it work-relevant. Resolve channel_id via list_channels; you can only post to channels you're a member of. Both channel_id and body are required.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMessage text, visible to all channel members (required).
channel_idYesChannel id to post into, from list_channels (required).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate it's not read-only, not idempotent, etc. The description adds that the message 'appears live for teammates and is org-visible', and that it returns the posted message. This context is beyond what annotations provide.

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

Conciseness5/5

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

The description is three sentences: first sentence states main action and return, second adds visibility and appropriateness, third specifies requirements. No waste, front-loaded with key info.

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 two required parameters, no output schema, and no annotations beyond safety flags, the description covers prerequisites, membership constraint, return value, and visibility. It omits error handling or rate limits but is adequate for a straightforward posting 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% and both parameters are described clearly in the schema. The description reiterates the necessity of both parameters and sources channel_id from list_channels, but adds minimal new 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?

The description uses specific verb 'post' and resource 'message to a team Comms channel'. It distinguishes from siblings like 'reply_in_channel' by mentioning 'post' and 'channel you belong to'. Clear 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 a prerequisite (resolve channel_id via list_channels) and a limitation (only channels you're a member of). It also advises 'keep it work-relevant'. However, it does not explicitly state when not to use this tool versus alternatives like reply_in_channel.

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

promote_ideaPromote Idea to FeatureAInspect

Promote an idea into a roadmap feature: creates a feature from the idea (name + description), stamps the idea 'promoted' and links it to the new feature, and returns the feature id. Idempotent — an already-promoted idea returns its existing feature. Resolve the id via list_ideas; only id is required. Align the new feature to an initiative/goal afterwards with update_feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdea id to promote, from list_ideas (required).
product_idNoProduct to create the feature under, from whoami (optional; the idea's product or the primary when omitted).

TDQS

A3.8/5.0
Behavior1/5

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

The description claims the tool is idempotent ('Idempotent — an already-promoted idea returns its existing feature'), but the annotation 'idempotentHint' is false, which directly contradicts the description. This is a serious inconsistency that misleads the agent.

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 (four sentences) with no redundant information. It front-loads the main purpose and idempotency, then gives usage tips. 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, the description states it returns the feature id. It explains idempotency, the prerequisite (list_ideas), and a post-step (update_feature). It is complete for a tool of this complexity, though missing details about error cases.

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 covers 100% of parameters with descriptions. The description adds value by providing sources for parameter values ('from list_ideas' for id, 'from whoami' for product_id) and explaining that product_id is optional with a default behavior. This goes 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 'promote' and the resource 'idea to feature'. It details the action: creates a feature, stamps the idea, links them, and returns the feature id. This distinguishes it from siblings like 'create_feature' (which creates from scratch) and 'update_idea'.

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 explains how to use the tool: resolve the id via 'list_ideas', only id is required, and suggests aligning the new feature to an initiative afterwards with 'update_feature'. It does not explicitly state when not to use it, but provides clear context and prerequisites.

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

read_channelRead Comms ChannelA
Read-onlyIdempotent
Inspect

Read a Comms channel's recent messages, newest included (the connected member must be a channel member). Read-only; returns the messages, empty when the channel is silent. Resolve channel_id first with list_channels — never guess it. Optional limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages to return (optional).
channel_idYesChannel id, from list_channels.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds that it 'returns the messages, empty when the channel is silent,' which is useful but not extensive. 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 clear sentences, front-loaded with the main action. Every sentence adds value with no 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 no output schema, the description explains what is returned and when it might be empty. Given good annotations and simple input, it is comprehensive enough for an agent to use 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 parameters. The description reinforces that channel_id comes from list_channels and that limit is optional, but 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 'read', the resource 'Comms channel's recent messages', and includes constraints (must be a member). It distinguishes from sibling tools like list_channels by instructing to resolve channel_id first.

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 prerequisite: 'Resolve channel_id first with list_channels — never guess it.' Indicates it is read-only, giving clear context. Does not explicitly state when not to use, but the guidance is strong.

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

reply_in_channelReply in Channel ThreadAInspect

Reply in a thread under a specific message in a Comms channel you belong to, as the connected member, and return the posted reply — org-visible to the channel. Resolve channel_id via list_channels and the parent message's id via read_channel. channel_id, parent_id, and body are all required.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesReply text, visible to all channel members (required).
parent_idYesParent message id to thread under, from read_channel (required).
channel_idYesChannel id, from list_channels (required).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are minimal (no readOnly, destructive, etc.), so description carries burden. It discloses that the reply is posted as the connected member, is org-visible, and returns the posted reply. This adds transparency about visibility and return 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?

Two sentences that cover purpose, return, visibility, and parameter guidance. No wasted words. Front-loaded with the key 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 essential aspects: required parameters, resolution steps, return value, visibility. With 3 params and no output schema, it is sufficiently complete. Does not mention error handling, but that is acceptable for a 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 coverage is 100%, so baseline is 3. The description adds value by specifying how to obtain channel_id and parent_id (via list_channels and read_channel), which is critical context 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 clearly states the action (reply in a thread), the resource (specific message in a channel), and the context (as connected member). It distinguishes from siblings like post_to_channel and reply_to_conversation by specifying threading and channel membership.

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 tells the agent to resolve channel_id via list_channels and parent_id via read_channel, providing clear prerequisites. Does not explicitly exclude alternatives, but the context makes it clear when to use (replying to a thread) vs posting new messages or replying to DMs.

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

reply_to_conversationReply to Support ConversationAInspect

Send a public reply to a support-inbox conversation, as the connected member, and return the result — it goes to the end-user on the conversation's channel. A write. Resolve conversation_id via list_conversations; read the thread with get_conversation before replying. conversation_id and body are required. For an internal-only note use add_note; to close it use resolve_conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesPublic reply text sent to the end-user (required).
conversation_idYesConversation id to reply to, from list_conversations (required).

TDQS

A4.7/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false; description adds that it is a write operation, goes to the end-user on the conversation's channel, and is sent as the connected member. Adds 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?

Three sentences: first states purpose and effect, second gives prerequisites, third differentiates from siblings and mentions required params. No wasted words, front-loaded.

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 tool with 2 params, no output schema, and minimal annotations, the description covers purpose, usage guidelines, prerequisites, alternatives, and required params. Complete for effective use.

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 100% description coverage, but description adds practical context: conversation_id should come from list_conversations, and body is required. The example schema provides a concrete usage pattern.

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 sends a public reply to a support-inbox conversation as the connected member, and distinguishes from siblings by mentioning add_note and resolve_conversation.

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 provides when to use (public reply), when not to (use add_note for internal notes, resolve_conversation to close), and prerequisites (resolve conversation_id via list_conversations, read thread with get_conversation).

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

reschedule_bookingReschedule BookingA
Idempotent
Inspect

Reschedule a booking to a new start time (ISO 8601) and return the result — the invitee is notified. A write. Resolve booking_id via list_bookings first. booking_id and start are required.

ParametersJSON Schema
NameRequiredDescriptionDefault
startYesNew start time, ISO 8601 (e.g. 2026-07-20T15:00:00Z) (required).
booking_idYesBooking id to move, from list_bookings (required).

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false (write) and idempotentHint=true (idempotent). The description adds that it notifies the invitee, providing valuable behavioral context beyond annotations. 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: first states purpose and effect, second gives prerequisite and requirement. Front-loaded, no 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?

Covers purpose, parameters, prerequisite, and side effect (notification). Without output schema, describing the return result would improve completeness, but current level is sufficient for agent use.

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 clear descriptions. Description adds context: booking_id comes from list_bookings, and start is ISO 8601. This supplements the schema meaningfully.

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 'Reschedule' and resource 'booking', specifies the new start time format (ISO 8601), and notes that the invitee is notified. It distinguishes itself from sibling tools like 'cancel_booking' and 'list_bookings'.

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 instructs to resolve booking_id via list_bookings first, preventing misuse. It also notes that both booking_id and start are required, guiding correct invocation.

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

resolve_conversationResolve ConversationA
Idempotent
Inspect

Mark a support-inbox conversation resolved (closed) and return the result. A write; idempotent — resolving an already-resolved conversation is a no-op. Resolve conversation_id via list_conversations first. Do it after you've replied and the ask is handled.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYesConversation id to resolve, from list_conversations (required).

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false. Description adds that it's a write operation and returns a result, but does not significantly extend behavioral understanding 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 clearly communicating purpose, effect, and usage guidance with no redundant 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?

For a simple idempotent write tool with one parameter and no output schema, the description is mostly complete but lacks detail on what the returned result contains, which could assist the agent in processing the 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 100% with a clear description for the single parameter. Tool description repeats the prerequisite of list_conversations but does not add new 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 'Mark' and resource 'support-inbox conversation resolved (closed)', with outcome 'return the result'. Distinguishes from sibling tools like get_conversation (read) and reply_to_conversation (different action).

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 after replying and handling the ask, and to first get the conversation_id via list_conversations. Provides clear when-to-use and prerequisite, helping select among siblings.

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

revert_to_versionRevert Artifact VersionAInspect

Restore an earlier artifact version (F5) to current and return the now-current version: the existing current version is flipped to 'reverted' (kept for the learning signal) and the chosen version becomes current again. A write — not idempotent, since re-running reverts again. version_id is the version you want to RESTORE; get it from list_artifact_versions and never guess it. Optional reason is recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoWhy you're reverting (optional, recorded).
version_idYesId of the version to restore (make current), from list_artifact_versions.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations, the description explains that the operation is a write, not idempotent, and details the state changes: current version becomes 'reverted' (kept for learning signal) and the chosen version becomes current. This adds valuable behavioral context that annotations alone do not provide.

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

Conciseness5/5

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

The description is concise, front-loaded with the action, and every sentence adds value. It efficiently covers purpose, behavior, and parameter usage without 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 (2 params, no output schema), the description adequately covers all aspects: purpose, behavior, parameter guidance, and side effects. No gaps remain for an agent to misuse the 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 coverage is 100%, so baseline is 3. The description adds extra guidance: 'never guess it' and emphasizes that version_id must come from list_artifact_versions. This provides additional clarity beyond the schema description.

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 'Restore' and the resource 'artifact version', and distinguishes from sibling tool list_artifact_versions by specifying the source of version_id.

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 on when to use: after obtaining version_id from list_artifact_versions, and never guessing it. However, it does not explicitly state when not to use it or compare with alternatives.

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

review_artifactPRD ReviewAInspect

Agent-as-critic over a DRAFT artifact (a feature spec, experiment plan, or page): checks it against a baseline PM bar — clear problem/hypothesis, a measurable success metric, evidence cited, risks named, a rollout/experiment plan — and returns structured findings (section, severity, a CONCRETE suggested fix, and a verbatim evidence quote) plus a 0-100 score. A write: each call re-runs the review and persists it as a new version (see list_artifact_versions). Resolve target_id first — via pm_meta or list_features for a feature, list_experiments for an experiment, list_pages for a page. One small LLM call; use it before sending a draft for sign-off.

ParametersJSON Schema
NameRequiredDescriptionDefault
rubric_idNoScore against a specific rubric; omit to use the org's default rubric (or the built-in baseline).
target_idYesId of the feature/experiment/page to review — from pm_meta, list_features, list_experiments, or list_pages.
target_typeYesWhat kind of artifact target_id is: a feature (spec), an experiment (plan), or a page (doc/PRD).

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool is a write operation (each call reruns review and persists a new version), consistent with readOnlyHint=false. It adds that it is a 'small LLM call,' which gives cost context. This goes beyond the annotations, which only provide hints without detail.

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 front-loaded with the core purpose and criteria in the first sentence. It then provides behavioral details and parameter guidance. While it is dense, nearly every sentence earns its place; a slight reduction in wordiness would improve conciseness.

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 explains the return structure (section, severity, suggested fix, evidence quote, score 0-100) and mentions persisting as a new version (linking to list_artifact_versions). It fully covers the tool's purpose, usage, parameters, and behavior.

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%. The description adds meaning by explaining that target_id comes from specific list tools, that target_type enum corresponds to artifact kinds, and that rubric_id can be omitted to use the default. This adds value 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 clearly states the tool's role as an agent-as-critic over draft artifacts (feature spec, experiment plan, page) with specific criteria (problem/hypothesis, success metric, evidence, risks, plan) and output structure (findings and score). This distinguishes it from sibling tools which do not perform reviews.

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 sending a draft for sign-off and instructs the agent to resolve target_id via other tools (pm_meta, list_features, etc.). It also notes that each call persists a new version. It lacks explicit when-not-to-use or alternative tools, but the advice is clear enough.

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

unmerge_end_usersUndo End-User MergeA
Idempotent
Inspect

Undo a previous end-user merge: reads the merge ledger and re-points every FK row (events, insights, tasks, …) back to its original end-user, un-tombstoning the folded-in sources. Safe to retry — a second undo of the same merge changes nothing (it fails with already_reverted). Use to correct a wrong identity merge (merges stay reversible for 30 days). Find the event_id with list_identity_merges (pick an un-reverted merge); event_id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesId of the merge event to undo, from list_identity_merges.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide idempotentHint=true, and description reinforces 'Safe to retry — a second undo changes nothing (fails with already_reverted)'. Also explains 'un-tombstoning' sources, adding behavioral detail beyond annotations. 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?

Three sentences, front-loaded with action, no wasted words. Clearly structured with mechanism, idempotency note, and usage instruction.

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, mechanism, idempotency, and parameter source. Lacks description of return value, but given no output schema and practical nature of the tool, this is a minor gap. Overall sufficient for an 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% for the single parameter event_id. Description adds reference to list_identity_merges but does not add 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 'Undo a previous end-user merge' with specific verb and resource. It details the mechanism (reads merge ledger, re-points FK rows, un-tombstones sources) and distinguishes it from sibling 'merge_end_users'.

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: 'Use to correct a wrong identity merge' and instructs to find event_id via list_identity_merges. Mentions 30-day reversibility. Does not explicitly state when not to use, but context is sufficient for correct selection.

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

update_decisionUpdate DecisionA
Idempotent
Inspect

Update a decision and return it; omitted fields unchanged. Moving status to 'decided' re-stamps the decision time. Re-link via link_type + link_id (verified in-org), or clear with nulls. Resolve the id via list_decisions; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDecision id, from list_decisions (required).
titleNoNew title (optional).
statusNoNew status (optional).
link_idNoNew linked id, or null to unlink (optional).
link_typeNoNew link target (optional).
rationaleNoNew rationale; null clears it (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate mutation (readOnlyHint=false), idempotency (idempotentHint=true), and non-destructiveness (destructiveHint=false). The description adds behavioral details: the effect of moving status to 'decided' re-stamps decision time, and linking is verified in-org. No contradiction with annotations. It doesn't cover authorization or rate limits, but annotations already provide 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 two concise sentences, front-loaded with the core action and partial update behavior. Each sentence is informative without extraneous words. No redundancy with the schema or annotations.

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 complexity (6 parameters, 1 required, 2 enums) and no output schema, the description covers key aspects: how to get the id, the behavior on status change, and linking instructions. It doesn't explain the return value in detail, but 'return it' implies the updated object is returned. The schema and annotations already cover most structural info, so the description fills gaps well.

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 description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema: it explains how to obtain the id (via list_decisions), the effect of status changes on decision time, and the semantics of link_type+link_id (verified in-org, clear with nulls). For title and rationale, it adds 'null clears it', which for rationale is already in schema but for title it's new. Overall, it adds significant 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 'Update a decision and return it; omitted fields unchanged.' This specifies the action (update), the resource (decision), and the behavior (partial update). It distinguishes from sibling tools like create_decision or list_decisions by describing the update semantics.

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 explicit when-to-use guidance: for updating decisions, with specific notes on status (re-stamps decision time on 'decided'), re-linking via link_type+link_id (verified in-org), and clearing with nulls. It also advises to resolve the id via list_decisions. However, it doesn't explicitly state when not to use this tool, but the 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.

update_experimentUpdate ExperimentA
Idempotent
Inspect

Update a PM experiment — advance its state and record the outcome — and return it. state ∈ hypothesis|build|measure|learn; verdict ∈ validated|invalidated; decision ∈ pivot|persevere. Resolve the id via list_experiments; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesExperiment id, from list_experiments (required).
stateNoBuild-Measure-Learn stage (optional).
titleNoNew title (optional).
metricNoNew metric; null clears it (optional).
resultNoFree-text result / what you learned; null clears it (optional).
targetNoNew target; null clears it (optional).
verdictNoOutcome (optional).
decisionNoWhat you'll do next (optional).
hypothesisNoNew hypothesis; null clears it (optional).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds the prerequisite of resolving the id and that only id is required, but does not disclose additional behavioral traits like error handling or return format.

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 three sentences, front-loaded with the core purpose. It is concise, though the second sentence repeating enums is somewhat redundant. Still, it 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 9 parameters, 100% schema coverage, and no output schema, the description covers the essential action and id resolution. However, it lacks details on return values and error scenarios, leaving some 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 description coverage, the baseline is 3. The description lists enum values (already in schema) but adds no new meaning beyond the schema's property 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 'Update a PM experiment — advance its state and record the outcome — and return it.' It uses a specific verb (update, advance, record) and resource (PM experiment), distinguishing it from create or list 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 guidance to 'Resolve the id via list_experiments; only id is required,' which is useful, but it does not explicitly state when to use this tool versus alternatives (e.g., create_experiment) or offer exclusions.

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

update_featureUpdate FeatureA
Idempotent
Inspect

Update a feature and return it; omitted fields are unchanged. status is 'active' | 'discovered' | 'archived' (there is NO 'shipped' status — set mark_shipped:true to stamp its ship date instead). target_date is 'YYYY-MM-DD' (or null to clear). Resolve the id via list_features; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFeature id to update, from list_features (required).
nameNoNew name (optional).
statusNoLifecycle status (optional).
descriptionNoNew description; null clears it (optional).
target_dateNoTarget ship date 'YYYY-MM-DD', or null to clear (optional).
mark_shippedNotrue stamps the ship date now; false clears it (optional).
objective_idNoAlign directly under this objective, from list_objectives; null unlinks (optional).
initiative_idNoAlign under this initiative (line-of-sight), from list_initiatives; null unlinks (optional).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds behavioral context: 'omitted fields are unchanged' aligns with idempotency, and the clarification about no 'shipped' status versus mark_shipped provides additional transparency 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 three sentences, tightly packed with essential information, no fluff. It front-loads the core behavior ('Update a feature and return it; omitted fields are unchanged') and then adds specific notes. 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?

With 8 parameters, 1 required, and no output schema, the description covers key behavioral and parameter nuances. It mentions that the feature is returned but doesn't detail the response format. However, combined with schema descriptions, it provides sufficient context for an AI agent to use the tool 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?

Input schema has 100% coverage with descriptions for all 8 parameters. The description adds meaningful extra context beyond the schema: for status it explains 'there is NO 'shipped' status — set mark_shipped:true to stamp its ship date instead', and for target_date it specifies format and null clearing behavior. This significantly aids correct parameter usage.

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 'Update a feature and return it; omitted fields are unchanged.' It specifies the verb (update) and resource (feature), making the purpose unambiguous. While it doesn't explicitly distinguish from sibling update tools, the action is well-defined.

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 explicit guidance: 'Resolve the id via list_features; only id is required.' It also warns about the 'shipped' status and directs to use mark_shipped instead. This helps the agent know when to use this tool and what prerequisites exist.

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

update_ideaUpdate IdeaA
Idempotent
Inspect

Update an idea's title / body / status and return it; omitted fields unchanged. status ∈ new|under_review|planned|promoted|declined (set 'promoted' via promote_idea instead, so a feature is actually created). Resolve the id via list_ideas; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdea id, from list_ideas (required).
bodyNoNew body; null clears it (optional).
titleNoNew title (optional).
statusNoNew status (optional; prefer promote_idea over setting 'promoted' by hand).

TDQS

A5/5.0
Behavior5/5

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

Description clarifies that omitted fields remain unchanged, indicating idempotent behavior consistent with idempotentHint=true. No contradiction with annotations; adds context on return value and proper status usage.

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 unnecessary words. Highly efficient and clear.

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 states it returns the idea. Provides cross-tool guidance (list_ideas, promote_idea) which compensates for missing output details. 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.

Parameters5/5

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

Adds significant value beyond 100% schema coverage: explains that id is required, body null clears it, and status should not be set to 'promoted' manually. Provides clarity on enum behavior and alternatives.

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 updates an idea's title/body/status and returns it. Distinguishes from sibling tool promote_idea by explicitly saying to use that for setting status to 'promoted'.

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 specifies when to use this tool (updating fields) and when not to (use promote_idea for 'promoted' status). Also advises to resolve id via list_ideas.

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

update_initiativeUpdate InitiativeA
Idempotent
Inspect

Update an initiative and return it; omitted fields are unchanged. Re-point it to a different goal with objective_id (null unlinks). status ∈ planned|active|paused|done|abandoned. Resolve the id via list_initiatives; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInitiative id, from list_initiatives (required).
nameNoNew name (optional).
statusNoLifecycle status (optional).
timeframeNoNew timeframe; null clears it (optional).
descriptionNoNew description; null clears it (optional).
objective_idNoNew parent goal, from list_objectives; null unlinks (optional).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide idempotentHint=true and destructiveHint=false. The description adds valuable behavioral details: 'omitted fields are unchanged' confirms idempotency for same payload, 'null unlinks' for objective_id clarifies how to remove a link, and status enum values are listed. 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 sentences, no fluff. First sentence states core action and partial update. Second sentence covers field-specific behavior and source of id. 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 6-parameter update tool with no output schema, the description covers update semantics, status enum, objective_id unlinking, and id retrieval. It lacks error handling or return format details, but those are minor omissions given the simplicity of the operation.

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 coverage is 100% with descriptions for all 6 parameters. The description enriches each parameter: id's source (list_initiatives), objective_id null behavior, status allowed values, and the general rule that omitted fields are unchanged. This adds significant meaning 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 the tool updates an initiative, with specific verb 'Update' and resource 'initiative'. It explicitly notes partial update behavior ('omitted fields are unchanged') and distinguishes from related tools like create_initiative or update_objective by focusing on initiative fields like objective_id and status enums.

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 tells users to resolve the initiative id via list_initiatives and that only id is required, providing clear prerequisites and minimal requirements. It does not explicitly contrast with alternative tools (e.g., 'use this to modify an existing initiative; for creation, use create_initiative'), but the context of update versus create is implicitly clear.

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

update_key_resultUpdate Key ResultA
Idempotent
Inspect

Update a key result — most often to move current_value as progress lands — and return it; omitted fields are unchanged. Resolve the id via list_objectives (each objective carries its key_results with ids). Only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesKey result id, from list_objectives (required).
nameNoNew name (optional).
unitNoNew unit, e.g. 'USD'; null clears it (optional).
start_valueNoNew starting baseline (optional).
target_valueNoNew target value; null clears it (optional).
current_valueNoNew current value (optional).

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true. The description adds that omitted fields remain unchanged, which aligns with idempotency and provides useful behavioral context. No contradictions, but the description adds only modest extra transparency 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?

Three sentences with no waste: the first sentence states purpose and behavior, the second provides id resolution guidance, and the third clarifies required fields. Front-loaded with most important 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 the absence of an output schema, the description covers the core update behavior and id resolution. It is sufficient for an agent to select and use the tool correctly, though it could optionally mention error conditions for missing ids.

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 documents each parameter. The description re-emphasizes that only id is required and notes the unit can be cleared, but adds no significant 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 the tool updates a key result, primarily to move current_value, and specifies the resource (key result) and the action (update). It also provides a distinct usage context by referencing list_objectives for resolving the id, differentiating it from sibling tools like update_objective.

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 on when to use the tool ('most often to move current_value as progress lands') and how to prepare by resolving the id via list_objectives. However, it does not explicitly state when not to use it, though no direct alternatives exist.

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

update_objectiveUpdate ObjectiveA
Idempotent
Inspect

Update an objective's name / description / period and return it; omitted fields are unchanged (null clears description or period). Resolve the id via list_objectives; only id is required. To move a key result's value use update_key_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesObjective id, from list_objectives (required).
nameNoNew name (optional).
periodNoNew period, e.g. 'Q4 2026'; null clears it (optional).
descriptionNoNew description; null clears it (optional).

TDQS

A4.9/5.0
Behavior5/5

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

Describes that omitted fields are unchanged, null clears description/period, and returns the objective. Complements annotations (idempotent, non-destructive) with specific 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 concise sentences, front-loaded with action and key details. 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 purpose, parameter semantics, and usage, but lacks explicit description of return structure (beyond 'return it'). For a simple update tool, it suffices; could add detail on return format.

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?

Adds meaning beyond schema: explains null vs omission behavior for description and period. Schema descriptions are present but the description clarifies semantics crucial for correct 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?

Clearly describes updating an objective's name/description/period, with specific verb and resource. Distinguishes from sibling update_key_result.

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 (update objective) and when not (move key result use update_key_result), and instructs to resolve id via list_objectives.

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

update_pageUpdate PageA
Idempotent
Inspect

Update a Page — rename, set icon, replace the body, or archive/unarchive (archived:true hides it, false restores it). body is plain text (blank lines → paragraphs) and REPLACES the page content. Omitted fields are unchanged. Resolve the id via list_pages; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage id, from list_pages (required).
bodyNoNew content as plain text; blank lines separate paragraphs. REPLACES existing content (optional).
iconNoNew emoji icon; null clears it (optional).
titleNoNew title (optional).
archivedNotrue archives (hides) the page; false restores it (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds context: body replaces content, archive hides/restores, omitted fields unchanged. 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?

Three concise sentences that front-load the purpose, list actions clearly, and provide key behavioral notes. No fluff 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?

Given 5 parameters and full schema coverage, the description covers essential behaviors. However, it does not describe the return value or response format, which is a minor gap for a mutation tool without an output schema.

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 detailed descriptions. The description reinforces that body replaces content and blank lines become paragraphs, adding value beyond the schema. Also clarifies that omitted fields are unchanged.

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 a Page' and lists specific actions: rename, set icon, replace body, archive/unarchive. It distinguishes from sibling tools like create_page and get_page by focusing on update operations.

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 explains how to resolve the ID via list_pages and notes that only id is required. It implies when to use (for updating existing pages) but lacks explicit guidance on when not to use or alternatives.

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

update_releaseUpdate ReleaseA
Idempotent
Inspect

Update a release and return it; omitted fields unchanged. Set released_at to ship it (or null to move it back to draft). Resolve the id via list_releases; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRelease id, from list_releases (required).
versionNoNew version (optional).
changelogNoNew changelog; null clears it (optional).
released_atNoShip time ISO 8601, or null for draft (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate idempotent and non-destructive. The description adds valuable behavioral context: partial updates (fields unchanged), the specific effect of setting released_at (ship vs. draft), and the return of the updated release. 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 sentences efficiently convey purpose, behavior, and key usage details. No superfluous words; each 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 4-parameter mutation tool with no output schema, the description covers the core behavior, partial update semantics, and critical usage of released_at. It lacks details on error handling or permissions but is generally complete for agent invocation.

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 descriptions. The description adds extra meaning beyond the schema, especially for released_at (ship vs. draft) and the partial update guarantee. This enriches the agent's understanding beyond what the schema alone 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 action (update a release and return it), specifies partial update behavior (omitted fields unchanged), and distinguishes from sibling tools like create_release and list_releases by focusing on update semantics.

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 prerequisite (resolve id via list_releases) and notes that only id is required. While it doesn't explicitly list when not to use or alternatives, the context among sibling tools makes the usage straightforward.

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

update_sprintUpdate SprintA
Idempotent
Inspect

Update a sprint and return it. state is 'future' | 'active' | 'closed' — moving to 'closed' stamps the completion time, reopening clears it. start_date / end_date are ISO 8601 (or null to clear). Resolve the id via list_sprints; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSprint id, from list_sprints (required).
goalNoNew goal; null clears it (optional).
nameNoNew name (optional).
stateNoLifecycle state; 'closed' completes it (optional).
end_dateNoEnd, ISO 8601, or null (optional).
start_dateNoStart, ISO 8601, or null (optional).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds behavioral details beyond annotations: 'moving to 'closed' stamps the completion time, reopening clears it' and 'start_date / end_date ... or null to clear'. 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 core purpose. Every word adds value—no redundancy or filler.

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?

With 6 parameters fully documented in schema and no output schema, the description covers all critical aspects: id requirement, state transitions, date behavior. It is sufficiently complete for an update 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 description coverage is 100%, so baseline is 3. Description adds meaning: clarifies state enum semantics (future/active/closed and effect of 'closed'), date null behavior, and source for id. This enhances 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 'Update a sprint and return it,' specifying the verb ('Update') and the resource ('sprint'). It also differentiates from siblings like create_sprint and list_sprints by focusing on modification.

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: 'Resolve the id via list_sprints; only id is required.' It also explains state transitions and date clearing. While it doesn't list alternatives, it provides clear context for when to use the tool.

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

update_taskUpdate TaskA
Idempotent
Inspect

Update one or more of a task's fields and return the updated task; fields you omit are left unchanged (idempotent — re-sending the same values is a no-op). Pass sprint_id: null to remove the task from its sprint. Resolve ids first — the task via get_task/list_tasks, and status/feature/insight/sprint/member ids via pm_meta and the list_* reads — never guess them. Only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id, from list_tasks or get_task.
titleNoNew title (optional; omitted fields stay unchanged).
priorityNoNew priority level, urgent highest (optional).
sprint_idNoMove into a sprint, or null to remove (optional; resolve via list_sprints).
status_idNoNew status; resolve the id via pm_meta (optional).
feature_idNoFeature id to link on the spine, from pm_meta or list_features (optional).
insight_idNoInsight id to link on the spine, from list_insights (optional).
descriptionNoNew body / details (optional).
assignee_member_idsNoMember ids to assign, from pm_meta (optional).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already supply idempotentHint=true. The description reinforces idempotency with concrete explanation ('re-sending same values is a no-op') and adds specific behavior on null sprint_id. 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?

Three sentences, each serving a distinct purpose: purpose+idempotency, specific null behavior, and ID resolution guidance. Front-loaded with the core action. No redundant or verbose phrases.

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, idempotency, partial update, null handling, and ID resolution. No output schema exists, so return value explanation is not required. Lacks error handling or permission details, but given parameter complexity and annotations, it's sufficiently complete for an agent.

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. Description adds value by explaining the null removal behavior for sprint_id and the partial update semantics ('fields omitted stay unchanged'). Provides extra guidance beyond raw 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 'update' and resource 'task', specifies partial update semantics ('fields you omit are left unchanged'). Distinguishes from siblings like create_task, delete_task, and other update tools by focusing on task-specific fields.

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 instructs to resolve IDs via get_task/list_tasks and pm_meta/list_* reads, and never guess them. Clearly states only 'id' is required. While it doesn't contrast with alternatives, the guidance is actionable and reduces guesswork.

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

vote_ideaVote on IdeaA
Idempotent
Inspect

Cast (or remove) the connected member's vote on an idea and return the new vote state. Adds your vote by default; pass remove:true to take it back. One vote per member — voting twice is a no-op. Resolve the id via list_ideas; only id is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdea id, from list_ideas (required).
removeNotrue removes your vote instead of adding it (optional; default false).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false. The description adds context: it operates on the 'connected member's vote', returns the 'new vote state', and confirms idempotency ('voting twice is a no-op'). This adds value beyond the annotations.

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

Conciseness5/5

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

The description is two sentences long with no unnecessary words. The first sentence front-loads the core action and return value, while the second provides crucial details on usage and constraints.

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 (2 parameters, no output schema), the description fully covers what the agent needs: it explains the effect (add/remove), return state, idempotency, how to get the id, and that only id is required. No gaps remain.

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 description coverage is 100%, but the description enhances understanding by stating 'Adds your vote by default' and 'pass remove:true to take it back', clarifying the default behavior not fully captured in the schema. This adds practical 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 uses a specific verb ('Cast') and resource ('vote on an idea'), clearly distinguishing the tool's function. It states both adding and removing votes, which differentiates it from sibling tools like 'promote_idea' that handle different actions.

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 usage context: 'One vote per member — voting twice is a no-op' and 'Resolve the id via list_ideas; only id is required.' It explains how to remove a vote with 'remove:true'. While it doesn't explicitly state when not to use the tool, the guidelines are sufficient for correct invocation.

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

whoamiConnected IdentityA
Read-onlyIdempotent
Inspect

Show the connected AIOProductOS identity (org, member) AND the org's products (id, name, is_primary). Read-only; returns the identity plus the product list. For a multi-product org, call this first to get the product ids, then pass one as product_id to any product-scoped tool; omit product_id to use the primary.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it returns identity plus product list, which is output context rather than new behavioral traits. No additional behavior beyond annotations is disclosed.

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

Conciseness4/5

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

Description is two sentences, front-loaded with purpose. First sentence states what it does; second adds workflow guidance. No wasted words, though the first sentence could slightly combine the readability hint with the 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?

Despite no output schema and no parameters, the description fully explains the tool's return value and its role in the workflow for multi-product orgs, which is sufficient given the complexity and sibling tools.

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 description coverage is 100%. Baseline for 0 parameters is 4 per guidelines. Description doesn't need to explain parameters, and it correctly omits any.

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 shows the connected identity (org, member) and the org's products (id, name, is_primary). It specifies the verb 'Show' and the resource, and distinguishes usage context by explaining when to call this tool first for multi-product orgs.

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 provides when to use this tool: 'for a multi-product org, call this first to get the product ids, then pass one as product_id to any product-scoped tool; omit product_id to use the primary.' This gives clear guidance on when and how to use the output.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.18
    • Changeddelete_task2 fields changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "Safety gate — must be exactly \"DELETE\". Required so a bare task id can never trigger a permanent, cascading delete. Confirm with the human FIRST, in plain language naming the task, then pass it.",
        +  "enum": [
        +    "DELETE"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "id"
        -]New value: +[
        +  "id",
        +  "confirm"
        +]
  2. 71 tool updatesv0.1.14
    • Addedadd_note
    • Addedanalyze_funnel
    • Addedanalyze_nps
    • Addedanalyze_nrr
    • Addedanalyze_paths
    • Addedcancel_booking
    • Addedcapture_insight
    • Addedcomment_on_task
    • Addedcreate_decision
    • Addedcreate_experiment
    • Addedcreate_feature
    • Addedcreate_idea
    • Addedcreate_initiative
    • Addedcreate_objective
    • Addedcreate_page
    • Addedcreate_release
    • Changedcreate_sprint3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "goal": "Ship SSO",
        +    "name": "Sprint 12",
        +    "state": "active"
        +  }
        +]
    • Addedcreate_task
    • Addeddelete_task
    • Addedget_codebase_map
    • Addedget_conversation
    • Addedget_customer_360
    • Addedget_device_candidates
    • Addedget_page
    • Addedget_pm_playbook
    • Addedget_product_brain
    • Addedget_retention
    • Addedget_roadmap_drift
    • Addedget_task
    • Addedget_weekly_signal_memo
    • Addedlist_artifact_versions
    • Addedlist_bookings
    • Addedlist_channels
    • Changedlist_conversations4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedInput schema / properties / product_id / description
        Previous value: -"Scope to one product, id from whoami (optional)."New value: +"Product id to scope to, from whoami (optional; spans all products when omitted)."
      • changedInput schema / properties / status / description
        Previous value: -"Pass 'all' to include closed conversations (optional)."New value: +"Pass 'all' to include closed (optional)."
    • Addedlist_decisions
    • Addedlist_experiments
    • Addedlist_features
    • Addedlist_ideas
    • Addedlist_identity_merges
    • Addedlist_initiatives
    • Addedlist_insights
    • Addedlist_objectives
    • Addedlist_pages
    • Addedlist_releases
    • Addedlist_sprints
    • Addedlist_tasks
    • Addedmerge_end_users
    • Addedpm_meta
    • Addedpost_to_channel
    • Addedpromote_idea
    • Addedread_channel
    • Addedreply_in_channel
    • Addedreply_to_conversation
    • Addedreschedule_booking
    • Addedresolve_conversation
    • Addedrevert_to_version
    • Addedreview_artifact
    • Addedunmerge_end_users
    • Addedupdate_decision
    • Addedupdate_experiment
    • Addedupdate_feature
    • Addedupdate_idea
    • Addedupdate_initiative
    • Addedupdate_key_result
    • Addedupdate_objective
    • Addedupdate_page
    • Addedupdate_release
    • Addedupdate_sprint
    • Addedupdate_task
    • Addedvote_idea
    • Addedwhoami
  3. 25 tool updatesv0.1.13
    • Removedadd_note
    • Removedanalyze_funnel
    • Removedanalyze_paths
    • Removedcomment_on_task
    • Removedcreate_decision
    • Removedcreate_feature
    • Removedcreate_objective
    • Removedcreate_page
    • Removedcreate_task
    • Removeddelete_task
    • Removedget_conversation
    • Removedget_pm_playbook
    • Removedget_retention
    • Removedlist_bookings
    • Removedlist_decisions
    • Removedlist_tasks
    • Removedpm_meta
    • Removedreply_to_conversation
    • Removedupdate_decision
    • Removedupdate_feature
    • Removedupdate_key_result
    • Removedupdate_page
    • Removedupdate_sprint
    • Removedupdate_task
    • Removedwhoami
  4. 18 tool updatesv0.1.12
    • Removedanalyze_nps
    • Removedanalyze_nrr
    • Removedcancel_booking
    • Removedcapture_insight
    • Removedcreate_experiment
    • Removedcreate_release
    • Removedget_customer_360
    • Removedget_product_brain
    • Removedget_task
    • Removedlist_channels
    • Removedpost_to_channel
    • Removedread_channel
    • Removedreply_in_channel
    • Removedreschedule_booking
    • Removedresolve_conversation
    • Removedupdate_experiment
    • Removedupdate_objective
    • Removedupdate_release
  5. 1 tool updatev0.1.8
    • Addeddelete_task
  6. 16 tool updatesv0.1.6
    • Addedcreate_decision
    • Addedcreate_experiment
    • Addedcreate_feature
    • Addedcreate_objective
    • Addedcreate_page
    • Addedcreate_release
    • Addedcreate_sprint
    • Addedlist_decisions
    • Addedupdate_decision
    • Addedupdate_experiment
    • Addedupdate_feature
    • Addedupdate_key_result
    • Addedupdate_objective
    • Addedupdate_page
    • Addedupdate_release
    • Addedupdate_sprint
  7. 2 tool updatesv0.1.5
    • Changedget_customer_3601 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Account id, email, domain, or company name."New value: +"The account to resolve — an account id (exact), a user's email (exact), a company domain like 'acme.com', or a company name (partial match). Pass one value; the strongest match wins."
    • Changedread_channel3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max messages to return (optional)."New value: +"Maximum number of most-recent messages to return (optional; the server applies a sensible default when omitted)."
      • addedInput schema / properties / limit / exclusiveMinimum
        Added value: +0
      • changedInput schema / properties / limit / type
        Previous value: -"number"New value: +"integer"
  8. 28 tool updatesv0.1.0
    • First observedadd_note
    • First observedanalyze_funnel
    • First observedanalyze_nps
    • First observedanalyze_nrr
    • First observedanalyze_paths
    • First observedcancel_booking
    • First observedcapture_insight
    • First observedcomment_on_task
    • First observedcreate_task
    • First observedget_conversation
    • First observedget_customer_360
    • First observedget_pm_playbook
    • First observedget_product_brain
    • First observedget_retention
    • First observedget_task
    • First observedlist_bookings
    • First observedlist_channels
    • First observedlist_conversations
    • First observedlist_tasks
    • First observedpm_meta
    • First observedpost_to_channel
    • First observedread_channel
    • First observedreply_in_channel
    • First observedreply_to_conversation
    • First observedreschedule_booking
    • First observedresolve_conversation
    • First observedupdate_task
    • First observedwhoami

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, with separate tools for different entities (tasks, features, pages, etc.) and actions (create, read, update, delete). Overlaps are minimal and resolved by specific tool names and descriptions.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., list_tasks, create_feature), with some using get_ or analyze_ prefixes. Slight deviations like pm_meta and whoami are isolated but still intuitive.

Tool Count3/5

71 tools is high, but each serves a specific function within the broad product OS domain. Some consolidation might be possible, but the count is not unreasonable given the comprehensive scope.

Completeness4/5

The tool surface covers CRUD for most entities (tasks, features, pages, objectives, etc.) and includes analytics, identity merging, and communication. Missing delete for some entities is acceptable as alternative workflows exist.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol server that enables Claude Desktop users to interact directly with PostHog, allowing them to view projects and create annotations through natural language commands.
    10
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server exposing 40 best-practice product management skills plus workflows and lifecycle tools, instantly accessible to any AI via Model Context Protocol.
    19
    43
    20
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server for FeaturePulse feedback management, enabling AI assistants to query feature requests, analyze MRR impact, and manage product roadmaps through natural language.
    6
    14
    MIT

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/AIOProductOS/claude-plugin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server